一:DDXDDX(Dialog Data Exchange,DDX)对话框数据交换是用来在CDialog派生类中创建成员变量,并使之与界面模板上的控件相关联。DDX有两个类别:控件和值。DDX值变量是包含一个具体控件的值的成员变量。用于生命成员变量的具体C++类型取决于控件的类型。DDX变量(控件变...
分类:
其他好文 时间:
2014-11-27 20:21:47
阅读次数:
193
编译错误提示: 1>afxnmcdd.lib(wincore2.obj) : error LNK2005: "void __stdcall DDX_Control(classCDataExchange *,int,class CWnd &)" (?DDX_Control@@YGXPAVCDataE....
DoDataExchange由框架调用,作用是交互并且验证对话框数据,主要由(DDX)和(DDV)宏实现。永远不要直接调用这个函数,而是通过UpdateData(TRUE/FALSE)实现控件与变量之间值的传递。当然你也可以不使用DoDataExchange而完成控件与变量之间值的传递,如:通过Ge...
分类:
其他好文 时间:
2014-09-15 14:16:08
阅读次数:
255
void AFXAPI DDX_Text( CDataExchange*pDX, intnIDC, BYTE&value);void AFXAPI DDX_Text( CDataExchange*pDX, int nIDC, short&value);void AFXAPI DDX_Text( CD...
分类:
其他好文 时间:
2014-09-15 14:12:08
阅读次数:
210
在MFC中使用CEdit时,设置只允许输入数字,但仍然会出现下图所示“数字200前允许输入0”的问题。
这种情况被认为是用户界面不友好的表现,需要做成:如果已经输入非零整数200,则不允许在200再输入0,如下图。
可以通过以下方法实现:
1. 在DoDataExchange函数中为CEdit控制映射整型变量:
DDX_Text(pDX, IDC_EDIT_RXDELAY,...
分类:
其他好文 时间:
2014-09-10 12:32:30
阅读次数:
204
该函数中的代码是由ClassWizard自动加入的。DoDataExchange只有一个参数,即一个CDataExchange对象的指针pDX。在该函数中调用了DDX函数来完成数据交换,调用DDV函数来进行数据有效检查。当程序需要交换数据时,不要直接调用DoDataExchange函数,而应该调用C...
分类:
其他好文 时间:
2014-09-04 18:42:49
阅读次数:
251
今天打算自绘MFC的界面时,建了个测试对话框试了下,在删除了一个IDC_STATIC控件后,程序运行起来出错了,DEBUG了一下弹出anunsupportedoperationwasattempted,说我正在尝试一个不支持的操作。然后就跑到了一个有关DDX数据交换的函数中,这是系统文件,肯定不会出错,上网查了..
分类:
其他好文 时间:
2014-08-13 15:10:07
阅读次数:
166
MFC中操纵控件
操作控件的两种方式:
方式1 通过调用CWnd::GetDlgItem()函数,根据控件ID获取控件对象指针,操作控件即可。
对话框的初始化函数:OnInitDialog()
方式2 对话框的数据交换技术(DDX)
将控件和一个成员变量绑定,可以通过操作成员变量达到操作控件的目的。
1 定义与控件绑定的成员变...
分类:
其他好文 时间:
2014-08-03 18:08:35
阅读次数:
419
1,先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上。再在对话框类中,声明一个CTabCtrl变量:CTabCtrl m_tab;变量m_tab用来与对话框中的Tab Control控件交互,为此要在DoDataExchange函数中加入DDX_C...
1,定义和绑定CListCtrl m_CListCtrl;。。。void
CMyDialog::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST2, m_CL...
分类:
其他好文 时间:
2014-05-26 15:50:41
阅读次数:
175