作業系統把它所能夠完成的功能以函數的形式提供給應用程式使用,應用程式對這些函數的調用就叫做系統調用,這些函數的集合就是Windows作業系統提供給應用程式編程的介面(Application Programming Interface),簡稱Windows API。
作業系統將每個事件都封裝成一個稱為訊息的結構體MSG來傳遞給應用程式,
MSG結構定義如下:
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;
關於控制代碼
控制代碼(HANDLE),資源的標識。
作業系統要管理和操作這些資源,都是通過控制代碼來找到對應的資源。按資源的類型,又可將控制代碼細分成表徵圖控制代碼(HICON),游標控制代碼(HCURSOR),視窗控制代碼(HWND),應用程式執行個體控制代碼(HINSTANCE)等等各種類型的控制代碼。作業系統給每一個視窗指定的一個唯一的標識號即視窗控制代碼。
WinMain函數
Windows程式的入口函數
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
);
視窗的建立
建立一個完整的視窗需要經過下面四個操作步驟:
設計一個視窗類別;
註冊視窗類別;
建立視窗;
顯示及更新視窗。
typedef struct _WNDCLASS {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS;