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

问题描述

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

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

解决方案

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

解决方案二:

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

解决方案三:

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

时间: 2024-09-15 21:32:36

vc-关于mfc控件关联对象的问题的相关文章

mf控件-怎样处理好MFC控件关联

问题描述 怎样处理好MFC控件关联 MFC基于对话框的win32应用程序在处理控件对象变量*与控件之间关联的时候,编译通过但就是执行时遇到问题,如通过CEdit m_ctledit对象直接对关联的控件进行操作时,在这之后应该UpdateData(false)吗?但我调试发现UpdateData(false)放在之前反而没有出错,为什么呢?不是空间变量改变了在刷新吗?还有在OnInitDialog()初始化函数里,不能用m_ctledit.SetFocus()而只能用((CEdit*)GetDlg

c++-使用ocx控件关联变量,其m_hWnd=NULL

问题描述 使用ocx控件关联变量,其m_hWnd=NULL 我用C++写了一个OCX控件.在MFC程序调用的使用,对该控件关联了一个变量m_myoxc.然后模仿其它人的代码进行判断if(m_myoxc.m_hWnd == NULL){ return -1}.我也不知道为什么这么写.但是现在程序卡在这边了.在什么情况下m_myoxc.m_hWnd == NULL??我控件也注册过了. 解决方案 控件这是初始化成功,m_hWnd 应该就不为空. 否则,说明控件变量初始化失败.可以在 OCX 控件的初

平滑-VC 中关于控件美观的小问题,求救各路大神的帮助啦!!

问题描述 VC 中关于控件美观的小问题,求救各路大神的帮助啦!! VC++ 6.0 怎么使对话框上控件(如static.Edit等)的四个角变得平滑?? 解决方案 直接自绘就可以实现,但是自己实现的缺点是,工作量大,要考虑和不同的操作系统以及不同的主题适配,你自己机器看上去不错,换了计算机别的主题设置,别人用了不同的字体大小,未必就适合了. 最好是使用现成的第三方控件.比如devexpress或者bcgcontrolbar,还有一些皮肤控件.比如金山UI等等. VS2012开始,MFC集成了一个

visual studio-别人写的MFC控件(一个.h一个.cpp)我怎么把这个控件添加到vs的界面中?

问题描述 别人写的MFC控件(一个.h一个.cpp)我怎么把这个控件添加到vs的界面中? 别人写的MFC控件(一个.h一个.cpp)我怎么把这个控件添加到vs的界面中? 能给个步骤吗? 解决方案 resource.h添加控件ID的定义,.rc中添加控件的属性 解决方案二: -.-有这些了就能随意加了, 首先将这两个文件放到项目文件下面,然后打开你的项目工程,右击项目的头文件,将鼠标移动到添加,然后点击添加现有项,选择.h;然后接着点击项目的实行文件,选择.cpp:然后就能使用了

mfc控件-Edit Control控件赋值报错

问题描述 Edit Control控件赋值报错 求问大神,我从数据库取了一条记录出来,想要赋值给EditControl,代码如下: if (pRst->rsEOF) { MessageBox(_T("没有数据")); } else; {MessageBox(_T("有数据")); CString m = (LPCTSTR)_bstr_t(pRst->GetCollect("Book_ID")); AfxMessageBox(m); m

listbox-win32控件关联变量,菜鸟问题

问题描述 win32控件关联变量,菜鸟问题 我用CreateWindow创建一个listbox的控件怎么把这个控件关联一个变量,对这个控件进行操作.纠结了好长时间,一直未解决 解决方案 CreateWindow返回这个窗口的句柄(listbox也是窗口).用这个句柄就可以通过windows的消息机制操作这个窗口的一切 解决方案二: 如果你是用sdk写程序.那么一个控件只需要一个窗体句柄作为变量就够了. 解决方案三: 关联一个CListCtrl变量就可以操作了 解决方案四: 你只能保存创建的控件变

mfc-请教MFC控件重叠时点击选择问题

问题描述 请教MFC控件重叠时点击选择问题 我在一个表格控件中点击,打开一个月历控件来选择月历,但是由于这两个控件是重叠的, 明明月历控件在前面,一点击就乱了,后面的表格漏出来,月历显示也不完整了. 如果不重叠就不会有问题,为了方便需要重叠,怎样解决? 解决方案 http://blog.csdn.net/icebergsnowfox/article/details/8986065 解决方案二: 重叠的消息点击处理是不是发送给多个了 解决方案三: Win 的机制,不是前面是无法接收到点击的.除非做

vc用datagrid 控件显示查询结果 出现bug

问题描述 vc用datagrid 控件显示查询结果 出现bug 第一行第一列空白 之前啰里啰唆问了一大推,编辑了一下,保留了最核心的问题, 希望有大哥能授业解惑... 解决方案 这个要看你的具体的代码.你没有贴出代码和问题,贴的图都是一些无关紧要的东西. 至于列名,你在sql里指定就好了.比如select id, stu_id as 学号, c_name as 课程, grade as 成绩 from 表 解决方案二: 给控件添加值的时候,加个断点开下第一个里面的数据是不是空的,先确定是数据为空

MFC 控件指针前面 加 * 为何会通不过编译呢?

问题描述 MFC 控件指针前面 加 * 为何会通不过编译呢? 以前没有这样使用过, 呵呵, 今天突然发现 像下面的语句不能通过编译,呵呵. MFC 里有什么具体的说明么? 难道 控件指针前面不能 加 星号 去指针化? 非得 用 -> 运算符吗? CListCtrl* p_list = (CListCtrl*)GetDlgItem(IDC_LIST1); CListCtrl local_list_ctrl = *p_list; 解决方案 控件类型不支持指针的解引用,它不是简单的可以转换回来的. 解