• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > VC++ 自定义控件的建立及使用方法

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了vc++6.0官方下载,vc++,vc++6.0中文版下载,vc++6.0,vc++教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、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

</div>

    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!"));
 }

</div>

三、使用自定义控件

    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(); 
 }
</div>

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

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

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

以上所述就是本文的全部内容了,希望大家能够喜欢。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • VC++实现View内容保存为图片的方法
  • VC++ 获取系统时间的方法汇总
  • 浅谈VC++中的内联
  • VC++ 自定义控件的建立及使用方法
  • Vc++ 控件List Control用法总结
  • VC++时钟函数
  • VC++植物大战僵尸中文版修改器实现代码
  • 用VC++6.0实现石头剪刀布游戏的程序
  • VC++获得当前进程运行目录的方法
  • VC++进度条process Bar的用法实例

相关文章

  • 2017-05-28C++用mysql自带的头文件连接数据库
  • 2017-05-28C++中对象的常引用、动态建立和释放相关知识讲解
  • 2017-05-28Linux下C语言修改进程名称的方法
  • 2017-05-28浅谈C++中派生类对象的内存布局
  • 2017-05-28基于C程序启动代码的深入分析
  • 2017-05-28C++设计模式之单例模式
  • 2017-05-28VC6实现激活后台窗口最佳方法
  • 2017-05-28c语言全盘搜索指定文件的实例代码
  • 2017-05-28C++中指针和引用的区别分析
  • 2017-05-28详解C++编程中类的成员变量和成员函数的相关知识

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 使用boost读取XML文件详细介绍
    • C++ 自定义控件的移植问题
    • C++基于栈实现铁轨问题
    • 数据结构之伸展树详解
    • 探讨++i与i++哪个效率更高
    • 浅谈const变量赋值报错分析
    • 详解C++设计模式编程中责任链模式的应用
    • C++操作MySQL大量数据插入效率低下的解决方法
    • Cocos2d-x中CCEditBox文本输入框的使用实例
    • Mingw64编译wxWidgets 3.0.2常见错误分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有