调整窗口大小问题

ufo_yang 2005-03-11 03:41:00
有一个windows应用程序,对其最小的窗口大小有限制,但可以任意拉大,
这个怎么实现?多谢!
...全文
237 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
adygyad 2005-03-11
  • 打赏
  • 举报
回复
响应WM_GETMINMAXINFO消息,在里面设置窗口的最大和最小尺寸。
dreamy 2005-03-11
  • 打赏
  • 举报
回复
响应WM_GETMINMAXINFO消息,在里面设置窗口的最大和最小尺寸。
pomelowu 2005-03-11
  • 打赏
  • 举报
回复
1 获最小得窗口矩形CRect crWin,屏幕矩形CRect crScrn;记得使用屏幕坐标
2 重载DefWindowProc。我举例说明调整下边框size的做法:
LRESULT CSampleDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
RECT rc; // 计算鼠标活动范围
switch(message)
{
case WM_SIZING:
if (wParam == WMSZ_BOTTOM) //调整下边框
{
rc.top = crWin.bottom;
rc.left = crScrn.left;
rc.right = crScrn.right;
rc.bottom = crScrn.bottom;
ClipCursor(&rc); //限制鼠标移动的上限
break; //注意返回
}
/// other handling
}
return CDialog::DefWindowProc(message, wParam, lParam);
}
ufo_yang 2005-03-11
  • 打赏
  • 举报
回复
我就是这么做的啊。但是界面乱七八糟得:(

代码:
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
RECT clientRect;
GetWindowRect(&clientRect);

if ( cx<810 )
{
cx = 810 ;
}

if ( cy < 590 )
{
cy = 590 ;
}

MoveWindow( clientRect.left, clientRect.top, cx, cy, TRUE );

}
oyljerry 2005-03-11
  • 打赏
  • 举报
回复
消息WM_SIZE
然后在函数里判断窗口大小,限制调整
code8238 2005-03-11
  • 打赏
  • 举报
回复
截获WM_SIZING消息

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧