gpt4 book ai didi

c++ - 这个 CreateWindowEx 函数有什么问题?

转载 作者:行者123 更新时间:2023-11-28 08:16:59 24 4
gpt4 key购买 nike

好的,所以首先概述一下我正在尝试做的事情..
我正在尝试在主父窗口中创建 3 个子窗口,并使用 EnumChildWindowEnumChildProc 来枚举它们,我想创建 3 个与父窗口高度相同的子窗口但是 1/3 宽度,然后将它们一个接一个地对齐..

因此,我捕获了 WM_CREATE 消息来创建这些子窗口,并捕获了 WM_SIZE 来使用 MoveWindow 移动和对齐它们,一切都很好除了没有创建子窗口这一事实。当我调试它时,我发现(在 Visual Studio 2008 的自动窗口中,调试时)我的 CreateWindowEx 语句没有被执行(自动窗口显示“Expression cannot be evaluated”。

声明如下:

CreateWindowEx(0, (LPCWSTR)("childClass"), (LPCWSTR)NULL, WS_CHILD | WS_BORDER, 0, 0, 0, 0, hWnd, (HMENU) (int) (ID_FIRSTCHILD + 1), hInst, NULL);

当然,我在 for 循环中使用它来创建 3 个窗口,但那是另一回事...
那么,任何人都可以帮助/指导/建议我这里发生了什么吗?或者我做错了什么?

ps:我正在阅读这本电子书,我是从那里获得这些代码的,所以请不要让我采用另一种方法或其他方法,比如将 Child 创建代码放在其他地方......因为我不是制作任何程序,但只是遵循一本书的例子...... :)

最佳答案

我的超能力建议您需要将 WS_VISIBLE 样式传递给上面的子窗口的 CreateWindow 调用 - 这样您就可以看到它们。 :)

我的开发经验表明如下:

CreateWindowEx 的返回值是多少?您是否将返回值分配给变量。如果是这样,您是否在调试器的那一行设置了断点?如果 CreateWindow 的返回值为 NULL,那么 GetLastError 是什么(您可以在调试器中将其评估为“@err”)。

在您的主窗口弹出后(子窗口不可见),您是否运行 Spy++ 查看子窗口是否存在?他们的状态如何?

否则,您是否验证了正在调用子窗口类的 WndProc 的 WM_CREATE 回调?

关于c++ - 这个 CreateWindowEx 函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7408930/

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