本来我觉得直接在EditBox获得焦点的时候,在其响应函数
OnSetFocusEdit()中,加入以下代码:
m_edit->SetSel(0,-1);
通过这样的方式来实现。
但是不知道为什么不行,:(
而且我加了AfxMessageBox();调试过,很奇怪的是,
我点击EditBox一下,然后出来了很多条AfxMessageBox的提示框,怎么回事啊?
但是如果我在OnButton()里面加入
m_edit->SetSel(0,-1);
却可以实现,这是怎么回事呢?

解决方案 »

  1.   

    你的代码可能出现了ASSERT,导致相关的失败。============================================================================
    http://www.betajin.com/alphasun/index.htm           给我发信息请附带原帖地址
    http://alphasun.18en.com/                    http://shakingtoolkit.9126.com/
    DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
      

  2.   

    UP
    我也想知道。不如再调用一下Invalidate()
      

  3.   

    出现很多 AfxMessageBox的提示框 是因为 对话框一出现 edit便失去Focus,而对话框一结束,edit便又 有了Focus,所以就会又出现对话框,它不选择,是因为程序先执行OnFocus(),然后执行 OnLButtonDow(),这样就失去了选择的内容。并且这个选择代码没有必要写,当你按Tab键使Edit具有焦点时,它的内容就会被全部选中
      

  4.   

    还是告诉你吧,如下看一看
    void cmyedit::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    BOOL bfocused=TRUE;//是否原来就有焦点
    if(GetFocus()==this)
    bfocused=TRUE;
    else
    bfocused=FALSE; CEdit::OnLButtonDown(nFlags, point); if(!bfocused)
    SetSel(0,-1);
    }
      

  5.   

    yinsong6(张银松)
    那么如果我想要实现这样的功能,该怎么办呢?
    我本来是想响应CEdit的OnLButtonDown()函数的,但是不知道怎么响应啊!
      

  6.   

    但是怎么响应啊?
    在Dlg主界面中如何响应呢?
      

  7.   

    创建CEdit派生类后,在对话框中为Edit控件添加变量 CMyEdit m_edit; 这样Edit控件的消息就会执行你派生的代码。