VC++中HTControl控制类使用之CHTDlgBase对话框基类实例
更新时间:2020年4月25日 17:41 点击:2459
本文所述为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++项目开发中有一定的借鉴价值,希望能给大家的项目开发带来一定的帮助。
相关文章
VC++ loadlibrary()加载三方dll失败, 返回错误码:126的解决方法
今天在编写VC++ loadlibrary()加载三方dll是总是失败,并且返回错误码:126,这里就为大家分享一下具体的解决方法...2021-03-15- 这篇文章主要介绍了VC++实现选择排序算法简单示例,代码简洁易懂,有助于读者对数据结构与算法的学习,需要的朋友可以参考下...2020-04-25
VC++中HTControl控制类使用之CHTDlgBase对话框基类实例
这篇文章主要介绍了VC++中HTControl控制类使用之CHTDlgBase对话框基类,是比较丰富而实用的功能,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了VC++的if语句应用范围分析,对VC++初学者有很好的参考学习价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了Vc++ 控件List Control用法总结的相关资料,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了VC++ 中ListCtrl经验总结的相关资料,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了VC++进度条process Bar的用法,是进行VC++应用程序开发中非常常见的实用技巧,需要的朋友可以参考下...2020-04-25
VC++中HTControl的CHTButton按钮控件类用法实例解析
这篇文章主要介绍了VC++中HTControl的CHTButton按钮控件类用法,对于大家进行VC++项目开发有一定的帮助作用,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了VC++基于Dx实现的截图程序示例代码,比较实用的功能,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了VC++实现文件与应用程序关联的方法,涉及VC++针对注册表的相关操作技巧,需要的朋友可以参考下...2020-04-25
- 这篇文章主要为大家介绍了VC++ 6.0 C语言实现俄罗斯方块详细教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 这篇文章主要介绍了VC++创建msi文件的方法,对于应用程序的开发有一定的借鉴价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了VC++角色游戏中的人物初始化模块,对大家学习VC++有一定的帮助,需要的朋友可以参考下...2020-04-25
VC++实现CStdioFile写入及读取文件并自动换行的方法
这篇文章主要介绍了VC++实现CStdioFile写入及读取文件并自动换行的方法,很实用的功能,需要的朋友可以参考下...2020-04-25- 这篇文章主要为大家详细介绍了DEVC++实现推箱子小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 本文给大家汇总介绍了5种VC++中获取系统时间的方法,十分的简单实用,有需要的小伙伴可以参考下。...2020-04-25
- 这篇文章主要介绍了VC++获得当前进程运行目录的方法,可通过系统函数实现该功能,是非常实用的技巧,需要的朋友可以参考下...2020-04-25
VC++文件监控之FindFirstChangeNotification
因为ReadDirectoryChangesW 上次测试发现不能多级目录监控,所以尝试用FindFirstChangeNotification来实施文件监控,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了VC++中进程与多进程管理的方法,以实例形式详细分析了进程与多进程管理中所涉及的进程、子进程、进程的互斥运行与进程的结束等概念与具体实现方法,非常具有参考借鉴价值,需要的朋友可以参考下...2020-04-25
- 本文给大家分享的是使用VC++根据对话框大小调整控件大小的方法和示例代码,有需要的小伙伴可以参考下。...2020-04-25