1

因此,我创建了一个具有样式的对话框: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
4

1 回答 1

7

删除 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);
   }
} 
于 2013-11-12T03:13:12.130 回答