getdlgitem
- void CDlg1::OnBnClickedAdd()
- {
- /*
- int num1, num2, num3;
- wchar_t ch1[10], ch2[10], ch3[10];
- //GetDlgItem(IDC_EDIT1)->GetWindowTextW(ch1, 10);
- //GetDlgItem(IDC_EDIT2)->GetWindowTextW(ch2, 10);
- //另一种实现
- //GetDlgItemText(IDC_EDIT1, ch1, 10);
- //GetDlgItemText(IDC_EDIT2, ch2, 10);
- //更加简便的实现
- num1 = GetDlgItemInt(IDC_EDIT1);
- num2 = GetDlgItemInt(IDC_EDIT2);
- //num1 = _wtoi(ch1); //atoi的宽字符版
- //num2 = _wtoi(ch2);
- num3 = num1 + num2;
- //_itow(num3, ch3, 10); //itoa的宽字符版,可以查阅MSDN
- //GetDlgItem(IDC_EDIT3)->SetWindowTextW(ch3);
- //SetDlgItemText(IDC_EDIT3, ch3);
- SetDlgItemInt(IDC_EDIT3, num3);
- // TODO: 在此添加控件通知处理程序代码
- */
- UpdateData();
- m_num3 = m_num1 + m_num2;
- UpdateData(FALSE);
- }
--GetDlgItem():接收一个控件ID,返回指向该窗口或控件的指针;
--GetWindowText():接收一个控件ID,获取其文本值;
--SetWindowText():接收一个文本值,设置对应控件的文本值;
--使用_wtoi和_itow实现wchar_t与int的转换
WCHAR(wchar_t)如何转换到float类型
方法一:
例子如下,先将WCHAR转换为LPCTSTR类型,然后再转化为char*类型,然后用atof转换为浮点型。资料参照:在MSDN搜索关键词atof,因为在这里放连接会失效
简单举个例子,如下。
float size;
WCHAR szMessage[] ="gdsgsdgsd";
size=atof((char*)(LPCTSTR)szMessage);
这个方法某些情况似乎只能显示第一位,具体还不知道原因。
方法二:
用swscanf()函数可以很好解决wchar_t转换到float的问题。具体不多写,查一下swscanf()用法即可。
http://blog.chinaunix.net/uid-26275986-id-3873571.html