gpt4 book ai didi

c++ - 如何防止 WTL CSplitterWindow 调整大小?

转载 作者:行者123 更新时间:2023-11-28 05:18:36 25 4
gpt4 key购买 nike

我正在查看 MFC 拆分器窗口类覆盖:

https://www.codeproject.com/Articles/6188/How-to-prevent-resizing-of-views-in-a-splitter-win

我已经用 WTL CSplitterWindow 测试了覆盖源代码,但它不起作用。

我使用 CSplitOverride 而不是 CSplitterWindow 类修改了 MainFrm.h。

程序启动时显示“api-ms-win-core-libraryloader-l1-2-0.dll missing..”弹出错误消息。

windows 7 64 位操作系统平台,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 中编译!)

This discussion在 WTL sourceforge 站点上也可能有用

我想您是在问如何在调整主框架大小时保持 Pane 大小不变?这取决于固定 Pane 的对齐方式

atlsplit.h 定义了以下扩展样式

#define SPLIT_RIGHTALIGNED      0x00000004
#define SPLIT_BOTTOMALIGNED SPLIT_RIGHTALIGNED

正如 Michael Dun 所说 - “如果这三种样式均未指定,则分隔符默认为左对齐或顶部对齐。”

  • SPLIT_NONINTERACTIVE 阻止用户调整 Pane 大小
  • m_cxyMin 硬编码由对齐指定的 Pane 的最小尺寸

    m_wndHorzSplit.SetSplitterExtendedStyle(SPLIT_BOTTOMALIGNED | SPLIT_NONINTERACTIVE);m_wndHorzSplit.m_cxyMin = 150;

关于c++ - 如何防止 WTL CSplitterWindow 调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42014920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com