VC++ 自定義控件的建立及使用方法
一、VC++定義自定義控件與delphi,VB有些差異。
delphi,vb在 file-new-other中建立。vc++在工具欄中就有自定義控件,但必須加入控件類(lèi)型。
許多書(shū)籍都在類(lèi)向?qū)е薪ⅰN疫@里介紹的是手動(dòng)建立,其結(jié)果是一樣的。
二.建立過(guò)自定義控件類(lèi)型:
2.1、把工具欄上的自定義控件放入對(duì)話(huà)框中
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();//一個(gè)自定義方法 }; #endif
2.4 Mycontrol.cpp中的實(shí)現(xiàn)部分
#include "StdAfx.h" #include "mycontrol.h" CMycontrol::CMycontrol() { CMycontrol::RegisterWndClass(); } //注冊(cè)控件RegisterWndClass格式是固定的不要記憶沒(méi)有那個(gè)必要直接拷貝粘貼就可以。 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.在類(lèi)向?qū)е薪壎ㄗ远x控件時(shí)你是找不到剛才你定義的類(lèi)型的,所以我采用手動(dòng)加入代碼方法。
3.2.在對(duì)話(huà)框.h文件中手動(dòng)加入:public: CMycontrol m_mycontrol;
3.3.在對(duì)話(huà)框.cpp文件中手動(dòng)加入:DDX_Control(pDX,IDC_CUSTOM1,m_mycontrol);
3.4.在對(duì)話(huà)框中加入Button 在點(diǎn)擊事件中加入測(cè)試代碼:
void CCustomcontrolDlg::OnButton1() { // TODO: Add your control notification handler code here m_mycontrol.customfun(); }
四、編譯運(yùn)行vc++自定義控件的對(duì)話(huà)框窗體.編譯成功但運(yùn)行什么也不顯示的解決
右鍵自定義控件->屬性->類(lèi)型中填寫(xiě)"mycontrol"再次允許OK!
到此VC++自定義控件就全部介紹完畢,你可以在類(lèi)型中加入你要實(shí)現(xiàn)的方法。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
上一篇:C++中Cbitmap,HBitmap,Bitmap區(qū)別及聯(lián)系
欄 目:C語(yǔ)言
下一篇:c++學(xué)習(xí)之構(gòu)造函數(shù)
本文標(biāo)題:VC++ 自定義控件的建立及使用方法
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3028.html
您可能感興趣的文章
- 01-10VC對(duì)自定義資源加密解密(AES)的詳解
- 01-10淺析c#中如何在form的webbrowser控件中獲得鼠標(biāo)坐標(biāo)
- 01-10淺析c#中WebBrowser控件的使用方法
- 01-10c++ builder TreeView控件節(jié)點(diǎn)遍歷代碼
- 01-10VC中Tab control控件的用法詳細(xì)解析
- 01-10VC++中的字體設(shè)置方法詳解
- 01-10淺析VC++中的頭文件包含問(wèn)題
- 01-10VC++開(kāi)發(fā)中完美解決頭文件相互包含問(wèn)題的方法解析
- 01-10map插入自定義對(duì)象總結(jié)
- 01-10vc++實(shí)現(xiàn)的tcp socket客戶(hù)端和服務(wù)端示例


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子