修改窗口的属性:去掉WM_SYSMENU属性,但sysmenu还出现!
我修改子框架窗口的属性,使其不显示sysmenu,但不行,请看:
CMDIChildWnd* pFrame = MDIGetActive();
while(pFrame != NULL){
pFrame->ModifyStyle(WS_SYSMENU and WS_CAPTION, 0, SWP_NOSIZE and SWP_NOMOVE and SWP_NOZORDER and SWP_NOACTIVATE);
pFrame = (CMDIChildWnd* )pFrame->GetNextWindow();
}
当然可以在子框架创建时去掉其中的WM_SYSMENU属性,即从一开始子框架就没有SYSMENU,但我要的是在子框架创建后修改其属性,因为要不要SYSMENU是程序所处的状态决定的,切换状态时子框架可能已经打开,总不能对用户说:“你把子窗口关闭,再打开。”
问题点数:50、回复次数:4Top
1 楼ad()回复于 2000-06-14 09:31:00 得分 0
这个问题与全屏显示方式有关,希望有人关注!Top
2 楼hyzx2000(hy)回复于 2000-06-14 09:43:00 得分 25
增加子框架窗口的消息映射OnNcHitTest(如果在消息映射列表中找不到WM_NCHITTEST,可将MessageFilter设置为generic Window),将代码改为:
if(CChildFrame::OnNcHitTest(point)==HTSYSMENU)
return HTNOWHERE;Top
3 楼hyzx2000(hy)回复于 2000-06-14 09:43:00 得分 25
增加子框架窗口的消息映射OnNcHitTest(如果在消息映射列表中找不到WM_NCHITTEST,可将MessageFilter设置为generic Window),将代码改为:
if(CChildFrame::OnNcHitTest(point)==HTSYSMENU)
return HTNOWHERE;Top
4 楼ad()回复于 2000-06-14 10:49:00 得分 0
hyzx2000:
不是用鼠标拉出sysmenu,而是按了Alt键后在按“下”键。而且此问题只在窗口最大化时。Top




