【问题标题】:How to implement a re-sizable border + making it invisible using MFC?如何使用 MFC 实现可调整大小的边框 + 使其不可见?
【发布时间】:2013-11-07 22:09:00
【问题描述】:

我想知道,如何在 MFC 中创建可调整大小的边框而不显示边框本身?

IDD_GADGETTRANSLUCENTDIALOG DIALOGEX 0, 0, 320, 201
STYLE DS_SETFONT | DS_FIXEDSYS | WS_SYSMENU | WS_THICKFRAME

“WS_THICKFRAME”样式提供了调整大小的功能,但我不希望边框可见。我该怎么做呢?

【问题讨论】:

  • 我对 MFC 一无所知 - 但在纯 C++ 中,您可以自己处理 WM_NCHITTEST 消息,并返回适当的值以表示光标已击中可调整大小的边框或角.
  • 好的,我试一试

标签: c++ mfc


【解决方案1】:

或者自己处理 WM_NCPAINT 并绘制边框(和标题)...

【讨论】:

  • 事后看来,我认为 melak47 的建议是更好的建议,因为重绘标题栏只是为了改变边框是太过分了。如果您需要这方面的帮助,我很乐意提供帮助。
【解决方案2】:

我创建了一个具有可选边框(和框架)的 MCF 应用程序。在无边框模式下,我仍然希望它可调整大小和可移动,所以基本上在OnMouseMove 中,如果我在窗口边缘的几个像素内,我设置了适当的光标(例如右上角的IDC_SIZENESW角落)然后如果nFlags & MK_LBUTTON 使用WM_SYSCOMMAND 和适当的大小命令(例如SC_SIZE + WMSZ_TOPRIGHT)做了SendMessage 并让CWnd::OnSysCommand 默认处理程序处理它。此外,同样的技巧适用于SC_MOVE...

【讨论】:

    猜你喜欢
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多