📄 subject_36295.htm
字号:
<p>
序号:36295 发表者:凉风有讯 发表日期:2003-04-14 05:48:46
<br>主题:利用菜单动态实现窗口大小的固定和伸缩,该怎么办?望指点。
<br>内容:我想通过菜单来动态实现窗口大小的固定和自由伸缩,那该怎么办?就是在菜单里有“固定”和“解除固定”两个菜单选项,分别实现窗口大小的固定和自由伸缩。谢谢高手指点!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:michael 回复日期:2003-04-14 09:59:32
<br>内容:给你一个例子,一开始,主框架不能动,通过调用MODIFY()可以让主框架大小改变,主要是使用CWnd::ModifyStyle函数,如还不会请查MSDN.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凉风有讯 回复日期:2003-04-14 12:24:11
<br>内容:mic_lee2000,谢谢你及时的指点。但我还有点问题。用你的例子我调试了一下,在使用菜单modifystyle后的确是可以实现固定到自由的改变,但是由固定改为自由伸缩后就再改不回固定了。是不是没做完,要实现自由到固定还需要一个菜单吗?我想请你稍微解释一下ModifyStyle(0,WS_THICKFRAME,0)括号里参数的意思。万分感激!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:wowow 回复日期:2003-04-15 17:20:44
<br>内容:可以这样做(假设你的窗口指针为*pWnd):<BR>DWORD dwStyle = GetWindowLong(pWnd->GetSafeHwnd(), GWL_STYLE);<BR>dwStyle |= WS_SIZEBOX; // 解除固定<BR>dwStyle &= ~WS_SIZEBOX; // 固定<BR>SetWindowLong(pWnd->GetSafeHwnd(), GWL_STYLE, dwStyle);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凉风有讯 回复日期:2003-04-16 07:40:43
<br>内容:to wowow:<BR>感谢你的指点,但是我不知道该如何把这些代码和菜单关联起来。而且我也没找到我的窗口的指针。这个指针是在什么地方创建的?我是个新手、菜鸟,还请你多多指点。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:wowow 回复日期:2003-04-16 08:55:28
<br>内容:在你的窗口中,窗口指针就是this,pWnd可以用this代替。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:michael 回复日期:2003-04-16 10:17:56
<br>内容: 对不起昨天我的网络有问题,其实,要实现你所说的功能主要是通过射定窗口属性实现的。CWnd::ModifyStyle函数就是用来射定窗口属性的。WS_THICKFRAME是你需要功能的对应属性。CWnd::ModifyStyle前一个参数是要删除的属性,后一个参数是要添加的属性。<BR><BR>想变回去只要把WS_THICKFRAME属性删除掉就行。ModifyStyle(WS_THICKFRAME,0,0)。<BR><BR>别忘给分哦。<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凉风有讯 回复日期:2003-04-16 18:56:32
<br>内容:michael,非常感谢你的指点。我明白了。开始我用另外一种方法实现这个功能。就是设定最大和最小值相等,使得无法改变框架。但是这种方法有一个致命的缺点,就是不能任意大小的固定。当从自由缩放恢复到锁定的时候,窗口的大小一定又回到初始设定的大小了。现在经你的指点实现起来就完美了!谢谢!<BR>wowow,也很感谢你的指点,只是你的方法在理解上要比较复杂点。我理解起来暂时还有点困难。还是很感谢你的指点!谢谢!希望还有机会向你学习。:)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -