gpt4 book ai didi

c++ - 为什么 CToolBar::LoadToolBar 会失败?

转载 作者:太空宇宙 更新时间:2023-11-04 14:17:55 24 4
gpt4 key购买 nike

我一直在尝试将工具栏添加到对话框,但当我调用 m_ToolBar.LoadToolBar 时它失败了。

我创建了一个新的工具栏资源并将其命名为 IDR_TOOLBAR1,然后将其添加到代码中

if(!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | 
WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_ToolBar.LoadToolBar(IDR_TOOLBAR1))
{
EndDialog(IDCANCEL);
}

出于某种原因,m_ToolBar.LoadToolBar(IDR_TOOLBAR1) 返回 false。我在 Visual Studio 中创建了工具栏资源,因此我认为我的 IDR_TOOLBAR1 设置正确。

什么可能导致加载失败?

编辑:我不确定这是否相关,但我注意到工具栏的 ID 与另一个控件的 ID 匹配

#define IDC_EDIT_EVENTS                 213
#define IDR_TOOLBAR1 213

在自动生成的资源文件中

edit2:当我尝试调试 LoadToolBar 时,我发现它调用了 MAKEINTRESOURCE,这似乎返回了错误的指针。 MAKEINTRESOURCE 只是一堆 Actor ,所以我不确定这里的问题是什么。

最佳答案

MAKEINTRESOURCE 将返回一个看似错误的指针,但这是正常的。资源可以是字符串或转换为字符串的整数。

这段代码是否偶然被编译为 DLL?如果是这样,也许您需要将以下代码添加到该函数的顶部,以允许 MFC 确定从哪个 DLL 中获取它。

AFX_MANAGE_STATE(AfxGetStaticModuleState());

关于c++ - 为什么 CToolBar::LoadToolBar 会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773227/

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