为啥为窗口加了WS_SYSMENU样式后,无法通过发送HT消息来改变窗口的大小?在加入WS_SYSMENU样式前,是可以在边框处调整窗口大小的。
解决方案 »
- 哇塞..聊天帖..360 和 腾迅 又干上了?
- MFC里为什么没有External Dependencies 文件啊 ?? 各位帮帮菜~啊(高分答谢)
- 提供大量OpenGL源代码免费下载网址
- 请教一个问题,在线等!!
- 一个CDaoWorkspace的连接问题。
- 我想学习用ado,或者oledb模板类
- 请发表意见!
- error LNK2001: unresolved external symbol _ADsGetObject@12
- 有一个VB与VC++的通信问题?大家一起来探讨。
- 请问大侠,如何改变按钮的颜色?
- 如何使标签控件关联的对话框(不是主对话框)响应WM_KEYDOWN消息
- 怎样取消scrollbar的闪烁
我把MDI窗体的标题栏和边框都隐藏了,用图片自定义的标题栏和边框。
#define PT_DIS_X (17)
#define PT_DIS_Y (15)UINT CDlgXXXX::OnNcHitTest(CPoint point)
{
CPoint pt = point;
ScreenToClient(&pt);
CRect rect;
GetWindowRect(&rect);
if (pt.y < 29 && pt.y >=PT_DIS && pt.x >PT_DIS_X)
{
return HTCAPTION;
}
else if (pt.y < PT_DIS)
{
if (pt.x < PT_DIS_X)
{
return HTTOPLEFT;
}
else if(pt.x > rect.Width() - PT_DIS_X)
{
return HTTOPRIGHT;
}
else
{
return HTTOP;
}
}
else if (pt.y > rect.Height() - PT_DIS_Y)
{
if (pt.x < PT_DIS_X)
{
return HTBOTTOMLEFT;
}
else if(pt.x > rect.Width() - PT_DIS_X)
{
return HTBOTTOMRIGHT;
}
else
{
return HTBOTTOM;
}
}
else if (pt.x < PT_DIS)
{
if (pt.y < PT_DIS_Y)
{
return HTTOPLEFT;
}
else if(pt.y > rect.Height() - PT_DIS_Y)
{
return HTBOTTOMLEFT;
}
else
{
return HTLEFT;
}
}
else if ( pt.x > rect.Width() - PT_DIS_X)
{
if (pt.y < PT_DIS_Y)
{
return HTTOPRIGHT;
}
else if ( pt.y > rect.Height() - PT_DIS_X)
{
return HTBOTTOMRIGHT;
}
else
{
return HTRIGHT;
}
} return CDialog::OnNcHitTest(point);
}
这个不是你加了WS_SYSMENU 的原因 而是你去掉了边框的原因调整无边框窗体大小的代码我加过,在加入WS_SYSMENU前就是通过它调整大小