源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-06-23 09:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要: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 <afxtempl.h>
  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++自定义控件就全部介绍完毕,你可以在类型中加入你要实现的方法。 以上所述就是本文的全部内容了,希望大家能够喜欢。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部