VC++自定义控件的建立及使用方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC++自定义控件的建立及使用方法

本文来自: 详细来源请参考:/techntxt/201298191132524755545

VC++自定义控件的建立及使用方法来源:/ 发布日期:2012-09-08 点击次数:168 发布者IP:218.25.20.78 VC++自定义控件的使用方法

一、VC++定义自定义控件与delphi,VB有些差异。delphi,vb在file-new-other中建立。vc++在工具栏中就有

自定义控件,但必须加入控件类型。许多书籍都在类向导中建立。我这里介绍的是手动建立,其结果是一样的

二.建立过自定义控件类型:

2.1、把工具栏上的自定义控件放入对话框中

2.2、建立Mycontrol.h, Mycontrol.cpp文件

2.3、Mycontrol.h中的定义是

#ifndef __MYCTROLTRL_H__

#define __MYCTROLTRL_H__

#define MYWNDCLASS "mycontrol"

#include

class CMycontrol: public CWnd

{

private:

public:

static BOOL RegisterWndClass();

CMycontrol();

void customfun();//一个自定义方法

};

#endif

2.4 Mycontrol.cpp中的实现部分

#include "StdAfx.h"

#include "mycontrol.h"

CMycontrol::CMycontrol()

{

CMycontrol::RegisterWndClass();

}

//注册控件RegisterWndClass格式是固定的不要记忆没有那个必要直接拷贝粘贴就可以。

CMycontrol::RegisterWndClass()

{

WNDCLASS windowclass;

HINSTANCE hInst = AfxGetInstanceHandle();

//Check weather the class is registerd already

if (!(::GetClassInfo(hInst, MYWNDCLASS, &windowclass)))

{

//If not then we have to register the new class

windowclass.style = CS_DBLCLKS;// | CS_HREDRAW | CS_VREDRAW;

windowclass.lpfnWndProc = ::DefWindowProc;

windowclass.cbClsExtra = windowclass.cbWndExtra = 0;

windowclass.hInstance = hInst;

windowclass.hIcon = NULL;

windowclass.hCursor = AfxGetApp()->LoadStandardCursor(IDC_ARROW);

windowclass.hbrBackground = ::GetSysColorBrush(COLOR_WINDOW);

windowclass.lpszMenuName = NULL;

windowclass.lpszClassName = MYWNDCLASS;

if (!AfxRegisterClass(&windowclass))

{

AfxThrowResourceException();

return FALSE;

}

}

return TRUE;

}

//自定义方法

void CMycontrol::customfun()

{

AfxMessageBox(_T("my control!"));

}

三、使用自定义控件

3.1.在类向导中绑定自定义控件时你是找不到刚才你定义的类型的,所以我采用手动加入代码方法。

3.2.在对话框.h文件中手动加入:public: CMycontrol m_mycontrol;

3.3.在对话框.cpp文件中手动加入:DDX_Control(pDX,IDC_CUSTOM1,m_mycontrol);

3.4.在对话框中加入Button 在点击事件中加入测试代码:

void CCustomcontrolDlg::OnButton1()

{

// TODO: Add your control notification handler code here

m_mycontrol.customfun();

}

四、编译运行vc++自定义控件的对话框窗体编译成功但运行什么也不显示的解决

右键自定义控件->属性->类型中填写"mycontrol"再次允许OK!

到此VC++自定义控件就全部介绍完毕,你可以在类型中加入你要实现的方法。

本文来自: 详细来源请参考:/techntxt/201298191132524755545

相关文档
最新文档