VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 585|回复: 0

[交流] 编辑框Edit七种方法访问控件 每日一练记录过程

[复制链接]
13_avatar_middle
最佳答案
1 
在线会员 发表于 2022-2-2 20:14:21 | 显示全部楼层 |阅读模式
省的自己以后忘了

  1. MFC编程之编辑框控件:CEdit --Edit Control 可编辑文本的控件
  2. 编辑框控件属性上 多行true,想要返回 ENTER键(换行)true

  3. CWnd::GetDlgItemText 获取控件的文本   GetDlgItemText函数向控件发送WM_GETTEXT消息。
  4. CWnd::SetDlgItemText 设置对话框控件的文本  SetDlgItemText向给定的控件发送一条WM_SETTEXT消息。
  5. CString::Format格式化字符串
  6. CWnd::GetDlgItem  获得指定的对话框中具有指定ID的控件
  7. CWnd::GetWindowText 返回窗口的文本或标题文字(如果有)
  8. CWnd::SetWindowText 将窗口的文本或标题文字(如果有)设为指定的文本
  9. CWnd::GetDlgItemInt 将给定对话框中控件的文本转换为整数
  10. CWnd::SetDlgItemInt 将控件的文本设为代表一个整数的字符串

  11. 编辑框Edit七种方法访问控件
  12. 方法一:
  13. 读编辑框数据:GetDlgItem(IDC_EDIT)->GetWindowText(string ,length);
  14. 函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount)
  15. 写编辑框数据:GetDlgItem(IDC_EDIT)->SetWindowText(string);
  16.        int n1, n2, n3;
  17.        _TCHAR str1[10], str2[10], str3[10];
  18.        GetDlgItem(IDC_EDIT1)->GetWindowText(str1,10);
  19.        GetDlgItem(IDC_EDIT2)->GetWindowText(str2, 10);
  20.        n1 = _ttoi(str1);
  21.        n2 = _ttoi(str2);
  22.        n3 = n1 + n2;
  23.        _itot_s(n3, str3, 10);  //10这个是十进制,16是十六进制 8进制
  24.        GetDlgItem(IDC_EDIT3)->SetWindowText(str3);
  25. 方法二:
  26. 读编辑框数据:GetDlgItemText(IDC_EDIT,string,length);
  27. 写编辑框数据:SetDlgItemText(IDC_EDIT,string);
  28.     int num1, num2, num3;
  29.         TCHAR ch1[12], ch2[12], ch3[12];
  30.         GetDlgItemText(IDC_EDIT2, ch1, 12);
  31.         GetDlgItemText(IDC_EDIT3, ch2, 12);
  32.         num1 = _ttoi(ch1);
  33.         num2 = _ttoi(ch2);
  34.         num3 = num1 + num2;
  35.         _itot_s(num3, ch3, 10);
  36.         SetDlgItemText(IDC_EDIT4, ch3);

  37. 方法三:
  38. 读编辑框数据:GetDlgItemInt(IDC_EDIT);
  39. 写编辑框数据:SetDlgItemInt(IDC_EDIT,value);
  40.     int num1, num2, num3;
  41.         num1 = GetDlgItemInt(IDC_EDIT2);
  42.         num2 = GetDlgItemInt(IDC_EDIT3);
  43.         num3 = num1 + num2;
  44.         SetDlgItemInt(IDC_EDIT4, num3);
  45. 方法四:把控件和整形变量相关联
  46. 编辑框添加变量关联在一起类型 value值 变量类型:int 头文件:变量类型,名字
  47.     DoDataExchange为对话框提供数据交换和验证信息
  48.         DDX是数据交换,DynamicDataeXchange,DDV是数据验证DynamicDataVerify
  49.         调用DDV_MinMaxInt以检验与value相关的控件中的值是否介于minVal和maxVal之间
  50.        
  51.     DDV_MinMaxInt(pDX, m_num1, 1, 1000);
  52.     DDX_Text(pDX, IDC_EDIT3, m_num2);

  53.     UpdateData(true);   从编辑框控件获取数据到关联变量中,
  54.         m_num3 = m_num1 + m_num2;
  55.         UpdateData(FALSE);  更新数据到编辑框控件
  56. 方法五:把控件和控件变量相关联
  57.         DDX_Control将控件与变量绑定
  58.     变量类型:CEdit  类别:control控件  value值 头文件:CEdit 名字
  59.     DDX_Control(pDX, IDC_EDIT2, m_edit1);
  60.        
  61.     int num1, num2, num3;
  62.         TCHAR ch1[12], ch2[12], ch3[12];
  63.         m_edit1.GetWindowTextW(ch1, 12);
  64.         m_edit2.GetWindowTextW(ch2, 12);
  65.         num1 = _ttoi(ch1);
  66.         num2 = _ttoi(ch2);
  67.         num3 = num1 + num2;
  68.         _itot_s(num3, ch3, 10);
  69.         m_edit3.SetWindowTextW(ch3);

  70. 方法六:
  71.      Windows API宏,在WinUser.h中根据是否已定义Unicode被定义为SendMessageW或SendMessageA
  72.     这两个函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。
  73.     而和函数PostMessage不同,PostMessage是将一个消息寄送到一个线程的消息队列后就立即返回。
  74.     CWindow::SendMessage   通过发送WM_GETTEXT命令获得EDIT中的信息   
  75.         将 WM _ GETTEXT 消息发送到非文本静态控件(例如静态位图或静态图标控件)时,不会返回字符串值。 相反,它返回零
  76.         WM_SETTEXT   应用程序发送此消息来设置一个窗口的文本
  77.         发送消息函数:SendMessage();
  78.     读编辑框数据:    ::SendMessage(GetDlgItem(IDC_EDIT)->m_hWnd,WM_GETTEXT,length,(LPARAM)ch);
  79.     写编辑框数据:    ::SendMessage(GetDlgItem(IDC_EDIT)->m_hWnd,WM_SETTEXT,0,(LPARAM)ch);
  80.     其中GetDlgItem(IDC_EDIT)->m_hWnd)为编辑框窗口句柄
  81.        
  82.         int num1, num2, num3;
  83.         TCHAR ch1[12], ch2[12], ch3[12];
  84.         ::SendMessage(GetDlgItem(IDC_EDIT2)->m_hWnd, WM_GETTEXT, 12, (LPARAM)ch1);
  85.         ::SendMessage(GetDlgItem(IDC_EDIT3)->m_hWnd, WM_GETTEXT, 12, (LPARAM)ch2);
  86.         num1 = _ttoi(ch1);
  87.         num2 = _ttoi(ch2);
  88.         num3 = num1 + num2;
  89.         ::SendMessage(GetDlgItem(IDC_EDIT4)->m_hWnd, WM_SETTEXT, 0, (LPARAM)ch3);
  90.        
  91. 方法七:
  92.      发送消息函数:SendDlgItemMessage();
  93.      SendDlgItemMessage()相当于是将SendMessage()和GetDlgItem(IDC_EDIT)->m_hWnd合并而来的;
  94.      读编辑框数据:SendDlgItemMessage(IDC_EDIT,WM_GETTEXT,12,(LPARAM)ch);
  95.      写编辑框数据:SendDlgItemMessage(IDC_EDIT,WM_SETTEXT,0,(LPARAM)ch);
  96.          
  97.         int num1, num2, num3;
  98.         TCHAR ch1[12], ch2[12], ch3[12];
  99.         SendDlgItemMessage(IDC_EDIT2, WM_GETTEXT, 12, (LPARAM)ch1);
  100.         SendDlgItemMessage(IDC_EDIT3, WM_GETTEXT, 12, (LPARAM)ch2);
  101.         num1 = _ttoi(ch1);
  102.         num2 = _ttoi(ch2);
  103.         num3 = num1 + num2;
  104.         SendDlgItemMessage(IDC_EDIT4, WM_SETTEXT, 0, (LPARAM)ch3);
复制代码

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small thzzl + 2 + 2 很给力!

查看全部评分





上一篇:C++ 最快的读取中文文件(UTF-8)的方式
下一篇:拆分窗口后,窗口里的初始化没出来
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2022-8-15 12:40

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表