我想在有一个登陆框,里面有用户名和密码,登陆,取消几个控件。之间可以用tab键进行切换。
我想的是:当焦点在用户名和密码的输入框的时候,如果让用户觉的当前按下enter的时候,响应的是login按钮。就是login有边框。不理解的看看QQ的登陆

解决方案 »

  1.   

    处理窗体的OnKeyPress事件  Enter->Tab
      

  2.   

    捕捉vk_enter消息后执行 login 函数啊, 设置login按钮为default 按钮, tab索引是所有按钮的第一个.
    ok , 结贴给分.
      

  3.   

    把登陆按钮的ID设置为,IDOK,
    编辑框框Want Return属性为FALSE.就可以了
      

  4.   

    在属性里把登录按钮的default button属性设置成true
      

  5.   

    另外在对话框启动的时候把焦点设置到loginbutton上
      

  6.   

    设置defid,是可以让当焦点在用户名,密码那的时候,显示“按回车就相当于点了登陆”。
    但是,当我用tab键在这几个控件间切换的时候,比如当tab到取消登陆那按钮时,登陆显示还是被选中状态~~~~
      

  7.   


    设置defid,是可以让当焦点在用户名,密码那的时候,显示“按回车就相当于点了登陆”。 
    但是,当我用tab键在这几个控件间切换的时候,比如当tab到取消登陆那按钮时,登陆显示还是被选中状态~~~~ 不行~~
      

  8.   

    当tab在取消上的时候,登陆按钮状态还是选中状态,一直都选中~~~ 汗,那样的话就。 让用户觉的登陆怎么总是选中,请看看QQ的登陆~~~
      

  9.   

    这么简单,你用SetFocus把焦点定在输入框中,按“登录”按钮在资源编辑器中设置为缺省按钮不就OK了
      

  10.   

    Login按钮的default button属性设置成true不就好了
      

  11.   

    我提供一种比较笨一点的方法:在你的程序里面重写一个消息:WM_CHAR
    收到消息时,判断
    1>当前焦点是否在两个 EDIT控件上面,
    2>当前输入的CHAR是不是RETURN,
    同时满足的时候就调用你LOGIN的响应函数
    代码如下:
    void CXXXDLG::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
    {
    // TODO: Add your message handler code here and/or call default if(VK_RETURN == nChar)
    {
    CWnd* wndEdit = GetDlgItem(IDC_EDIT1);
    if(IsWindow(wndEdit->GetSafeHwnd()))
    {
    if(wndEdit->GetSafeHwnd() == GetFocus()->GetSafeHwnd())
    {
                                  // CALL LOGIN FUNCTION.
    }
    }
    }
    CDialog::OnChar(nChar, nRepCnt, nFlags);
    }未验证过,大概思路是这样的。你试一下。
      

  12.   

    不好意思,函数写错了。OnChar函数可能触发不了。因为窗口的消息会发送给带有焦点的窗口。
    要处理这个消息就要在有焦点的窗口处理之前拦截。这时要处理的函数应该是PreTranslateMessage.BOOL xxxdlg::PreTranslateMessage(MSG* pMsg) 
    {
     if (WM_CHAR == pMsg->message && HIBYTE(GetKeyState(VK_RETURN))) 
     {
         //call you function.
      }
     return yyydlg::PreTranslateMessage(pMsg);

      

  13.   

    控件的登录ID用这个IDOK,也就是系统生成的那个ok按钮,就可以了!当然要default button 要选中当在该对话框按回车就会login退出!
    如果不想退出,可以在
    void CTestDlg::OnOK() 函数中判断一下,来确定是不是要这样做
    当tab到取消按钮的时候,取消按钮就有虚线边框,然后无论再点空格还是回车键都可以正常退出,我刚写完测试!
      

  14.   

    恩 可以了,其实,上面一些朋友说的是可以的,但是,主要是我使用了一个:
    http://www.codeproject.com/KB/buttons/cxskinbutton.aspx
    中的继承自CBUTTON的类,想实现对button背景图片样式什么的改变。
    这样导致在default id的时候,没有这个效果。
    哪位朋友有好的EX_CBUTTON类?可以实现换肤,并且上面提到的问题不会出现?