现在有一个不规则的对话框窗体,并且也没有resize-border,问如何改变它的大小?
我用setwindowrgn创建的,并且也没有resize-border,我现在想改变的大小,问如何去做?我看过有的软件就是这样。realone等
我找了一些例子,都是自己计算的。我想问问有没有好方法?
我现在是在OnNcHitTest中可以绘制方向鼠标,但是下一步我就不知道如何去做了
非常感谢!!!
UINT CPlayListDlg::OnNcHitTest(CPoint point)
{
//
CRect rtclient;
GetClientRect(&rtclient);
ScreenToClient(&point);
/* 得到边角的8个resize区域 */
CRect lefttop(0, 0, 5, 5);
CRect top(5, 0, rtclient.Width()-5, 5);
CRect righttop(rtclient.Width()-5, 0, rtclient.Width(), 5);
CRect right(rtclient.Width()-5, 5, rtclient.Width(), rtclient.Height()-5);
CRect bottomright(rtclient.Width()-5, rtclient.Height()-5, rtclient.Width(), rtclient.Height());
CRect bottom(5, rtclient.Height()-5, rtclient.Width()-5, rtclient.Height());
CRect bottomleft(0, rtclient.Height()-5, 5, rtclient.Height());
CRect left(0, 5, 5, rtclient.Height()-5);
if (lefttop.PtInRect(point)) {
return HTTOPLEFT;
} else if (top.PtInRect(point)) {
return HTTOP;
} else if (righttop.PtInRect(point)) {
return HTTOPRIGHT;
} else if (right.PtInRect(point)) {
return HTRIGHT;
} else if (bottomright.PtInRect(point)) {
return HTBOTTOMRIGHT;
} else if (bottom.PtInRect(point)) {
return HTBOTTOM;
} else if (bottomleft.PtInRect(point)) {
return HTBOTTOMLEFT;
} else if (left.PtInRect(point)) {
return HTLEFT;
}
return CDialog::OnNcHitTest(point);
}