題主我學習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按鍵,當我在輸入完用戶名之后按一下按鍵游標移動到密碼輸入框這種效果。
請問應該怎么做呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/281552.html
上一篇:CbitMap拷貝影像出錯
