所以,我创建了一个具有样式的对话框:WS_THICKFRAME.这个WS_THICKFRAME为对话框提供了调整窗口大小的功能,但我的问题是我不会在窗口周围看到边框.如何使边框不可见,但仍具有重新尺寸功能?
一个例子是最有帮助的!谢谢!
下面是我创建的对话框的模板样式:
IDD_GADGETTRANSLUCENTDIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_ABSALIGN | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_SYSMENU | WS_THICKFRAME
Run Code Online (Sandbox Code Playgroud)
小智 6
删除WS_THICKFRAME
处理WM_NCHITTEST大致如下:
UINT CMyClass::OnNcHitTest(CPoint point)
{
CRect rWindow;
GetWindowRect(rWindow);
CRect rInner(rWindow);
rInner.DeflateRect(GetSystemMetrics(SM_CXBORDER), GetSystemMetrics(SM_CYBORDER));
if (rWindow.PtInRect(point) && !rInner.PtInRect(point))
{
// figure out which of the following codes to return: //
// HTBOTTOM, HTTOP, HTLEFT, HTRIGHT //
// HTBOTTOMLEFT, HTBOTTOMRIGHT, HTTOPLEFT, HTTOPRIGHT //
}
else
{
return CMyBaseClass::OnNcHitTest(point);
}
}
Run Code Online (Sandbox Code Playgroud)