关于对话框的onsize调整问题

redjuly 2005-10-25 09:43:55
忘单文档界面程序中添加了一个对话框
相应对话框的wm_size的onsize 函数
现在要求的是:左右,上下拖动对话框改变大小
要求必须移动50个Pixel才改变对话框大小
即,如果某一次拖动小于 50 pixel,则对话框大小不改变
当该次拖动大于50 pixel 的时候,改变对话框大小 50pixel
然后重新开始计数

这个该怎么做呢?
多谢!!
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
koko1998 2005-10-26
  • 打赏
  • 举报
回复
重载WM_SIZING消息处理
redjuly 2005-10-26
  • 打赏
  • 举报
回复
的确更改 wm_sizing
在网上求了一个源代码,需要的可以参考一下!

#define STEP (int)20
void CDialogsDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
CDialog::OnSizing(fwSide, pRect);

CRect rc = pRect;
if ( abs(rc.Width() - m_sizeLast.cx) >= STEP )
{
m_sizeLast.cx = rc.Width();
}
else
{
rc.right = rc.left + m_sizeLast.cx;
pRect->left = rc.left;
pRect->right = rc.right;
}

if ( abs(rc.Height() - m_sizeLast.cy) >= STEP )
{
m_sizeLast.cy = rc.Height();
}
else
{
rc.bottom = rc.top + m_sizeLast.cy;
pRect->top = rc.top;
pRect->bottom = rc.bottom;
}
}
goodboyws 2005-10-25
  • 打赏
  • 举报
回复
应该是WM_SIZING消息吧
binjuny 2005-10-25
  • 打赏
  • 举报
回复
同意楼上的,
主要就在MoveWindow()函数上
蒋晟 2005-10-25
  • 打赏
  • 举报
回复
捕获WM_MOVING消息
void CAboutDlg::OnMoving(UINT nSide, LPRECT lpRect)
{
CDialog::OnMoving(nSide, lpRect);
AdjustRect(lpRect);
MoveWindow(lpRect);
}

15,979

社区成员

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

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