Windows核心編程(2)-創(chuàng)新互聯(lián)

一、創(chuàng)建控件或窗口

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站建設(shè)、網(wǎng)站設(shè)計與策劃設(shè)計,大荔網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:大荔等地區(qū)。大荔做網(wǎng)站價格咨詢:18982081108
  1. 創(chuàng)建控件或者窗口的API是CreateWindow

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

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

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


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

3.復(fù)選框的創(chuàng)建  修改按鈕本身的風(fēng)格可把按鈕變成復(fù)選框,比如BS_AUTOCHECKBOX就使按鈕

變成了CheckBox, 而且在鼠標(biāo)點擊時,它的選中狀態(tài)會自動改變,如果之前是選中,點擊后就

變成非選中狀態(tài),創(chuàng)建代碼如下

HWND hWndCheckBox = CreateWindow(_T("BUTTON"),_T("我是復(fù)選框"),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)


向指定的窗口發(fā)送特定的消息ID,帶上消息所用的參數(shù),

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

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

5.獲得CheckBox的選中狀態(tài),

通過SendMessage給CheckBox控件窗口發(fā)送BM_GETCHECK消息,可獲得選中狀態(tài),

SendMessage(hWndChkBox,BM_GETCHECK,0,0)

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

6.手動設(shè)置CheckBox狀態(tài)的方法


通過SendMessage給CheckBox控件窗口發(fā)送BM_SETCHECK消息.

SendMessage(hWndChkBox,BM_SETCHECK,BST_CHECKED,0)

通過以下代碼可以把CheckBox設(shè)置非選中狀態(tài)

SendMessage(hWndChkBox,BM_SETCHECK,BST_UNCHECKED,0)

7.單選控件

單選控件WS_GROUP 樣式,當(dāng)有單選控件創(chuàng)建時帶有這個樣式時,

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

8.窗口居中的實現(xiàn)

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

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

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

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

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


然后MoveWindow();  就行了。

9.MFC組成

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

這個對象初始化的時候. 因為是靜態(tài)的,所以他比WinMain函數(shù),


還早執(zhí)行, 也就是他先執(zhí)行這個派生自CWinApp的類的構(gòu)造函數(shù).

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

10.MFC的消息映射機制

a.一個對話框資源要建立和一個派生自CDialog類的關(guān)聯(lián),

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

b.這個類在調(diào)用DoModal即可顯示這個窗口


c.VS的類向?qū)峁┛焖偕?消息對應(yīng)的處理函數(shù),

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

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

BEGIN_MESSAGE_MAP(CMFC01Dlg, CBCGPDialog)

END_MESSAGE_MAP()

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

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享題目:Windows核心編程(2)-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://muchs.cn/article46/dhgshg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站制作、關(guān)鍵詞優(yōu)化移動網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)