VC++中HTControl控制類使用之CHTDlgBase對(duì)話框基類實(shí)例
本文所述為VC++界面編程的一個(gè)MFC例子,基于HTControl控件類的CHTDlgBase對(duì)話框基類主文件代碼。該程序可完成動(dòng)態(tài)創(chuàng)建框架窗體,窗體外觀(客戶區(qū)與非客戶區(qū)),調(diào)整窗體大小,無(wú)效子窗口的控制等功能。
具體實(shí)現(xiàn)代碼如下:
/**************************************************************************** | Copyright (c) 2012, | ****************************************************************************/ #if !defined(__CHTDlgBase1_H__) #define __CHTDlgBase1_H__ class AFX_CLASS_EXPORT CHTDlgBase1 : public CDialog { DECLARE_DYNAMIC(CHTDlgBase1) public: /**************************************************************************** | 函數(shù)功能:創(chuàng)建模態(tài)對(duì)話框 | | 輸入?yún)?shù): | | szName: 窗體標(biāo)題 | | dwStyle:窗體屬性 | | dwExStyle:窗體擴(kuò)展屬性 | | pMainWnd:如果此窗體是主窗體,傳遞&m_pMainWnd | | 輸出參數(shù):無(wú) | | 返回值: 非0表示創(chuàng)建成功,0表示失敗 | | 說(shuō) 明: | ****************************************************************************/ INT_PTR CreateModalDlg(char* szName, DWORD dwStyle, DWORD dwExStyle = NULL, CWnd** pMainWnd = NULL); /**************************************************************************** | 函數(shù)功能:創(chuàng)建非模態(tài)對(duì)話框 | | 輸入?yún)?shù): | | szName: 窗體標(biāo)題 | | dwStyle:窗體屬性 | | dwExStyle:窗體擴(kuò)展屬性 | | pMainWnd:如果此窗體是主窗體,傳遞&m_pMainWnd | | 輸出參數(shù):無(wú) | | 返回值: 非0表示創(chuàng)建成功,0表示失敗 | | 說(shuō) 明: | ****************************************************************************/ INT_PTR CreateModallessDlg(char* szName, DWORD dwStyle, DWORD dwExStyle = NULL, CWnd** pMainWnd = NULL); /**************************************************************************** | 函數(shù)功能:使窗體矩形區(qū)域無(wú)效 | | 輸入?yún)?shù): | | lpRect: 無(wú)效矩形, NULL表示整個(gè)窗體區(qū)域無(wú)效 | | bInvalidateChildren: 在lpRect區(qū)域上的子窗體是否也無(wú)效 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說(shuō) 明: | ****************************************************************************/ void InvalidateRect(LPCRECT lpRect, BOOL bInvalidateChildren = FALSE); public: //窗體寬,窗體大小改變后值更新 int m_iWindowWidth; //窗體高,窗體大小改變后值更新 int m_iWindowHeight; //窗體客戶區(qū)寬,窗體大小改變后值更新 int m_iClientWidth; //窗體客戶區(qū)高,窗體大小改變后值更新 int m_iClientHeight; int m_iMinWindowWidth; int m_iMinWindowHeight; //窗體寬度最大值,默認(rèn)為0,表示鋪滿屏幕 int m_iMaxWindowWidth; //窗體高度最大值,默認(rèn)為0,表示鋪滿屏幕 int m_iMaxWindowHeight; //TRUE:模態(tài)對(duì)話框 FALSE:非模態(tài)對(duì)話框, 不可對(duì)其直接賦值 BOOL m_bModal; //TRUE:在窗體上按下鼠標(biāo)移動(dòng),窗體跟隨移動(dòng) FALSE:窗體不跟隨移動(dòng),可以在派生類中直接賦值 BOOL m_bLBtnMoveWindow; //不可對(duì)其直接賦值 BOOL m_bShowWindowFlag111; public: CHTDlgBase1(); virtual ~CHTDlgBase1(); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI); afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp); afx_msg LRESULT OnNcHitTest(CPoint point); afx_msg void OnClose(); afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized); afx_msg void OnActivateApp(BOOL bActive, DWORD dwThreadID); afx_msg void OnDestroy(); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); afx_msg void OnNcPaint(); afx_msg BOOL OnNcActivate(BOOL bActive); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnNcDestroy(); afx_msg void OnNcLButtonDblClk(UINT nHitTest, CPoint point); afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point); afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point); afx_msg void OnSize(UINT nType, int cx, int cy); DECLARE_MESSAGE_MAP() protected: virtual void OnOK(); virtual void OnCancel(); HICON m_hIcon; private: CWnd** m_ppMainWnd; }; #endif //!__CHTDlgBase1_H__
該實(shí)例代碼在VC++項(xiàng)目開(kāi)發(fā)中有一定的借鑒價(jià)值,希望能給大家的項(xiàng)目開(kāi)發(fā)帶來(lái)一定的幫助。
相關(guān)文章
C++ 先對(duì)數(shù)組排序,在進(jìn)行折半查找
以下小編就為大家介紹兩種實(shí)現(xiàn)方法。第一種方法是,選擇排序法+循環(huán)折半查找法。第二種方法是,冒泡排序法+遞歸折半查找法。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-10-10C++中的std::initializer_list使用解讀
這篇文章主要介紹了C++中的std::initializer_list使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07C語(yǔ)言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼)
這篇文章主要介紹了C語(yǔ)言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04C語(yǔ)言中二維數(shù)組作為函數(shù)參數(shù)來(lái)傳遞的三種方法
這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中二維數(shù)組作為函數(shù)參數(shù)來(lái)傳遞的三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C語(yǔ)言有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09