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

如何使窗口大小不随双击标题栏改变?

楼主lamalanjing(只是一片云)2002-08-31 12:47:24 在 VC/MFC / 基础类 提问

窗口大小已经不能改变,但如双击标题栏窗口大小还是会改变,如何使窗口大小不随双击标题栏改变? 问题点数:5、回复次数:16Top

1 楼joke100(咱们去SLEEP吧...)回复于 2002-08-31 13:00:55 得分 0

 
  让窗口变成固定大小的。  
  pWnd->ModifyStyle(WS_THICHFRAME,   WS_BORDER);  
   
  即关键把WS_THICHFRAME风格去掉,你的窗口就是固定大小的了Top

2 楼joke100(咱们去SLEEP吧...)回复于 2002-08-31 13:01:18 得分 0

 
  还可以把窗口最大化按钮屏蔽掉Top

3 楼baihecheng(百合)回复于 2002-08-31 13:11:13 得分 0

在双击标题栏时拦截WM_SIZE的消息,窗口过程不要处理此消息Top

4 楼sh210(.....)回复于 2002-08-31 13:14:40 得分 0

让窗口变成固定大小的。  
  pWnd->ModifyStyle(WS_THICHFRAME,   WS_BORDER)  
  当然,也可以拦截wm_size消息Top

5 楼andy_lau(天行键,君子当自强不息!)回复于 2002-08-31 14:26:44 得分 1

在程序初始化过程函数中加入  
  this->ModifyStyle(WS_THICHFRAME,   WS_BORDER)  
  或在view的初始化过程中加入  
  (::AfxGetMainWnd())->ModifyStyle(WS_THICHFRAME,   WS_BORDER)  
  或重载PreWindow...  
  更改窗口的格式cs|=WS_THICHFRAME;  
  然后注册窗口类即可。  
  当然拦截WM_SIZE的消息,在里面设置窗口的大小为固定的大小即可  
   
   
  Top

6 楼andy_lau(天行键,君子当自强不息!)回复于 2002-08-31 14:28:18 得分 0

改为:更改窗口的格式cs&=WS_THICHFRAME;  
  Top

7 楼heilong()回复于 2002-08-31 16:14:30 得分 0

好象可以自己处理nc_click事件吧?Top

8 楼lamalanjing(只是一片云)回复于 2002-08-31 22:29:25 得分 0

以上方法都试过,不太行,请问如何在双击标题栏时拦截WM_SIZE的消息,窗口过程不要处理此消息。  
  nc_click事件在哪里?  
  Top

9 楼dskra(绿青虫)回复于 2002-08-31 22:54:24 得分 2

你试试这个,如果点标题栏,把消息改为客户区  
  在OnNcHitTest(Cpoint   point)  
  UINT   nHitTest=CDialog::OnNcHitTest(point);  
  return   (nHitTest==HTCAPTION)?HTCLIENT;nHitTest;Top

10 楼lamalanjing(只是一片云)回复于 2002-09-01 08:46:01 得分 0

在什么地方怎样判断用户   双击了标题栏,OnNcHitTest(Cpoint   point)又在什么地方加?Top

11 楼llm308(*软件民工*)回复于 2002-09-01 09:07:29 得分 0

gzTop

12 楼dskra(绿青虫)回复于 2002-09-01 10:37:58 得分 0

wm_nchittest是鼠标点机的消息  
  nHittest是他的返回直,看他是在标题还是客户区  
  添加消息消息过滤选window   消息是上面的Top

13 楼lamalanjing(只是一片云)回复于 2002-09-01 19:11:37 得分 0

UINT   nHitTest=CDialog::OnNcHitTest(point);  
  这句话回产生错误。  
  error   C2248:   'OnNcHitTest'   :   cannot   access   protected   member   declared   in   class   'CWnd'。Top

14 楼JennyVenus()回复于 2002-09-01 19:32:30 得分 0

重载OnSysCommand函数Top

15 楼Hankuu(百步笑五十步)回复于 2002-09-01 19:41:02 得分 1

去掉最大化和最小化按钮就可以了Top

16 楼ColderRain(一切尽在不言中)回复于 2002-09-01 19:44:31 得分 1

拦截非客户区(标题栏)双击消息.  
  也就是   WM_NCLBUTTONDBLCK消息.     注释掉处理函数里的所有内容.Top

相关问题

  • 急急急!!!如何使窗体大小不能通过双击窗口标题栏来改变???
  • 怎样改变标题栏的大小?
  • 关于双击标题栏
  • 急!怎么改变标题栏的高度及字体大小?
  • 怎样改变对话框标题栏的大小
  • SendMessage 如何改变无标题栏窗体大小?
  • 如何避免当双击MDIForm窗体的标题栏时窗体恢复原大小
  • 十万火急,请问怎样可以改变无标题栏窗体大小?????????
  • 如何创建一个可以改变大小的无标题栏的窗体?
  • 高手:请问如何实现改变无标题栏的窗口大小!!!!!!!!!!!!!!!

关键词

  • 消息
  • ws
  • 客户
  • 标题栏
  • thichframe
  • 双击
  • onnchittest
  • 大小
  • nhittest
  • 拦截

得分解答快速导航

  • 帖主:lamalanjing
  • andy_lau
  • dskra
  • Hankuu
  • ColderRain

相关链接

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

广告也精彩

反馈

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