UpdateData()参数只有一个,默认为TRUE。
UpdateData(TRUE)
即:控件的值—>变量。
UpdateData(FALSE)
即:变量值—>控件显示。
例如,窗口中用 DDX_Text(pDX, IDC_EDIT1, m_usercode);
将IDC_EDIT1编辑框控件与m_usercode
变量
做了关联,如果修改m_usercode之后要想对应控件显示更改,则需要调用UpdateData(FALSE);反之在IDC_EDIT1的oneditchanged()中需要加入UpdateData(TRUE);
实例说明:
例如我们在对话框窗口中添加了3个editbox,然后将前两个的值相加,然后在第三个editbox中输出。
那么我们可以做如下处理:
2。然后我们可以多添加一个button控件,在其的click处理事件中,添加以下代码:
m_num3 = m_num1+m_num2;
UpdateData(FALSE);// 将变量的值,输出到与其关联的EditBox中
就可以了
#pragma once
(比较常用)
只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,这条指令实际上在VC6中就已经有了,但是考虑到兼容性并没有太多的使用它。
#ifndef,#define,#endif这个是C++语言相关,这是C++语言中的
宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的
编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式。
VC++宏——VERIFY
编辑
定义
#define VERIFY(exp) ASSERT(exp) 如果exp的值为真,继续执行;否则中止。
在VC MFC中VERIFY有另一个意思,其是一个判断的宏,MSDN中解释如下:
In the debug version of MFC, the
VERIFY macro evaluates its argument. If the result is 0, the macro prints a diagnostic message and halts the program. If the condition is nonzero, it does nothing.
可以声明一个类而不定义它
class Screen;//declaration of the Screen class
这个声明,有时候被称为前向声明(forward declaration),在程序中引入了类类型的Screen.在声明之后,定义之前,类Screen是一个不完全类型(incompete type),即已知Screen是一个类型,但不知道包含哪些成员.
不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数.
class Screen;//declaration of the Screen class
这个声明,有时候被称为前向声明(forward declaration),在程序中引入了类类型的Screen.在声明之后,定义之前,类Screen是一个不完全类型(incompete type),即已知Screen是一个类型,但不知道包含哪些成员.
不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数.