IsDialogMessage

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

 

转载自: http://fengqing888.blog.163.com/blog/static/33011416201066112144250/

 

 IsDialogMessage并不是象它的名字那样用来检查对话框消息的,而是用来解释或转换消
息的,更贴切的名字应该是TranslateDialogMessage IsDialogMessage解释非模态对话框消息。

 你可以将它看成是对话框中专门内建的解释消息的加速键表。实际上,IsDialogMessage
不是对话框专用的-你可以在任何有控制的窗口中使用它来实现与在对话框中一样的键盘行为。
但是因为它的第一个参数是对话框的HWND,所以实际上你必须应用中的每一个非模态对话框都调
用这个函数. 消息是给对话框窗口

 

《Windows API每日一练》10.2 非模态对话框 如果查找对话框是一个模态对话框,用户将不得不从菜单中选择査找,输入想找的字符串,结束对话框以返回到文档,然后重复整个过程査找同一字符串的另一实例。如果消息是针对非模态对话框的,IsDialogMessage就会将其发送到对话框窗口过程并返回 TRUE(非零),否则返回FALSE(0)。■第三个差异:与模态对话框和消息框的消息不同的是,非模态对话框的消息要进入你 程序的消息队列。如上图所示,模态对话框的消息循环使用Windows系统内置的消息循环,包含一个自定义对话框窗口过程和系统内建的默认对话框窗口过程。 阅读详情

相关推荐

MFC-对话框程序核心-IsDialogMessage函数-MSG 消息结构-GetMessage函数-DispatchMessage函数

  如果需要Hook窗口消息,这些函数必须有一定程序的了解。  函数功能:该函数决定一个消息是否指定给指定的对话框,如果是,则处理消息。    函数原型:BOOL IsDialogMessage(HWND hDlg,LPMSG IpMsg);   hDlg:标识对话框。   IpMsg:指向一个含有将被检测的消息的MSG结构。   返回值:如果消息被处理,则返回值为非零值;如果消息没有被处理,则返回值为零。   检测该消息是否是对应句柄的对话框消息,如果是,则交个user32.dll模块对齐进行处理,实际上

插件开发 899

针对指定进程进行Hook

前言 昨天,写了一个Demo, 对指定进程进行Hook, 就是SetWindowsHookEx参数不同. 看msdn+自己做试验,试试就能写出来.demo中假定要Hook键盘和鼠标消息, 用DebugView打印出来发生的键盘和鼠标消息. 打印鼠标消息时, 要将鼠标消息的值,转成字符串. 因为是Unicode版, 查了半天资料,也不知道怎么写这个宏(将鼠标消息值,转成对应的Unicode字

博客标题不能为空 3706

非模态对话框的消息处理

模态对话框的处理方法是dlg.DoModel()==IDOK ....但是模态对话框的消息处理则不然,需要另外注册消息处理事件今天看到一本书中这么处理,做个记录://向winproc中注册处理事件static const UINT nMyMsg = ::RegisterWindowMessage(FINDMSGSTRING);//手动添加消息映射ON_COMMAND(ID_USER

pxxx123的专栏 3751

Windows消息的转换

Windows消息的转换

332

isdialogmessage

      函数功能:该函数决定一个消息是否指定给指定的对话框,如果是,则处理消息。     函数原型:BOOL IsDialogMessage(HWND hDlg,LPMSG IpMsg);     参数: hDlg:标识对话框。 IpMsg:指向一个含有将被检测的消息的MSG结构。返回值:如果消息被处理,则返回值为非零值;如果消息没有被处理,则返回值为零。备注:尽管IsDialogMessag

574

API IsDialogMessage Mrs. Shelbd1

 Welcome to my blog!Mrs.(Windows API Declare Function IsDialogMessage Lib "user32" Alias "IsDialogMessageA" (ByVal hDlg As Long, lpMsg As MSG) As Long) Shelby was a woman of high class, both intellect

huihuang1414的专栏 491

活动窗口(Active),焦点窗口(Focus),IsDialogMessage

任何一个时候,我们的Windows桌面上总有一个最前台的窗口,其实说简单的,就是标题栏变成深蓝色的那个窗口,仅此一个,这个窗口就是前景窗口(Foreground Window),其他窗口就是后台窗口(Background Window)。那创建前景窗口的线程就是前景线程(Fore

ljfth的专栏 6313

让非模态对话框处理TAB按键事件的三种方法

让非模态对话框处理TAB按键事件的三种方法作者:Oscar Cai时间:2005-9-17 20:17对话框(Dialog)分为模态对话框和非模态对话框(Modeless Dialog)。非模态对话框不能处理TAB键、快捷键等按键事件,也就是说用户不能在非模态对话框中通过按TAB键切换各控件之间的焦点(Focus)。但这也不是没有解决办法的。方法一在MSDN中,让非模态对话框处理TAB按键事件的经

BlackMonkey的专栏 4325

[WTL/Win32]_[初级]_[为何编辑框按TAB键不能切换焦点]

1. 在开发`WTL/Win32`的程序时,会遇到需要输入账号密码的界面开发,当输入账户后,想快速切换到密码,按`TAB`键没切换,光标还是停留在账号编辑框。这是怎么回事?

小白 489

ATL Wtl 中 用通用对话框Tab ret esc 失效的问题

  在 PreTranslateMessage 中加入 if (::IsDialogMessage(pFindDialog->m_hWnd, pMsg))   {     bHandled = TRUE;     return 0;   }  

无限天空 1236

通用GUI编程技术——Win32 原生编程实战(九)——非模态对话框详解

本文详细介绍了Win32非模态对话框的编程实现方法。文章首先通过Photoshop等软件的案例说明了非模态对话框的必要性,然后重点讲解了CreateDialog函数与模态对话框的关键区别。作者逐步演示了非模态对话框的创建流程,特别强调了消息循环中IsDialogMessage函数的重要作用,解决了键盘导航问题。文章还提供了处理多个对话框的方法,并指出非模态对话框必须使用DestroyWindow而非EndDialog来销毁。全文通过清晰的代码示例和对比表格,帮助开发者掌握非模态对话框的核心实现技术。

charlie114514191的博客 355

Windows SDK 非模态对话框的消息处理

  Windows SDK 非模态对话框的消息处理 VCKBASE 在SDK中使用非模态对话框时,主循环中必须插入下列代码:while(GetMessage(&msg,NULL,0,0) { if(!IsDialogMessage(hdlg,&msg){ TranslateMessa

lionzl的专栏 876

MFC做控件弄得我苦不堪言!(我亲身经历的问题及解决办法)

        由于我没有系统的学过ATL,而公司做控件的地方又很多,为了保险起见,我还是选择了使用MFC来做控件,在这过程中我发现了MFC的好多奇怪的问题,在这里列出来,大家可以讨论一下。        一:MFC不能做WEB服务端控件        这个我是听一老外说的,我具体试了一下,在ASP中用CreateObject的时候,的确失败,不知道大家有没有用MFC成功做过WEB服务端控件的

yang79tao的专栏 6884

对话框上添加toolbar,快捷键就不能用了,处理办法

按钮上的快捷键,TAB键,都没有效果了。气死了PRB:   Modeless   Dialog   Box   in   a   DLL   Does   Not   Process   TAB   Key   (233263)     http://support.microsoft.com/default.aspx?kbid=233263     SYMPTOMS     When  

yqxx的专栏 1187

对话框处理TAB按键事件的三种方法

对话框(Dialog)分为模态对话框和非模态对话框(Modeless Dialog)。非模态对话框不能处理TAB键、快捷键等按键事件,也就是说用户不能在非模态对话框中通过按TAB键切换各控件之间的焦点(Focus)。但这也不是没有解决办法的。方法一在MSDN中,让非模态对话框处理TAB按键事件的经典代码如下:HINSTANCE hinst;HWND hwndMain;HWND hw

Mr.Out的专栏 1572

MFC技术系列(三)--对话框(2)

 接上节, 对话框(一)1.1           对话框的创建对话框和普通窗体最大的区别在于它使用了资源来描述其界面特征。这里的资源编译后被存放在了exe或者dll的“某个位置”,类似的资源还有许多,比如:Icon, Menu, Bitmap, Accelerator, String等。这些资源都有自己的标识,对话框资源的标识为RT_DIALOG。通过下面的方法,可以在编译后的模块中获得

redoc_li的专栏 2581

Win32API学习笔记第七章(二)

Win32API学习笔记第七章(二)

KinoluKaslana的学习笔记 526
上一篇: VC++MFC 窗口最大化、最小化的实现!
下一篇: Visual Assist X 快捷键
YL_WH
博客等级 码龄18年 42粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值