我有一个单文档程序,ToolBar上有一个派生自CEdit的编辑框,在MainFrame的OnCreate()中动态地创建的,已设置该EDIT有如下样式:
WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_LEFT|ES_AUTOHSCROLL|ES_NOHIDESEL
扩展样式为:
cs.dwExStyle|=WS_EX_CLIENTEDGE;
cs.dwExStyle|=WS_EX_NOPARENTNOTIFY;我想实现获得集点是全选其中的文本,写有如下代码:
m_wndSearch.SetFocus();
m_wndSearch.SetSel(0,-1);但是,各位高手,为什么没有用呢?
对于对话框中的编辑框则有用,为什么呢?

解决方案 »

  1.   

    m_wndSearch.SetSel(0,-1);是写在什么地方的?
      

  2.   

    SetFocus()有效果没有?如果没有,那就可能是位置不对,可能在窗体还没有创建(只有对象)时执行的
      

  3.   

    m_wndSearch.SetSel(0,-1)写在OnFocus处理函数中的。我设置断点,当编辑框获得焦点时,的确执行了m_wndSearch.SetSel(0,-1)的代码。就是不知为什么不显示被选中的状态。
      

  4.   

    参考这里的看看
    http://www.vckbase.com/document/viewdoc/?id=469
      

  5.   

    呵呵,哪个窗体的OnFocus()函数?
      

  6.   

    打开CNewEdit的ClassWizard为其加上一个OnSetFocus()函数
    在这个函数里SetSel(0,-1,TRUE);
      

  7.   

    我这个EDIT控件是MainFrame的成员,不是ToolBar的成员,跟这个是不是有关系呢?我先从CEdit中派生了一个新类叫CSearchEdit,在CSearchEdit中处理获得焦点的消息的,调用SetSel(0,-1)。这种做不行,然后,我又在处理CSearchEdit获得焦点的消息时,把消息通过SendMessage发送自定义消息给主框架,在主框加MainFrm中处理自定义消息,调用SetSel(0,-1)。可是仍然不行!真是郁闷呀!
      

  8.   

    你是不是希望达到这样的效果:当鼠标单击该控件时,该编辑框能够自动选中其中的文本?就像VC本身的查找、替换对话框中的编辑框一样?如果是这样的要求,那么第一种方法应该是可行啊,奇怪。要不在该控件中的OnClick()函数中添加SetSel()函数试一试?
      

  9.   

    谢谢 风清高,我要实现的就是你说的效果。
    我试试OnClick吧!