CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

修改窗口的属性:去掉WM_SYSMENU属性,但sysmenu还出现!

楼主ad()2000-06-13 15:04:00 在 VC/MFC / 基础类 提问

我修改子框架窗口的属性,使其不显示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

相关问题

  • 如何去掉identity属性?
  • 如何去掉EDITBOX的ReadOnly属性?
  • 如何去掉CEDIT的 WS_BORDER 属性?
  • 去掉自增长属性的尝试
  • 如何用SQL去掉identity属性!
  • MDIForm问题:如何去掉ChildForm的透明属性?
  • 如何去掉属性页上的“应用”按钮?
  • 如何把任务栏总是最前的属性去掉??
  • 如何去掉属性页的确定,取消按钮
  • 在vb中怎么去掉textbox的绑定属性?

关键词

  • 属性
  • 框架
  • 映射
  • 修改
  • 消息
  • sysmenu
  • pframe
  • onnchittest
  • 子框架
  • swp

得分解答快速导航

  • 帖主:ad
  • hyzx2000
  • hyzx2000

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo