VC++中HTControl掌握類應用之CHTDlgBase對話框基類實例。本站提示廣大學習愛好者:(VC++中HTControl掌握類應用之CHTDlgBase對話框基類實例)文章只能為提供參考,不一定能成為您想要的結果。以下是VC++中HTControl掌握類應用之CHTDlgBase對話框基類實例正文
本文所述為VC++界面編程的一個MFC例子,基於HTControl控件類的CHTDlgBase對話框基類主文件代碼。該法式可完成靜態創立框架窗體,窗體外不雅(客戶區與非客戶區),調劑窗體年夜小,有效子窗口的掌握等功效。
詳細完成代碼以下:
/**************************************************************************** | Copyright (c) 2012, | ****************************************************************************/ #if !defined(__CHTDlgBase1_H__) #define __CHTDlgBase1_H__ class AFX_CLASS_EXPORT CHTDlgBase1 : public CDialog { DECLARE_DYNAMIC(CHTDlgBase1) public: /**************************************************************************** | 函數功效:創立模態對話框 | | 輸出參數: | | szName: 窗體題目 | | dwStyle:窗體屬性 | | dwExStyle:窗體擴大屬性 | | pMainWnd:假如此窗體是主窗體,傳遞&m_pMainWnd | | 輸入參數:無 | | 前往值: 非0表現創立勝利,0表現掉敗 | | 說 明: | ****************************************************************************/ INT_PTR CreateModalDlg(char* szName, DWORD dwStyle, DWORD dwExStyle = NULL, CWnd** pMainWnd = NULL); /**************************************************************************** | 函數功效:創立非模態對話框 | | 輸出參數: | | szName: 窗體題目 | | dwStyle:窗體屬性 | | dwExStyle:窗體擴大屬性 | | pMainWnd:假如此窗體是主窗體,傳遞&m_pMainWnd | | 輸入參數:無 | | 前往值: 非0表現創立勝利,0表現掉敗 | | 說 明: | ****************************************************************************/ INT_PTR CreateModallessDlg(char* szName, DWORD dwStyle, DWORD dwExStyle = NULL, CWnd** pMainWnd = NULL); /**************************************************************************** | 函數功效:使窗體矩形區域有效 | | 輸出參數: | | lpRect: 有效矩形, NULL表現全部窗體區域有效 | | bInvalidateChildren: 在lpRect區域上的子窗體能否也有效 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void InvalidateRect(LPCRECT lpRect, BOOL bInvalidateChildren = FALSE); public: //窗體寬,窗體年夜小轉變後值更新 int m_iWindowWidth; //窗體高,窗體年夜小轉變後值更新 int m_iWindowHeight; //窗體客戶區寬,窗體年夜小轉變後值更新 int m_iClientWidth; //窗體客戶區高,窗體年夜小轉變後值更新 int m_iClientHeight; int m_iMinWindowWidth; int m_iMinWindowHeight; //窗體寬度最年夜值,默許為0,表現鋪滿屏幕 int m_iMaxWindowWidth; //窗體高度最年夜值,默許為0,表現鋪滿屏幕 int m_iMaxWindowHeight; //TRUE:模態對話框 FALSE:非模態對話框, 弗成對其直接賦值 BOOL m_bModal; //TRUE:在窗體上按下鼠標挪動,窗體追隨挪動 FALSE:窗體不追隨挪動,可以在派生類中直接賦值 BOOL m_bLBtnMoveWindow; //弗成對其直接賦值 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__
該實例代碼在VC++項目開辟中有必定的自創價值,願望能給年夜家的項目開辟帶來必定的贊助。