如何使窗口大小不随双击标题栏改变?
窗口大小已经不能改变,但如双击标题栏窗口大小还是会改变,如何使窗口大小不随双击标题栏改变? 问题点数: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




