如何禁止对话框程序被激活

cwueii 2009-04-18 03:30:48
我有个对话框,上面有个浏览控件,打开的页面包含定时执行window.focus()的脚本,导致此对话框不断被激活跳出来,我尝试处理WM_ACTIVATE消息,一旦本对话框被激活就激活前个进程。
void CmyDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
if( nState==WA_ACTIVE )
{
// 得到焦点则激活前个窗口
}
else
{
// 失去焦点
}
CDialog::OnActivate(nState, pWndOther, bMinimized);
}

但还是总先闪出激活的对话框再执行上面回到正工作中的窗口,还是很干扰,请教如何无痕迹的阻止对话框获得焦点??最好有代码参考
...全文
70 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwueii 2009-04-18
  • 打赏
  • 举报
回复
如何在WndProc中拦截丢弃WM_ACTIVATE,放在这里不知是否管用,直接
if( message == WM_ACTIVATE )
{
return 1;
}
无用,丢弃不了
插入激活前个窗口的代码,一样是要先闪一闪对话框
oyljerry 2009-04-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cwueii 的回复:]
试了试好象WM_ACTIVATE消息是直接Send给WindowProc的,并不会经过PreTranslateMessage ,有什么办法??象一些多窗口浏览器就屏蔽的很好,网页里的脚本不会干扰程序窗口,不知怎么弄的
[/Quote]
那你处理WndProc函数中来处理WM_ACTIVATE
etz2008 2009-04-18
  • 打赏
  • 举报
回复
帮顶一下
www.xizi123.cn
cwueii 2009-04-18
  • 打赏
  • 举报
回复
试了试好象WM_ACTIVATE消息是直接Send给WindowProc的,并不会经过PreTranslateMessage ,有什么办法??象一些多窗口浏览器就屏蔽的很好,网页里的脚本不会干扰程序窗口,不知怎么弄的
tian_yang_jian 2009-04-18
  • 打赏
  • 举报
回复
没有弄过,帮你顶一下吧
fox000002 2009-04-18
  • 打赏
  • 举报
回复
在 PreTranslateMessage 处理,进行消息过滤

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧