MFC程序阻止别的软件隐藏窗口,或拦截WM_SHOWWINDOW消息
网上搜了遍,很少看到有人提起怎么防止MFC程序的窗口被别的软件隐藏(如禁止句柄查看精灵隐藏)。
看到了一些帖,说用hook的,太麻烦了。
说拦截WM_SHOWWINDOW,试过了没有效果。
void CDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{if (!bShow)AfxMessageBox(_T("有程序试图隐藏窗口!"));elseCDialog::OnShowWindow(bShow, nStatus);
}
弹窗执行了,但点击弹窗后程序窗口照样被隐藏。
还有些帖,说拦截WM_WINDOWPOSCHANGED,同样没有效果。
void CDlg::OnWindowPosChanged(WINDOWPOS* lpwndpos)
{if (lpwndpos->flags&SWP_HIDEWINDOW){AfxMessageBox(_T("隐藏窗口!已拒绝!"));lpwndpos->flags &= ~SWP_HIDEWINDOW;}elseCDialog::OnWindowPosChanged(lpwndpos);
}
在弹窗出来之前窗口已经被隐藏了。。。
真正有效的是拦截WM_WINDOWPOSCHANGING,代码如下:
void CDlg::OnWindowPosChanging(WINDOWPOS* lpwndpos)
{if (lpwndpos->flags&SWP_HIDEWINDOW){AfxMessageBox(_T("正在隐藏窗口!已拒绝!"));lpwndpos->flags &= ~SWP_HIDEWINDOW;}CDialog::OnWindowPosChanging(lpwndpos);
}
真正起作用的是“lpwndpos->flags &= ~SWP_HIDEWINDOW”这句,从flags里去掉隐藏窗口的标记。
有兴趣的自己测试。
MFC程序阻止别的软件隐藏窗口,或拦截WM_SHOWWINDOW消息相关推荐
- 基于Dialog的MFC程序在启动时隐藏为托盘程序(四)
这部分说一下如何加menu..如果做小气球.. mfc的menu确是不如C#活着java那么easy.. 首先在rc里添加menu资源..然后在ui界面里先设置一下你的菜单.. 在第(二)部分已经简单 ...
- VC/MFC程序开启关闭和打开自己或其他软件,更改窗口类
一. 关闭自身软件 直接在需要关闭的位置输入 HANDLE hself = GetCurrentProcess(); TerminateProcess(hself, 0); 二.关闭其他软件 流程: ...
- [VC/MFC]一条语句实现程序运行时隐藏窗口
因为受到经济危机的影响,我在 bokee.com 的博客可能随时出现无法访问的情况:因此将2005年到2006年间在 bokee.com 撰写的博客文章全部迁移到 csdn 博客中来,本文正是其中一篇 ...
- 关于MFC程序中隐藏任务栏图标的问题
前几天有个MFC对话框程序,有个隐藏任务栏图标的功能需求,就在网上搜了搜,发现基本上都是这一句: ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);也就是 ...
- 5e怎么绑定一键跳投_想上班摸鱼?分享一款超好用软件,一键隐藏窗口,摸鱼一时爽,一直摸鱼一直爽!...
点击蓝字即可快速关注我,分享好软件~ 平时小林君分享的一般都是非常实用或者比较增加工作效率的软件,今天就不一样了,今天教大家怎么上班摸鱼(误),隐藏电脑窗口,设置一个老板键 今天要介绍的这款软件名叫H ...
- DbgView软件 查看VC++ MFC 程序的打印信息
DbgView软件 查看VC++ MFC 程序的打印信息 一.在写VC++ MFC程序的调制过程中,需要跟踪打印信息,但在MFC中用printf不知道在哪里看打印信息,今天介绍一款软件,可以查看对应的 ...
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...
- 如何让MFC程序关闭按钮失效,也无法右击任务栏关闭窗口来关闭?
如何让MFC程序关闭按钮失效,也无法右击任务栏关闭窗口来关闭,即右键任务栏的关闭窗口失效呢?很简单,有一个小窍门就是:响应IDCANCEL消息,具体实现如下: 首先定义消息映射:ON_BN_CLICK ...
- 在MFC程序中增加控制台窗口
MFC程序中,如果想要输出调试信息,我们一般都是TRACE或者使用LOG文件,都不是很方便,第一个需要我们在调试状态下,第二个也要配置麻烦而且不直观.而使用Console来显示调试信息应该是更好的选择 ...
- C# 实现窗口程序winform像QQ一样靠近桌面边缘自动隐藏窗口
实现原理: 实现这个功能的原理步骤如下: 1.判断窗体程序是否靠近桌面边缘: 2.获取桌面屏幕大小与窗体程序大小: 3.把窗体程序显示在桌面以外隐藏起来,预留部分窗体方便用户拉出程序: 4.判断鼠标是 ...
最新文章
- selenium 定制启动 chrome 的选项
- linux 内核 数据结构 file_operations、file、inode
- Java-Integer源码分析
- jmeter控制器--if控制器
- ansible自动化管理
- Accusoft结构化工具包FormSuite for Structured Forms常见问题解答(二)
- VMware Workstation Pro 无法在Windows 上运行的 解决办法
- 安装python要注意什么_安装python注意事项
- 机器人学--运动学基础概念
- html5鼠标右键事件,js鼠标右键点击事件
- winpe查看不到linux硬盘,winpe不显示硬盘?教你轻松搞定pe下不显示硬盘问题
- 通过qmh启动qt应用
- 操作系统学习笔记十二(基于分页的虚拟存储系统)
- Rust - 常用的三方库集合
- SOS1 Ras GEF蛋白高纯度测定
- Acwing 1191. 家谱树 (topsort
- Qt-------->第六天,Qt高级编程
- Python——组合数据类型的应用_1.英文句子中的词频统计
- HM代码阅读3:AMVP候选填充函数Void TComDataCU::fillMvpCand ()
- 豆瓣电影排行榜下载,main主文件代码(未完善版)