mfc控件与其对应的对象的关联方法

对话框的控件与其对应类的对象相关联:(两种方法

(1)      通过CWnd::DoDataExchange函数进行关联;

  用VC++6.0的MFC ClassWizard中的Member Variables页面的Add Variable关联一个变量

  然后在程序的DoDataExchange函数中会有DDX_XXXXX函数关联;该方法非常通用;比如一个CEdit控件,既可以关联一个CEdit对象,也可以关联int,CString等类型的变量;

(2)      用一下函数进行关联(与其对应的类的对象关联)

主要应用如下函数:

CWnd* GetDlgItem( int nID ) const;

nID为资源的ID号,当然,控件必须为从CWnd派生出来的控件;

1.    比如一个进度条控件

CProgressCtrl* g_ptrProgress1 = NULL;

g_ptrProgress1 = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);

//注意强制转换;将CWnd*强制转换为CProgressCtrl*

2.       比如一个编辑框

CEdit* pBoxOne;

pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);

时间: 2024-10-29 06:59:11

mfc控件与其对应的对象的关联方法的相关文章

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

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

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

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

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

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

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

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

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

duilib mfc中ocx控件-duilib如何调用mfc控件ocx中的方法,急!!!

问题描述 duilib如何调用mfc控件ocx中的方法,急!!! duilib如何调用mfc控件ocx中的方法啊?求大神赐教啊!!!谢谢了!!! 解决方案 这个我已经有思路了,但还是不知道怎么在duilib中加载,如何获取组件的iid?

MFC控件IDC_VIDEO,找不到

问题描述 MFC控件IDC_VIDEO,找不到 我正在学习MFC,然后根据网上找的例子在做,但是有一步是说添加一个静态控制IDC_VIDEO.根据网上其他说法是弄一个静态txt的控件然后修改名字.但是属性中IDC_这一列是灰色的,不能修改,而且程序中使用这个控件是用来播放视频的,txt的控件也不能播放视频吧.求大神指导下,我使用的是VS2010. 解决方案 在对话框编辑器上选中这个静态标签,点右键,属性,在属性框中找到id,可以修改. 静态控件是static不是textbox 解决方案二: 如果

MFC控件之CListCtrl的应用实例教程_C 语言

本文以实例形式较为详细的讲述了MFC控件中CListCtrl的应用方法,对于学习Windows程序设计来说有不错的借鉴价值.具体步骤如下: 首先,CMFCListCtrl实现的功能中比较特别的就是通过CImage来扩展每行的高度.实例化代码如下: CMFCListCtrl m_lisTestResult; 1.插入列(创建表格): m_lisTestResult.InsertColumn(0, _T("序号"), LVCFMT_CENTER, 50); 2.填充内容: m_lisTes