VC++中HTControl控制类使用之CHTDlgBase对话框基类实例

 更新时间:2014年08月11日 11:26:04   投稿:shichen2014  
这篇文章主要介绍了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++项目开发中有一定的借鉴价值,希望能给大家的项目开发带来一定的帮助。

相关文章

  • 浅谈C++日志系统log4cxx的使用小结详解

    浅谈C++日志系统log4cxx的使用小结详解

    本篇文章是对C++日志系统log4cxx的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C语言实现扫雷游戏简易版

    C语言实现扫雷游戏简易版

    这篇文章主要为大家详细介绍了C语言实现扫雷游戏简易版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 关于C++11中限定作用域的枚举类型的问题

    关于C++11中限定作用域的枚举类型的问题

    C++中有两种类型的枚举:不限定作用域的枚举类型和限定作用域的枚举类型。限定作用域的枚举类型是C++11标准引入的新类型,对C++11中限定作用域的枚举类型相关知识感兴趣的朋友一起看看吧
    2022-01-01
  • Linux配置C++11编译环境的方法

    Linux配置C++11编译环境的方法

    这篇文章主要介绍了Linux配置C++11编译环境,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • C++ static函数调用问题小结

    C++ static函数调用问题小结

    静态成员变量是在程序编译时分配空间,而在程序结束时释放空间,这篇文章主要介绍了C++ static函数调用问题小结,需要的朋友可以参考下
    2024-03-03
  • Visual Studio下Eigen库环境配置方式

    Visual Studio下Eigen库环境配置方式

    这篇文章主要介绍了Visual Studio下Eigen库环境配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • C/C++实现字符串模糊匹配

    C/C++实现字符串模糊匹配

    本文分别给大家介绍了2个C++在Linux平台和windows平台下实现字符串模糊匹配的方法,基本的核心思想都是一样的,均是使用fnmatch函数,有需要的小伙伴可以参考下。
    2016-04-04
  • C++超详细讲解隐藏私有属性和方法的两种实现方式

    C++超详细讲解隐藏私有属性和方法的两种实现方式

    为了避免因为将类库中的私有成员开放给类的使用方而导致的软件逻辑外泄,因此需要将对外代码中的私有成员隐藏起来,下面我们来了解一下隐藏私有属性和方法的两种实现方式
    2022-05-05
  • 详解C语言中accept()函数和shutdown()函数的使用

    详解C语言中accept()函数和shutdown()函数的使用

    这篇文章主要介绍了详解C语言中accept()函数和shutdown()函数的使用,用来操作socket相关的网络通信,需要的朋友可以参考下
    2015-09-09
  • C++中的作用域案例详解

    C++中的作用域案例详解

    作用域规定了标识符在代码中的可见性和可访问性,全局作用域中的标识符可以在整个程序中使用,局部作用域中的标识符只能在其所在的代码块中使用,而命名空间作用域提供了一种组织和封装代码的方式,以避免命名冲突,这篇文章主要介绍了C++中的作用域,需要的朋友可以参考下
    2024-02-02

最新评论