【问题标题】:Thin border lines in MFC/MDIMFC/MDI 中的细边界线
【发布时间】:2017-11-11 22:03:20
【问题描述】:

我想在我的 MFC/MDI 应用程序中使用细的子框架边框。 Microsoft 建议在 PreCreateWindow 函数中更改窗口样式,似乎正确的窗口样式是 WS_BORDER。然而这样的事情是行不通的;

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    cs.style |= WS_BORDER;
    return CMDIChildWnd::PreCreateWindow(cs);
} 

我在这里错过了什么?

谢谢

【问题讨论】:

  • 假设您正在尝试将样式添加到现有样式中,它应该是|=
  • 抱歉打错了。是的,这就是我的意思。它不会改变行为。
  • 您可能需要移除其他边框样式。
  • 我尝试单独删除或组合删除 WS_CAPTION、WS_DLGFRAME、WS_SIZEBOX、WS_THICKFRAME 等。如果你能给我一个具体的建议会更好。谢谢。
  • MDI 子窗口必须始终具有粗边框。 MDI 子窗口需要调整大小,这就是窗口模型的样子。好吧,看起来像:)

标签: c++ visual-studio-2013 mfc


【解决方案1】:

你可以试试这样的:

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
//  the CREATESTRUCT cs

cs.style = WS_CHILD | WS_VISIBLE | WS_BORDER;

if(! CMDIChildWnd::PreCreateWindow(cs))
    return FALSE;

return TRUE;
}

【讨论】:

  • "WS_CHILD | WS_VISIBLE | WS_BORDER" 样式不会将子窗口显示为窗口。看起来它正在嵌入它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 2021-01-13
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
相关资源
最近更新 更多