gpt4 book ai didi

c - Win32 使菜单非全局但所有子进程都可以访问

转载 作者:太空宇宙 更新时间:2023-11-04 04:43:59 27 4
gpt4 key购买 nike

我正在制作一个绘画程序,其中我有 MDI 和多个需要访问菜单项的对话框。

现在,我将菜单粘贴在全局中,这样所有内容都可以看到。但是,我想使用

typedef struct datastruct
{
DWORD currentTool;
POINT start, end;
DWORD lastShape;
HINSTANCE hInst;
HMENU hMenuInit, hMenuHello;
HMENU hMenuInitWindow, hMenuHelloWindow;
}
DATA, *PDATA;

此结构以及 PDATA pdata = 0, pglobaldata=0;

要访问以下项目:

HINSTANCE hInst;
HMENU hMenuInit, hMenu;
HMENU hMenuInitWindow, hMenuWindow;

例如,当我需要在 MDI 子窗口中访问 hMenuInit 时,我会这样做:pglobaldata->hMenuInit 我将能够访问 WinMain 正在使用的同一个:hMenuInit = LoadMenu (hInstance, MAKEINTRESOURCE(IDR_MENU));

我怎样才能做到这一点?

在此处粘贴所有代码时遇到问题。我把它放在 pastebin 上了:http://pastebin.com/z9tKSwhG

最佳答案

听起来您想将一些特定于实例的数据与窗口相关联。您可以通过在注册窗口类时在 WNDCLASSEXcbWndExtra 成员中指定额外数据的大小来实现。然后访问额外的数据调用 GetWindowLongPtrSetWindowLongPtrnIndex 传递 0。该索引标识存储实例数据的速度慢。

关于c - Win32 使菜单非全局但所有子进程都可以访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23035612/

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