ATL 中 Tabstop无效果问题/无法使下个控件获取到焦点

迷路的指南针 迷路的指南针 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
题主我学习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按键,当我在输入完用户名之后按一下按键光标移动到密码输入框这种效果。
请问应该怎么做呢?



...全文

相关推荐

Win32选项卡控件学习[源码]

本文详细介绍了Win32编程中选项卡控件(TabCtrl)的使用方法,包括控件的创建、选项卡的插入、控件风格样式的设置以及各种消息的处理。文章通过示例代码展示了如何创建TabCtrl控件、插入多个选项卡,并详细说明了TCS_BOTTOM、TCS_BUTTONS等多种控件风格的作用。此外,还介绍了控件消息如TCM_ADJUSTRECT、TCM_DELETEALLITEMS等的使用,以及如何通过WM_NOTIFY消息处理选项卡的切换事件。最后,文章提供了一个完整的示例代码,演示了如何在选项卡切换时显示不同的对话框视图,为Win32开发者提供了实用的参考。

lake5

广东屈臣氏饮料制造项目-全专业-20240508.nwd

广东屈臣氏饮料制造项目_全专业-20240508.nwd

meslog

Python3 if多条件简写技巧

Python3支持极简if条件写法,简化冗余代码。链式比较:原生支持1<x<10,无需写成x>1 and x<10,可读性更强。三元表达式:适用于二分支逻辑,语法 结果A if 条件 else 结果B,适合单行赋值,禁止多层嵌套三元表达式,会大幅降低可读性。逻辑短路:and左侧为False直接终止判断,or左侧为True直接终止判断,可用于空值兜底,比如name = input_name or "匿名用户"。注意不要混用=和==,新手常误将赋值写在if判断内,Python3会直接抛出语法异常。 6thhosp-east.com 3wfuwu.com ajfcw.net www.ahdmhbkj.cn www.aiyouseo.com

2601_97221235

PHP 代码加密工具 源码保护与站点授权

把 PHP 源码加密成不可直接阅读、难以还原的形式:变量名与控制流被打散重写,载荷带完整性自校验,改一个字节就停止运行。提供编码型 / 混淆型 / 重构型 / 底层型 / 虚拟机型五档保护强度,并可叠加按域名与期限的网站注册授权。

穿透云

【配电网智能软开关和储能联合规划】具有源荷不平衡特性的配电网智能软开关和储能联合规划(Matlab代码实现)

【配电网智能软开关和储能联合规划】具有源荷不平衡特性的配电网智能软开关和储能联合规划(Matlab代码实现)内容概要:本文围绕“具有源荷不平衡特性的配电网智能软开关和储能联合规划”展开,提出了一种结合智能软开关(SOP)与储能系统进行联合优化配置的方法,旨在应对配电网中由于分布式能源波动导致的源荷不平衡问题。该研究利用Matlab实现了完整的仿真代码,构建了优化模型,综合考虑了设备投资成本、运行维护费用、网络损耗及电能质量等因素,通过优化算法求解SOP和储能的最佳配置方案,以提升配电网的灵活性、可靠性和经济性。文中强调该模型为顶级EI复现级别,具备较高的学术参考价值和技术实现细节。; 适合人群:从事电力系统规划、智能电网、分布式能源管理及相关领域的科研人员、高校研究生以及电力行业工程师。; 使用场景及目标:① 用于解决含高比例分布式电源的配电网中因出力波动引起的潮流倒送、电压越限等问题;② 为智能软开关与储能系统的协同配置提供量化决策依据,实现电网灵活资源的优化布局。; 阅读建议:此资源以Matlab代码为核心,重在理论模型与工程实践的结合,建议读者在学习时应同步运行代码,深入理解目标函数构建、约束条件设置及优化求解过程,以便更好地掌握其在实际项目中的应用方法。

程序猿鑫
评论 2
收藏 已收藏
分享
返回顶部
迷路的指南针
ATL 3,248 成员 48,530 内容