社区
界面
帖子详情
如何设置一个可以resize的对话框的最小尺寸?谢谢
shangke_sks
2004-10-09 10:05:41
偶要做一个可以用鼠标改变大小的对话框,但是对话框尺寸有个最小值。
目前我想到的方法是,在OnSize中检查,当对话框的尺寸小于这个置时,就设置对话框的尺寸为最小值。
这个办法不好,当改变对话框的尺寸小于最小值时,对话框会强烈的闪烁。
所以我想请教各位大虾,是不是有什么方法可以直接设置一个最小值,让系统来控制这个问题。
...全文
406
8
打赏
收藏
如何设置一个可以resize的对话框的最小尺寸?谢谢
偶要做一个可以用鼠标改变大小的对话框,但是对话框尺寸有个最小值。 目前我想到的方法是,在OnSize中检查,当对话框的尺寸小于这个置时,就设置对话框的尺寸为最小值。 这个办法不好,当改变对话框的尺寸小于最小值时,对话框会强烈的闪烁。 所以我想请教各位大虾,是不是有什么方法可以直接设置一个最小值,让系统来控制这个问题。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fool_leave
2004-10-09
打赏
举报
回复
同意楼上,处理WM_SIZING消息,在OnSizing里
void CSizeDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
if(pRect->right-pRect->left<100){
return ;
}
CDialog::OnSizing(fwSide, pRect);
}
DentistryDoctor
2004-10-09
打赏
举报
回复
WM_SIZING,只要小于你允许的尺寸就返回FALSE,否则返回TRUE.
windindance
2004-10-09
打赏
举报
回复
拦截WM_SIZE消息
如果尺寸小于最小值时,直接把尺寸修改为最小值。
fool_leave
2004-10-09
打赏
举报
回复
楼上的方法更好.
如果用OnSizing直接返回是不行,我以前是通过强制改变参数LPRECT的值来实现的.不过要判断fwSide的值,看看它是WMSZ_LEFT还是其他的什么,这样决定是采用pRect->right = pRect->left + 400;还是
pRect->left=pRect->right- 400;
闻缺陷则喜何志丹
2004-10-09
打赏
举报
回复
技术上可行
符合你的要求吗?
如果不明白,你可以
(1),给我发短消息(请附帖子的地址).
(2),根据http://www.vcshare.net上的联系方式与我联系,推荐QQ.
(3),如果问题简单,请在http://www.vcshare.net/bbs上发帖.
如果问题比较复杂,请把代码压成*.rar当附件发在我的论坛上发帖.
同时在www.csdn.net上发帖,并给出在我的论坛的链接.
---------------
压代码前,请先删除debug,release文件夹,及*.opt,*.ncb,*.plg,*.aps.
闻缺陷则喜何志丹
2004-10-09
打赏
举报
回复
ctrl+w 打开类向导
选择最后一个属性页class info
message filters改成window,默认是dialog
否则看不到此消息
闻缺陷则喜何志丹
2004-10-09
打赏
举报
回复
void CHideMainDlgDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
lpMMI->ptMinTrackSize.x = 500 ; //宽
lpMMI->ptMinTrackSize.y = 300 ; //高
CDialog::OnGetMinMaxInfo(lpMMI);
}
ctrl+w 打开类向导
选择最后一个属性页class info
message filters改成window,默认是dialog
shangke_sks
2004-10-09
打赏
举报
回复
谢谢几位的讲解。我试验了一下,发现这样几个问题。
1,不知道在那里添加WM_SIZING消息响应函数,所以只能手动的加了一个。楼上的两位是怎么添加这个函数的?
2,但是发现直接return的话,并不能阻止窗口尺寸改变。也许是我添加这个函数的方式不对?
3,不得已,我手动的改变了CDialog::OnSizing(fwSide, pRect);中Rect参数,达到了预期的效果。
void CTestResizeDlgDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
if( (pRect->right - pRect->left) < 400 )
{
pRect->right = pRect->left + 400;
CDialog::OnSizing(fwSide, pRect);
}
else
CDialog::OnSizing(fwSide, pRect);
}
C#控件大全
(11)MinimizeBox 属性:用来获取或
设置
一个
值,该值指示是否在窗体的标题栏中显示
最小
化按钮。值 为 true时显示
最小
化按钮,值为false时不显示
最小
化按钮。 (12)AcceptButton 属性:该属性用来获取或
设置
一个
值...
Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好
我们按下按钮,会弹出
一个
对话框
,无论如何关闭这个
对话框
,都会回到主窗口。 实现原理: 程序里我们先建立
一个
主工程,作为主界面,然后再建立
一个
对 话框类,将其加入工程中,然后在程序中调用自己新建的
对话框
类...
Excel VBA实用技巧大全 附书源码
01015获取在Excel主窗口中
一个
窗口所能占有的最大高度和宽度 01016获取当前打印机名称 01017获取MicrosoftExcel剩余内存 01018获取MicrosoftExcel的总内存 01019获取计算机被Excel占用的内存 01020改变Excel窗口大小...
mfc+最大
最小
化窗口+控件变化+图片(视频帧)显示在控件上
目的:使所用控件的大小随着
对话框
窗口的最大化和
最小
化进行相应
尺寸
的变化。 思路:比如原来
对话框
大小为a,现在为b,原来控件大小为c,那么现在的控件大小应该为c*b/a;(注意a不能是0)。 方法:通过Windows的...
模态、非模态
对话框
、window.open .
非模态
对话框
则不会强制此种特性,用户可以在当前
对话框
以及其他窗口间进行切换。本文介绍如何使用javascript语言来创建这两种类型的
对话框
、控制其大小和位置、改变其外观以及在
对话框
间的数据传递。 本文的所...
界面
15,979
社区成员
115,897
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章