前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MFC的自定义控件步骤

MFC的自定义控件步骤

作者头像
包子388321
发布2020-06-17 10:14:18
2.7K0
发布2020-06-17 10:14:18
举报
文章被收录于专栏:包子的书架

MFC的自定义控件

开发环境

vs2015

步骤:

  • 新建一个MFC 工程
  • 在窗口中添加一个自定义控件 Toolbox-->“Custom Control”-->属性-->class随便填写一个控件类名“CMyControl”, 这个名字用于以后注册控件用的,注册函数为RegisterWindowClass()。

工具栏.png

  • 创建自定义控件类 在Custom Control上右键点击 -->ClassWizard-->ClassWizard-->Add Class-->类名CMyControl(以C开头)-->Base class:CWnd。

类向导.png

创建控件类.png

  • 注册自定义控件CMyControl
代码语言:javascript
复制
 BOOL CMyControl::RegisterWindowClass(HINSTANCE hInstance)
 {
   LPCWSTR className = L"CMyControl";//"CMyControl"控件类的名字   
   WNDCLASS windowclass;
   if (hInstance)
      hInstance = AfxGetInstanceHandle();
   if (!(::GetClassInfo(hInstance, className, &windowclass)))
   {
      windowclass.style = CS_DBLCLKS;
      windowclass.lpfnWndProc = ::DefWindowProc;
      windowclass.cbClsExtra = windowclass.cbWndExtra = 0;
      windowclass.hInstance = hInstance;
      windowclass.hIcon = NULL;
      windowclass.hCursor = AfxGetApp()->LoadStandardCursor(IDC_ARROW);
      windowclass.hbrBackground = ::GetSysColorBrush(COLOR_WINDOW);
      windowclass.lpszMenuName = NULL;
      windowclass.lpszClassName = className;
   }
   return AfxRegisterClass(&windowclass);
  }
  • 在构造函数调用RegisterWindowClass()
代码语言:javascript
复制
  CMyControl::CMyControl()
  {
    RegisterWindowClass();
  }
  • 在控件属性中填写当前自定控件的类名 注意控件的ID不能和其他的重复

控件属性.png

  • 控件与对话框数据交换 在CMyTestDlg.h中定义一个变量: CMyControl m_control; 在对话框类的CMyTestDlg.cpp的DoDataExchange函数中添加 DDX_Control(pDX,IDC_CUSTOM1,m_control)。
代码语言:javascript
复制
 void CMyTestDlg::DoDataExchange(CDataExchange* pDX)
 {
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_CUSTOM1, m_control);
 }

以上步骤就完成了一个简单的自定控件

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MFC的自定义控件
    • 开发环境
      • 步骤:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档