zoukankan      html  css  js  c++  java
  • CEdit取消选择状态CEdit remove selection

    不是简单的setfocus别的控件,就使Cedit失去选中状态了

    转自https://www.cnblogs.com/finema/archive/2011/04/26/2029006.html

    问题背景:

         我的对话框里只含有一个CEdit 控件,在对话框初始化时,

    在代码中我明明正确调用了CEdit的SetSel方法,pEdit->SetSel(-1,0);但是对话框显示时,CEdit控件里还是全选显示,而不是我想的没有选中内容的显示.

    其实是CEdit的默认特性造成的,而不是CEdit的SetSel方法有问题,  在 OnInitDialog() 中调用的SetSel(-1,0) 取消选择是被系统正确处理的,只是CEdit是对话框的的第一个有焦点的控件,所以对话框显示时CEdit 得到了焦点,CEdit 控件得到焦点的默认处理方式就是全选,所以就看到上面所说的情况。

    解决方法有多种:

    方法1、CEdit 的 属性TABSTOP 设置为false

    方法2、加入CEdit 得到焦点事件的处理

    void CXXXDialog::OnSetfocusEdit1()
    {
       ((CEdit *)GetDlgItem(IDC_EDIT1))->SetSel(-1, 0, false);

    }

    方法3:(没有测试过)

    BOOL CTestDlg::OnInitDialog()
    {
        //  此处省略程序自动生成的那些代码
        //  。。。。。。
        //  。。。。。。。
    
        CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
        pEdit->SetWindowText("aaaaaaa  
        bbbbbbbb");
        pEdit->SetFocus();
        // MSDN查看SetSel函数的介绍
        // 此处,是让光标指到文本最末尾
        pEdit->SetSel(-2, -1);
    
        return false;  // return TRUE  unless you set the focus to a control
    }
    

      

    参考:

    http://www.experts-exchange.com/Programming/System/Windows__Programming/MFC/Q_21136277.html

    关键字:

    CEdit remove selection

  • 相关阅读:
    DES加密/解密
    HMACSha1加密方法
    .Net 计算文件大小函数
    maven项目打包
    08.29
    keep健身计划
    正则验证表单内容
    高德地图API
    Invalid location of tag (div)。
    08.15
  • 原文地址:https://www.cnblogs.com/XiHua/p/14760146.html
Copyright © 2011-2022 走看看