中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Windows核心編程(2)

發布時間:2020-07-21 18:11:11 來源:網絡 閱讀:611 作者:超級極客 欄目:編程語言

一、創建控件或窗口

  1. 創建控件或者窗口的API是CreateWindow

  2. 按鈕控件的創建,按鈕也是一個窗口,他注冊的窗口類是BUTTON

HWND hWndBtn = CreateWindow(_T("BUTTON"),_T("我是按鈕"),WS_CHILD,0,0,100,30,hWndParent,(HMENU)1,hInst,NULL);

在窗口的hWndParent的RECT(0,0,100,300)區域創建了一個按鈕控件,這個控件的ID是1,代表這個按鈕被

點擊時會向wWndParent窗口發送一個WM_COMMAND消息,wparam參數的低位為1.

3.復選框的創建  修改按鈕本身的風格可把按鈕變成復選框,比如BS_AUTOCHECKBOX就使按鈕

變成了CheckBox, 而且在鼠標點擊時,它的選中狀態會自動改變,如果之前是選中,點擊后就

變成非選中狀態,創建代碼如下

HWND hWndCheckBox = CreateWindow(_T("BUTTON"),_T("我是復選框"),WS_CHILD|

BS_AUTOCHECKBOX,0,0,100,30,hWndParent,(HMENU)2,hInst,NULL);


4.SendMessage LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)

向指定的窗口發送特定的消息ID,帶上消息所用的參數,

SendMessage 發送消息后,收消息的窗口必須處理完這個消息,并且返回,SendMessage才會返回.

根據不同的消息類型.返回值的意義不一樣


5.獲得CheckBox的選中狀態,

通過SendMessage給CheckBox控件窗口發送BM_GETCHECK消息,可獲得選中狀態,

SendMessage(hWndChkBox,BM_GETCHECK,0,0)

返回值:如果BST_UNCHECKED代表未選中,如果是BST_CHECKED代表選中


6.手動設置CheckBox狀態的方法

通過SendMessage給CheckBox控件窗口發送BM_SETCHECK消息.

SendMessage(hWndChkBox,BM_SETCHECK,BST_CHECKED,0)

通過以下代碼可以把CheckBox設置非選中狀態

SendMessage(hWndChkBox,BM_SETCHECK,BST_UNCHECKED,0)


7.單選控件

單選控件WS_GROUP 樣式,當有單選控件創建時帶有這個樣式時,

之后創建的單選控件都是這個組的, 直到有右另一個也帶有這個樣式,他又是一個新組 



8.窗口居中的實現 

窗口上下左右距離 桌面窗口的上下左距離一致 就是居中

RECT rect; GetWindowRect(hwnd,&rect);獲得窗口左上角到主窗口到右上角的xy, 已經窗口右下角到桌面的左上角的xy

獲得高寬方法 就是把右下減去左上,rect.right - rect.left.  rect.bottom - rect.top;

把半個屏幕的寬度  減去  半個窗口的寬度, 獲得窗口最左邊要設置的位置. 

直接把屏幕寬度 減去窗口的寬度  / 2  也行

然后MoveWindow();  就行了。



9.MFC組成

a.必須喲預估CWinApp的派生類,并且這個類定義一個全局對象theApp

這個對象初始化的時候. 因為是靜態的,所以他比WinMain函數,

還早執行, 也就是他先執行這個派生自CWinApp的類的構造函數.

b.派生類必須重寫InitInstance虛函數, 作為MFC的入口函數


10.MFC的消息映射機制

a.一個對話框資源要建立和一個派生自CDialog類的關聯,

這個派生類構造的時候,會把這個對話框的資源傳給父類,

b.這個類在調用DoModal即可顯示這個窗口

c.VS的類向導提供快速生成,消息對應的處理函數,

這樣就不需要手動去綁定消息了.

d.如果要收到綁定消息,首先定義處理函數,在這個派生類里

BEGIN_MESSAGE_MAP(CMFC01Dlg, CBCGPDialog)

END_MESSAGE_MAP()

在這兩個宏定義 其實就是消息處理,比如你要添加按鈕被點擊

ON_BN_CLICKED(按鈕ID,消息處理函數)即可。







向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永春县| 绥阳县| 司法| 洞口县| 聂拉木县| 珲春市| 贵港市| 高州市| 云林县| 河北省| 乌鲁木齐市| 昭觉县| 常宁市| 宿迁市| 双城市| 基隆市| 祥云县| 扶风县| 洞头县| 隆德县| 抚远县| 黄冈市| 三原县| 保靖县| 博乐市| 逊克县| 化州市| 青海省| 澄江县| 上杭县| 铁力市| 吉首市| 灵山县| 双流县| 利川市| 申扎县| 同德县| 精河县| 湄潭县| 中山市| 闻喜县|