還是繼續學習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安裝與優化加...