题主我学习ATL开发插件时发现Tab键切换焦点无效?

应该不复杂,没有加任何逻辑代码在里面,在项目的rc文件中
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_WEBLOGIN DIALOGEX 0, 0, 320, 163
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE | WS_SYSMENU
FONT 9, "MS Shell Dlg", 0, 0, 0x0
BEGIN
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,35,305,1
RTEXT "用户名称",IDC_STATIC,68,48,57,12,SS_CENTERIMAGE | WS_TABSTOP
RTEXT "用户密码",IDC_STATIC,68,60,57,12,SS_CENTERIMAGE | WS_TABSTOP
EDITTEXT IDC_EDIT1,132,48,86,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT2,132,60,86,12,ES_PASSWORD | ES_AUTOHSCROLL
PUSHBUTTON "登录",IDC_BUTTON1,167,78,50,14
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,114,305,1
RTEXT "选择语言",IDC_STATIC,144,139,57,12,SS_CENTERIMAGE
COMBOBOX IDC_COMBO1,207,139,93,54,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
////////////////////////////////////////////////////////////////////////////
主界面代码
#pragma once
#include "../resource.h" // 主符号
#include <atlhost.h>
using namespace ATL;
// CWebLogin
class CWebLogin :
public CAxDialogImpl<CWebLogin>
{
public:
CWebLogin()
{
}
~CWebLogin()
{
}
enum { IDD = IDD_WEBLOGIN };
BEGIN_MSG_MAP(CWebLogin)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
CHAIN_MSG_MAP(CAxDialogImpl<CWebLogin>)
END_MSG_MAP()
// 处理程序原型:
// LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
// LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
// LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
CAxDialogImpl<CWebLogin>::OnInitDialog(uMsg, wParam, lParam, bHandled);
bHandled = TRUE;
return 1; // 使系统设置焦点
}
virtual BOOL PreTranslateMessage(MSG * pMsg)
{
::OutputDebugString(L"111111");
return FALSE;
};
};
我本来打算在PreTranslateMessage中拦截消息的,但是打断点在PreTranslateMessage,貌似都没有在这里面执行。
现在我的问题就是,我想通过Tab按键或者Enter按键,当我在输入完用户名之后按一下按键光标移动到密码输入框这种效果。
请问应该怎么做呢?