void CDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
CDialog::OnSizing(fwSide, pRect);
// TODO: Add your message handler code here
//限定窗体最小的大小
if (pRect->right - pRect->left < 656 ){
pRect->right = pRect->left + 656 ;
}
if (pRect->bottom - pRect->top < 446 ){
pRect->bottom = pRect->top + 446 ;
}
}程序想实现控制可resize窗体的最小大小。上面的程序如果从窗体右下方变动大小,不存在问题;但是如果从上、左上、左边变动窗体大小的话,达到极限时就不对了,窗体会根据鼠标的移动而移动。
这个该怎么改动?
{
CDialog::OnSizing(fwSide, pRect);
// TODO: Add your message handler code here
//限定窗体最小的大小
if (pRect->right - pRect->left < 656 ){
pRect->right = pRect->left + 656 ;
}
if (pRect->bottom - pRect->top < 446 ){
pRect->bottom = pRect->top + 446 ;
}
}程序想实现控制可resize窗体的最小大小。上面的程序如果从窗体右下方变动大小,不存在问题;但是如果从上、左上、左边变动窗体大小的话,达到极限时就不对了,窗体会根据鼠标的移动而移动。
这个该怎么改动?
解决方案 »
- vc 编程设置本机ip地址(不重启电脑)?
- 界面上BUTTON太多,引起EraseBackGround刷新过多,有没有解决办法
- Format问题阿,为什么要加双引号
- 谁有能在Win98下获取网卡地址的程序啊(主要是获取Subnet 和 Gateway)?
- 有关网络编程的几个问题
- vc能否静态调用(需要lib和dll文件)C++ BUILDER 写的dll库,请高手给个确定的说法
- 请给一点使用 VC 开发数据库系统的建议
- 关于MSDN和VC的help
- 我想找篇候老师写的文章,请哪位知道的大哥告知,谢谢!
- ???关于《金山词霸》的一个问题,如何实现单词的捕捉?
- 请教一个问题
- 为什么在CDialogBar控制的对话框里放的按钮在没有MainFrame响应消息时是灰色的?
if (pRect->right - pRect->left < 656 )
{
pRect->left=10;
pRect->right = pRect->left + 656 ;
}
if (pRect->bottom - pRect->top < 446 ){
pRect->top=10;
pRect->bottom = pRect->top + 446 ;
}
如果一旦触发if条件窗体会一下跳跃到左面,虽然能够实现对大小的控制但是窗体会乱跳啊
产生的原因:
从做或者上移动时,当达到临界值时,就会始终控制窗体的大小,如果移动了x,那窗体的右面要加上x,给人的错觉就是整个窗体在向右动。而从左面当然不会出现这种情况,因为移动x后,右面要加x,所以刚好又还原。
帮助里说这个指明了窗体的4边加4角
有人知道4边4角分别对应哪一个数字啊?
如果知道了从哪一边进行的size就可以控制了
然后分别根据鼠标移动哪个边的条件计算
让没有移动的边保持不动,这样就能达到你要的目的