自己用SDK方式做了个窗口程序,想处理一下界面,于是处理了WM_NCACTIVATE消息,结果这个窗口的父窗口再也不能获得焦点

Ians_Huyu 2014-09-13 09:58:53
这个问题困扰我好一阵子了,是自己想做个小框架,然后就响应WM_NCACTIVE消息,看网上说返回TRUE是防止系统继续重绘,于是我返回TRUE,当这个窗口父窗口为NULL的时候,一切正常,当这个窗口有父窗口的时候,无论这个对话框是模态还是非模态的,都不能获取焦点,请问各位大神,有没有知道该如何正确处理WM_NCACTIVE消息,防止系统重绘,Windows7系统,多谢了!!
...全文
734 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
anotheryia 2017-02-11
  • 打赏
  • 举报
回复
或許這個有用? http://blog.csdn.net/commandos/article/details/1904558
阿呆_ 2014-09-13
  • 打赏
  • 举报
回复
WM_NCACTIVATE返回值只是告诉发送WM_NCACTIVATE的系统过程是不是继续它的流程,比如切换活动窗口。具体画标题栏和图标是在DefWindowProc中实现的。因此只要不把消息传递给DefWindowProc标题栏和图标部分就不会重画。但是在边框发生变化时--比如移动窗口,在WM_NCPAINT中还是会重画的,而且是错误的状态,因为你没有将WM_NCACTIVATE传给DefWindowProc让它改变内部记录的状态--子窗口开始状态都是失活的,所以也许你看到的并不是不能获取焦点,而是窗口已经获取了焦点但是显示的仍是失活状态。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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