小弟的对话框上有许多的EDIT控件,同时要响应一个消息 EN_SETFOCUS ,使得EDIT控件得到输入焦点得时候选中所有文本(SetSel())
ON_CONTROL_RANGE宏,我是这样用的:1.先在MESSAGE_MAP加入宏 //}}AFX_MSG_MAP
         ON_CONTROL_RANGE(EN_SETFOCUS,IDC_EDIT1,IDC_EDIT25,OnSetFocusEdit)
END_MESSAGE_MAP()2.消息响应函数
void CMyDlg::OnSetFocusEdit(UINT nID)
{
}但是这个消息响应函数小弟不会写了,因为只有一个 nID 参数,小弟不知道怎样利用 nID 来控制对应的EDIT 控件,以实现SetSel()选中的目的。各位高手救我啊小弟新手上路,没有多少分,还请多多包涵啊

解决方案 »

  1.   

    void CMyDlg::OnSetFocusEdit(UINT nID)
    {
    ((CEdit*)GetDlgItem(nID))->SetSel(...)}
      

  2.   

    void CMyDlg::OnSetFocusEdit(UINT nID)
    {
    ((CEdit*)GetDlgItem(nID))->SetSel(0,-1);}
      

  3.   

    ((CEdit*)GetDlgItem(nID))->SetSel(0, -1);
      

  4.   

    那个传入的nID其实就是你那个EDIT控件的名称的另一个代号.
    在定义了一个CEDIT控件ID为IDC_EDIT1. 这时在资源文件中会自动为这个控件生成一个ID号
    一般定义为#define IDC_EDIT1 333333(对应于IDC_EDIT1的nID) ,所以关于nID对应的控件是与名称对应的,
    至于你的要求,看上面各位大侠~~~