如何防止 WTL CSplitterWindow 调整大小?
How to prevent WTL CSplitterWindow resize?
我正在查看 MFC 拆分器 window class 覆盖:
https://www.codeproject.com/Articles/6188/How-to-prevent-resizing-of-views-in-a-splitter-win
我已经用 WTL CSplitterWindow 测试了覆盖源代码,但它不起作用。
我修改了 MainFrm.h 使用 CSplitOverride 而不是 CSplitterWindow class。
程序启动时 "api-ms-win-core-libraryloader-l1-2-0.dll missing.." 显示弹出错误消息。
windows 7 64 位 os 平台,32 位 vs2015 构建。
class CSplitOverride : public CSplitterWindow
{
public:
CSplitOverride() { }
protected:
BEGIN_MSG_MAP(CSplitOverride)
MESSAGE_HANDLER(WM_NCHITTEST, OnNcHitTest)
END_MSG_MAP()
public:
LRESULT OnNcHitTest(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
return HTNOWHERE;
}
};
编辑:我已经尝试过粗框设置但没有可用。 Jan S 解决方案就像我想要的那样工作。
看看 Michael Dunns excellent tutorial on splitter windows(这需要一些更改才能在 vs2013 中编译!)
WTL sourceforge 站点上的 This discussion 也可能有用
我想您是在问如何在调整主框架大小时保持窗格大小不变?这取决于固定窗格的对齐方式
atlsplit.h 定义了以下扩展样式
#define SPLIT_RIGHTALIGNED 0x00000004
#define SPLIT_BOTTOMALIGNED SPLIT_RIGHTALIGNED
正如迈克尔·邓所说 - "If none of those three styles are specified, the splitter defaults to being left- or top-aligned."
- SPLIT_NONINTERACTIVE 阻止用户调整窗格大小
m_cxyMin 硬编码由对齐指定的窗格的最小尺寸
m_wndHorzSplit.SetSplitterExtendedStyle(SPLIT_BOTTOMALIGNED | SPLIT_NONINTERACTIVE);
m_wndHorzSplit.m_cxyMin = 150;
我正在查看 MFC 拆分器 window class 覆盖:
https://www.codeproject.com/Articles/6188/How-to-prevent-resizing-of-views-in-a-splitter-win
我已经用 WTL CSplitterWindow 测试了覆盖源代码,但它不起作用。
我修改了 MainFrm.h 使用 CSplitOverride 而不是 CSplitterWindow class。
程序启动时 "api-ms-win-core-libraryloader-l1-2-0.dll missing.." 显示弹出错误消息。
windows 7 64 位 os 平台,32 位 vs2015 构建。
class CSplitOverride : public CSplitterWindow
{
public:
CSplitOverride() { }
protected:
BEGIN_MSG_MAP(CSplitOverride)
MESSAGE_HANDLER(WM_NCHITTEST, OnNcHitTest)
END_MSG_MAP()
public:
LRESULT OnNcHitTest(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
return HTNOWHERE;
}
};
编辑:我已经尝试过粗框设置但没有可用。 Jan S 解决方案就像我想要的那样工作。
看看 Michael Dunns excellent tutorial on splitter windows(这需要一些更改才能在 vs2013 中编译!)
WTL sourceforge 站点上的This discussion 也可能有用
我想您是在问如何在调整主框架大小时保持窗格大小不变?这取决于固定窗格的对齐方式
atlsplit.h 定义了以下扩展样式
#define SPLIT_RIGHTALIGNED 0x00000004
#define SPLIT_BOTTOMALIGNED SPLIT_RIGHTALIGNED
正如迈克尔·邓所说 - "If none of those three styles are specified, the splitter defaults to being left- or top-aligned."
- SPLIT_NONINTERACTIVE 阻止用户调整窗格大小
m_cxyMin 硬编码由对齐指定的窗格的最小尺寸
m_wndHorzSplit.SetSplitterExtendedStyle(SPLIT_BOTTOMALIGNED | SPLIT_NONINTERACTIVE); m_wndHorzSplit.m_cxyMin = 150;