API 學習筆記

API Windows 程序至少需要兩個函數

一個是WinMain()  一個是消息處理函數WindowProc()

這兩個函數是並列關係 都是有windows負責調用


WinMain()

WinMain()函數有四個形參,以及一個int返回類型

int WINAPI WinMain
(
HINSTANCE hInstance,
HINSTANCE hPreInstance,
LPSTR lpCmdLine,
int nCmdShow
);

返回類型int後面有一個WINAPI函數說明符,將使系統以一種特殊的方式處理函數名和實參

第一個參數 hInstance 是一個句柄, 指向正在運行的程序的句柄

第二個參數 hPreInstance 在32位系統已經完全失去意義

第三個參數 lpCmdLine 是指向某個字符串的指針,包含啓動程序的命令行字符

第四個參數 nCmdShow  決定被創建窗口的外觀. 可以是正常,最小化,或是其他. 數值由一系列 SW_開頭的字符常量定義

WinMain()函數的功能有4個:

1.告訴windows要創建的窗口的種類

2.創建程序窗口

3.初始化程序窗口

4.獲取屬於該程序的windows消息


指定窗口種類

windows 定義了 WNDCLASSEX 的struct 類型來定義窗口類型

其結構如下:

struct WNDCLASSEX
{
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
HICON hIconSm;
};

創建窗口:

1.註冊窗口 RegisterClassEX( &WindowClass );  或者調用 RegisterClass( &WindowClass );

2.創建窗口 CreateWindow() 可以添加一些窗口的附加屬性

HWND hWnd; //定義一個窗口句柄

hWnd = CreateWindow(
szAppName, //窗口類的名稱
" The Window Name ", //窗口的標題欄顯示的字符串
WS_  ,  //窗口樣式,
CW_  ,  //窗口左上角座標的x值
CW_  ,  //窗口左上角座標的y值
CW_  ,  //窗口寬度
CW_  ,  //窗口高度
0,  //父窗口句柄
0,  //菜單
hInstance,  //當前程序實例的句柄
0  //窗口創建數據, 當設計MDI(多文檔界面, multiple-document interface)時會用到
);
還有一個CreateWindowEx() 函數 可以以擴充樣式信息創建窗口


3.ShowWindow( hWnd, nCmdShow )  第二個參數是WinMain()的第四個實參,指示屏幕上顯示窗口的形式





















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章