GetDlgItem

  1. void CDlg1::OnBnClickedAdd()
  2. {
  3.     /*
  4.     int num1, num2, num3;
  5.     wchar_t ch1[10], ch2[10], ch3[10];

  6.     //GetDlgItem(IDC_EDIT1)->GetWindowTextW(ch1, 10);
  7.     //GetDlgItem(IDC_EDIT2)->GetWindowTextW(ch2, 10);

  8.     //另一种实现
  9.     //GetDlgItemText(IDC_EDIT1, ch1, 10);
  10.     //GetDlgItemText(IDC_EDIT2, ch2, 10);

  11.     //更加简便的实现
  12.     num1 = GetDlgItemInt(IDC_EDIT1);
  13.     num2 = GetDlgItemInt(IDC_EDIT2);


  14.     //num1 = _wtoi(ch1); //atoi的宽字符版
  15.     //num2 = _wtoi(ch2);
  16.     num3 = num1 + num2;

  17.     //_itow(num3, ch3, 10); //itoa的宽字符版,可以查阅MSDN
  18.     //GetDlgItem(IDC_EDIT3)->SetWindowTextW(ch3);
  19.     //SetDlgItemText(IDC_EDIT3, ch3);

  20.     SetDlgItemInt(IDC_EDIT3, num3);

  21.     // TODO: 在此添加控件通知处理程序代码
  22.     */


  23.     UpdateData();
  24.     m_num3 = m_num1 + m_num2;
  25.     UpdateData(FALSE);
  26. }


--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

你可能感兴趣的:(C/C++)