zoukankan      html  css  js  c++  java
  • VC获取控件文本的几种方法

    一:GetDlgItem()->GetWindowText();
    二:GetDlgItemText();
    三:GetDlgItemInt();这个函数取到控件文本并将之转换成int返回给调用者.这对如使用EDIT控件获取整数非常方便,并且它可以有效处理有符号数.这个函数的调用稍有复杂,查阅MSDN!
    四: 将控件与成员变量相关联,比如要从EDIT控件获取整数,可以直接将EDIT控件与int类型的变量相关联,它会直接获取整数,并自动做相关的输入数据的 类型检测,当然也可以关联CEdit型变量,再间接获取数据,用这种方法时要注意UpdateData()函数的适时调用!如果是CEdit控件,可以用 CEdit中的GetWindowText()函数获取其内容!
    五:通过发送WM_GETTEXT或者WM_SETTEXT消息的方式获取:
    分为三种情况:
    (1)使用合全局的::SendMessage(),如下:
    ::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);//ch1是一个字符数组
    或者是:
    ::SendMessage(m_edit1.m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);   //这是已关联控件变量的情况下
    (2)使用CWnd的SendMessage(),如下:
    GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
    或者是:
    m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
    (3):使用CWnd::SendDlgItemMessage()函数,它实际上相当于先用GetDlgItem()得到控件句柄,再SendMessage(),是一种组合的方便方式!如:
    SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);
    在讲这个的时候,还讲到了可以获得一个控件中选中的内容的消息-EM_GETSEL以及可以设置哪些内容被选中的EM_SETSEL消息.使用方法见MSDN.如:
    SendDlgItemMessage(IDC_EDIT1,EM_SETSEL,1,3);
    m_edit1.SetFocus();//这句的意义是因为如果该控件不是当前的FOCUS所在,那么即使显示了选中也会不可见.
  • 相关阅读:
    系统幂等设计
    一文读懂消息队列一些设计
    DDD应对运营活动系统腐化实践
    一文读懂DDD
    阿里是如何处理分布式事务的
    核心交易系统架构演进
    系统服务化
    重构系统的套路-写有组织的代码
    数组生成树形结构
    js 对象全等判断
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318858.html
Copyright © 2011-2022 走看看