呂鑫MFC學習系列八

2021-07-09 22:12:44 字數 2851 閱讀 7601

還是繼續學習cwnd函式,增加一些常用的函式使用方法。

接下來的新增框架和函式介紹如下面介紹順序:

第一步,獲取和設定視窗資訊:

a)getwindowtext和setwindowtext:獲取和設定視窗的標題文字。

b)getstyle和modifystyle:獲取和設定視窗的基礎風格。

c)getexstyle和modifystyleex:獲取和設定視窗的擴充套件風格

第二步,計時器:

a)settimer:設定計時器

b)killtimer:清除計時器

第三步,視窗操作:

a)showwindow:改變視窗顯示狀態,包括最大化最小化和隱藏等等。

b)enablewindow:啟用或者禁用視窗

c)movewindow:移動視窗(父視窗基於座標系是螢幕座標系,如果是子視窗座標系是父視窗的客戶區)

d)centerwindow:居中視窗

e)setwindowpos:可以同時對視窗的x,y,z軸方向進行修改,常用於前端顯示功能的開發。

(如果是子視窗沿著z軸方向調整層疊順序,如果是父視窗主要用於調整前端顯示)

f)bringwindowtotop:不但可以再xy軸方向移動視窗,而且在z軸方向也可以移動

g)setforegroundwindow:將工作列內的乙個主視窗推到前台

(對主視窗bringwindowtotop也能起到同樣的功能)

h)setactivewindow:在同一程序內所有視窗中的乙個視窗設定為啟用狀態。

i)flashwindow:

第四步,視窗狀態:

a)iswindowvisible:判斷視窗是否可見或被隱藏。

b)isiconic:判斷是否最小化

c)iszoomed:判斷是否最大化

d)iswindowenabled:判斷視窗是啟用或者禁用狀態。

e)getwindowrect:獲取以螢幕座標係為基礎的視窗矩形區域。

f)getclientrect:獲取以物件關聯的以其客戶區為基礎的客戶區矩形區域。(left和top必然是0)

g)gettopwindow:獲取當前父視窗內所有子視窗中最底(top)的子視窗。

h)getforegroundwindow:獲取工作列內目前正在前台的乙個主視窗。

i)getactivewindow:在同一程序內所有視窗中處於啟用狀態的視窗。

第五步,視窗關係:

a)getdlgitem:根據id獲取乙個子視窗的物件位址(包含視窗控制代碼)

b)getdlgitemtext和setdlgitemtext:根據id獲取或設定乙個子視窗標題文字

c)getdlgitemint和setdlgitemint:根據id獲取或設定乙個子視窗內顯示的數字

d)setdlgctrlid和getdlgctrlid:根據視窗物件內的控制代碼獲取或設定該視窗的id。

e)getparent和ischild:求出父視窗和判斷乙個視窗是否為子視窗

f)getwindow:

g)getnextwindow:

第六步,重新整理函式:

invalidate和invalidaterect:

updatewindow:

redrawwindow:

screentoclient和clienttoscreen:

最後看一下一些等價關係:

1、ischild與getparent:

2、isiconic與getstyle()&ws_minimize:

3、iszoomed與getstyle()&ws_maximize:

4、iswindowvisible與getstyle()&ws_visible:

5、setdlgitemtext與getdlgitem(..)->setwindowtext

完成結果:

下面是新增的按鈕**:

void ctestwindlg::onbnclickedbutton7()

void ctestwindlg::onbnclickedbutton8()

void ctestwindlg::ontimer(uint_ptr nid)

if (nid == 123)

m_cret.movewindow(rect);

} cdialogex::ontimer(nid);

}void ctestwindlg::onbnclickedbutton9()

void ctestwindlg::onbnclickedbutton10()

void ctestwindlg::onbnclickedbutton11()

void ctestwindlg::onbnclickedbutton12()

void ctestwindlg::onbnclickedbutton13()

void ctestwindlg::onbnclickedbutton14()

void ctestwindlg::onbnclickedbutton15()

void ctestwindlg::onbnclickedbutton16()

void ctestwindlg::onbnclickedbutton17()

void ctestwindlg::onbnclickedbutton18()

void ctestwindlg::onbnclickedbutton19()

void ctestwindlg::onbnclickedbutton20()

}void ctestwindlg::onbnclickedbutton21()

}

MFC學習筆記(八)

mfc把早期的視窗類的功能分成三個部分 資料儲存 管理部分,資料顯示與使用者互動部分,管理視窗框的大小 標題 選單條 狀態條的窗框部分。從而形成了三個類 cdocument 檢視類cview和視窗框架類cframewnd。上面的三個物件之間的關係類似於房屋的窗戶,視窗框架類cframewnd相當於窗...

機器學習系列筆記 八

雜訊與錯誤 noise and error 不同錯誤適用於不同的場景 false accpet 錯誤接受 false reject 錯誤拒絕 商場打折 fbi門禁 各種情況下有不同的權重 weighted classification weighted pocket algorithm 權重口袋演算...

yolo 學習系列(八) 參考資源

0 關注博主 xiao run sum nap 1 入門準備 1.1 目標檢測演算法 r cnn fast rcnn faster rcnn到yolo ssd簡要 1.2 nvidia 初學jetsontx2之部署yolo nvidia jetson tx1 系列開發教程之十四 yolo安裝與優化加...