Windows字符集以及以及字符转换

  • 消息映射是一个将消息和成员函数相互关联的表
  • 消息由三个部分组成:消息值、wParam参数和lParam参数

Windows字符集

  • 多字节->宽字节 加L L"abc"

TEXT 自适应编码的转换

TCHAR 自适应编码的转换

//统计多字节字符串长度
int num = 0;
char *p = "abc";
num = strlen(p);

//统计宽字节的字符串长度
wchar_t *p1 = L"avfsd";
num = wcslen(p1);

char * 与CString之间的转换 C++ string .c_str()

//char * ->CString
char *p2 = "cba";
CString str = CString(p2);

//CString -> char *
CStringA tmp;
tmp = str;
char *p4 = tmp.GetBuffer();

对话框类的数据交换和检验

​ 在程序运行界面中,用户往往会改变控件的属性,例如,在编辑框中输入字符串,或者改变组合框的选中项,又或者改变复选框的选中状态等。控件的属性改变后MFC会相应修改控件关联变量的值。这种同步的改变是通过MFC为对话框类自动生成的成员函数**DoDataExchange()**来实现的,也叫做对话框的数据交换和检验机制。

但是这种数据交换机制中,DoDataExchange()并不是被自动调用的,而是需要我们在程序中调用CDialogEx::UpdateData()函数,由UpdateData()函数再去自动调用DoDataExchange()的.

CDialogEx::UpdateData()函数的原型为:

BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

​ 参数:bSaveAndValidate用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE表示从变量传给控件。默认值是TRUE,即从控件传给变量。

一般为了让某种操作达到效果,我们只需要实现某个消息的消息处理函数

弹出对话框比较关键的一个函数,就是对话框类的DoModal()函数。CDialog::DoModal()函数的原型为:

​ virtual INT_PTR DoModal();

​ 返回值:整数值,指定了传递给CDialog::EndDialog(该函数用于关闭对话框)的nResult参数值。如果函数不能创建对话框,则返回-1;如果出现其它错误,则返回IDABORT。

​ 调用了它对话框就会弹出,返回值是退出对话框时所点的按钮的ID,比如,我们点了“退出”按钮,那么DoModal返回值为IDCANCEL。

你可能感兴趣的:(WindowsNT,MFC)