环境:vs2005
语言:c++
问题:怎么在某个文本编辑框设置焦点?

解决方案 »

  1.   

    在什么地方setfocus()我设置的setfocus()无效。谁可以发个简单示例不?
      

  2.   

    你是不是在OnInitDialog里面setfocus?
      

  3.   

    我是在OnInitDialog里设置的
    部分代码如下:
    BOOL CEmailRegDlg::OnInitDialog()
    {
    CDialog::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    CString strAboutMenu;
    strAboutMenu.LoadString(IDS_ABOUTBOX);
    if (!strAboutMenu.IsEmpty())
    {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
    } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    //  执行此操作
    SetIcon(m_hIcon, TRUE); // 设置大图标
    SetIcon(m_hIcon, FALSE); // 设置小图标
    mEmailSufix.AddString(_T("126.com"));
    mEmailSufix.AddString(_T("163.com"));
    mEmailSufix.AddString(_T("tom.com"));
    mEmailSufix.SelectString(0,_T("126.com"));
    m_EmailName.SetFocus();

    ShowWindow(SW_SHOWNORMAL); // TODO: 在此添加额外的初始化代码 return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
    }
      

  4.   

    看到return TRUE; 后面那句注释了吗?改成return FALSE; 你的程序就达到目的了。
      

  5.   

    GotoDlgCtrl((CEdit*)GetDlgItem(IDC_EDIT1))
      

  6.   

    改为FALSE,焦点设置成功!谢谢楼上的几位。