2 qq 32816267 qq_32816267 于 2016.03.04 22:24 提问

关于mfc控件关联对象的问题
vc

对话框上有一个控件button,那么系统应该维护了一个对象可以来控制button,不如:
getdlgitem(button)可以对button操作,如果自己写一个类mybutton继承button类,
在把button控件与mybutton类关联,那么就可以用这个类来操作button,那是不是可以说系统维护的button对象和关联为mybutton都可以控制button这个控件了。不知道怎么理解,希望大虾帮助,不知道哪里理解有误~!

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.04 23:34

用ctrl+w调出类向导,可以把控件映射给button类,本质上,mfc中的控件类其实就是维护一个hwnd句柄(所以这些控件都是从CWnd类派生),而它的成员函数,大多就是对对应api函数的封装。

lx624909677
lx624909677   Ds   Rxr 2016.03.07 17:25

如果自己写一个类mybutton继承button类,
在把button控件与mybutton类关联 这么做之后,你的控件类型就已经是mybutton而不是button了,mybutton里可以自定义控件的很多东西,而系统的自带的CButton类,没有继承来的这个mybutton类灵活。你就记住,MFC框架里的类,只能调用MFC里已有的API,而继承来的,则可以做很多的扩展

WinsenJiansbomber
WinsenJiansbomber   2016.03.05 13:43

关联这个词好抽像啊,不带这样不清不楚地提问的吧,

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MFC关于控件的美化问题
MFC关于控件的美化问题MFC关于控件的美化问题MFC关于控件的美化问题MFC关于控件的美化问题MFC关于控件的美化问题MFC关于控件的美化问题
OC 关联对象(Associated Object)
在一个已有类的的类目中添加公开属性或者是私有属性,常规的做法是无法实现的,这个涉及到Runtime的机制关于变量的存储方式,在类的实例化之后,成员变量在内存中的位置就被初始化好了,无法动态的添加。 但是,有一个方法可以实现,就是关联对象(Associated Object) 关联对象主要有三个方法,但是,通常的也就使用两个方法 objc_setAssociatedObject() 和 obj
MFC中picture控件坐标转换
如果觉得这篇文章对您有所启发,欢迎关注我的公众号,我会尽可能积极和大家交流,谢谢。 opencv在MFC框架下应用时,不可避免要用到picture控件显示图片,但picture控件显示图片的基本单位是屏幕坐标系,如果需要获取像素坐标系,只需要进行一步简单的转换即可。当然如果是opencv2.0及以上版本,则需要用到CvvImage这个类,网上可以下载到。坐标转换的核心思想就是根据picture空间...
调用VLC ActiveX控件
VS2010调用VLC-0.9.9 ActiveX控件,对本地视频文件进行网络流输出。 执行时需要注册VLC ActiveX控件,VLC只有低于0.9.9版本的ActiveX支持视频流化输出。
网页中响应ActiveX控件自定义事件
这几天在开发过程中遇到一个问题,即在网页中无法响应ActiveX控件自定义事件。经查资料后,明白ActiveX控件的事件如果要通过JavaScript等脚本语言响应,必须实现IProvideClassInfo或者IProvideClassInfo2接口。因为脚本语言必须通过这个接口获得控件的接口信息。 用MFC ActiveX Control Wizard生成的项目,其接口的实现是通过嵌套类完成
[转载]在MFC窗口中嵌入VLC ActiveX控件
经过一番的google和折腾,终于把VLC ActiveX控件嵌入MFC窗口并实现简单的视频播放了,虽然发现很多问题(比如vlc参数设置[注1],程序关闭后进程不结束等等),觉得最终可能还是会选择libvlc或者activeX+C#,不过还是记录一下过程,如果你真要这么做的话。 环境:VC8.0,Windows XP SP3,VLC 1.1.11 ActiveX v2 step1. 新
MFC控件使用之Static Text
静态文本框是一种单向的交互控件,用于显示数据,但是不接受输入。class CStatic : public CWndHBRUSH CSummerHolidayDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){  HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);  // TODO:  在此更改 DC 的任何属性  // TODO:  如果默认的不是所需画笔,则返回另一个画笔  if(nCtl
VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下)
上一节中鸡啄米讲了标签控件知识的上半部分,本节继续讲下半部分。        标签控件的创建        MFC为标签控件的操作提供了CTabCtrl类。        与之前的控件类似,创建标签控件可以在对话框模板中直接拖入Tab Control,也可以使用CTabCtrl类的Create成员函数创建。Create函数的原型如下: virtual BOOL Create(   D
C++ MFC控件随着窗口大小变化而自适应
处理WM_SIZE 消息的 onSize函数。 void CMFCcodeDlg::OnSize(UINT nType, int cx, int cy) { CDialogEx::OnSize(nType, cx, cy); CRect rect; pWndT->GetWindowRect(&rect); ScreenToClient(&rect);//将控件大小转换为在对话框中的区域
mfc的CTreeCtrl控件实现windows的资源管理器
记录这个文章没别的意思就是当做是学习笔记,没什么技术含量,因为测试其他功能需要在界面上面方便把东西拷贝到电脑上面,使用需要在测试工程里面直接把windows的资源管理器展示出来,这个东西以前做过,但是代码丢了很久,mfc只是测试的时候用一下,基本没有去细挖,所以这次记录一下代码,这个也简单的显示了一些系统图标。 没什么东西直接上主要代码(系统自己带的代码能不上就不上了)。 BOOL Cwp8M