现象:
-----------
一个窗体上有若干子窗体,并且子窗体之间有部分重叠。点击某个处于底层的窗口窗体(它部分被遮住),它就会跑到最前台来(遮住了其他窗口的一部分)。
==================================问题:
----------
如何禁止这种行为,让所有子窗口保持程序开始的z-order。点击原来被部分遮住的窗体时不让它不跑到前台来。但是窗体又要能响应鼠标单击、移动等消息。所以Disable是不行的。设置WS_EX_TOPMOST也是无效的,它对子窗口没用。难道要用hook才行??
-----------
一个窗体上有若干子窗体,并且子窗体之间有部分重叠。点击某个处于底层的窗口窗体(它部分被遮住),它就会跑到最前台来(遮住了其他窗口的一部分)。
==================================问题:
----------
如何禁止这种行为,让所有子窗口保持程序开始的z-order。点击原来被部分遮住的窗体时不让它不跑到前台来。但是窗体又要能响应鼠标单击、移动等消息。所以Disable是不行的。设置WS_EX_TOPMOST也是无效的,它对子窗口没用。难道要用hook才行??
解决方案 »
- 急急急:保存bmp图片,怎么保存不了呢?老跳出来“对***.bmp的存取被拒绝。”
- 请教大家帮忙看下代码,是哪里出错了
- 这样到底可能吗?
- 发现一个奇怪的问题
- 请大家帮帮我,为何我编写的MCI播放器在win me系统上可以用,而在win xp的系统上却不可以播放了呢?(在线等)
- programming windows第三章HELLOWIN编译错误
- 怎样拦截其他程序的消息
- 要不要翻译DirectX 9 programmer's reference?
- 请教,如何把一个double型的数字(金额)转换成大写的中文货币str,最好有算法???
- “hello,world"编译通不过,求助。
- DLL如何注册成IE浏览器插件???
- VC 调试窗口出来这样一个信息。The thread 0x420 has exited with code 0 (0x0).
Clips child windows relative to each other; that is, when a particular child window receives a paint message, the WS_CLIPSIBLINGS style clips all other overlapped child windows out of the region of the child window to be updated. (If WS_CLIPSIBLINGS is not given and child windows overlap, when you draw within the client area of a child window, it is possible to draw within the client area of a neighboring child window.) For use with the WS_CHILD style only.
在把所有的窗体加入完成后,把所有子窗体的指针加入SubWndList
然后:
POSITION pos;
pos=SubWndList.GetHeadPostion()
CWnd *pWnd=SubWndList.GetNextPostion(pos);
pWnd->SetWindowPos(SubWndList.GetNextPostion(pos),NULL,NULL,NULL,NULL,NULL);来将下一窗体的zorder放在之前
顺序由自己安排把它们组成一个函数,在需要时调用