问题标签 [createwindowex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
324 浏览

c++ - CreateWindowsEx() 失败并触发断点

从我的应用程序打开 OpenGL 窗口时遇到问题。

我正在使用 64 位控制台应用程序,并且我想从该控制台中打开另一个窗口供 OpenGL 绘制。

调用在 CreateWindowEx() 处失败,并以“MyApp.exe 已触发断点”失败 以下代码初始化窗口本身。

导致它的先前代码:

那里出了什么问题?我不知道,我正在使用我用于另一个应用程序的代码,它工作得很好。在这里虽然它只是可怕地失败了(在原始代码中它不是控制台应用程序,而是一个没有控制台的 Win32 应用程序)。

最终的解决方案是在一个被调用的 DLL 中,一旦它被调用,它应该创建一个窗口供 OpenGL 绘制。

0 投票
2 回答
350 浏览

c++ - CreateWindowEx() 在哪里?

我试图了解 winapi 是如何工作的。我刚刚开始编写我的前几个应用程序。现在我对函数“CreateWindowEx()”很好奇,我想知道这个函数里面写了什么,但我能找到的只是调用它的参数和它的参数。所以我决定在 h 文件中寻找这个函数,但我找不到它。有人可以帮忙吗?

0 投票
1 回答
2844 浏览

c++ - CreateWindowEx 失败

我正在关注 NeHe gamedev 教程(同时将它们更改为 OO),我在 CreateWindowEx 演示中遇到了问题(http://nehe.gamedev.net/tutorial/creating_an_opengl_window_(win32)/13001/)。

我正在尝试通过 lpParam 向 WndProc 传递一个指向我的 Window 对象的指针(详见此处:http ://web.archive.org/web/20051125022758/www.rpi.edu/~pudeyo/articles/wndproc/ )但如果我尝试这样做,CreateWindowEx 将失败,GetLastError 返回 1400 - ERROR_INVALID_WINDOW_HANDLE。

我是 Windows API 的完全初学者,并且已经用尽了我所知道的解决此问题的所有方法,请您在这里指出我的错误吗?相关代码如下:

成员windowProc:

0 投票
1 回答
1355 浏览

c++ - 将 Windows 主题应用于具有 WS_BORDER 样式的自定义控件

我有一个使用 WS_BORDER 样式的 CreateWindowEx 创建的自定义控件。除了与对话框中的其他控件以不同颜色显示的边框外,一切正常。我控件的边框是黑色的,其他控件的边框是蓝色的。创建控件后,我尝试调用 EnableThemeDialogTexture(_dialogHandle, ETDT_ENABLE) 以及来自http://www.patchou.com/projects/richedit/的逻辑,但无济于事。我正在使用 C++ 和 Winapi。IE。没有 MFC,没有 .Net。非常感谢任何指导。

编辑:这是对我有用的逻辑:

0 投票
1 回答
717 浏览

c++ - 使用 createWindowEx 成功构建,窗口仍然不会出现

我正在尝试学习一些 windows 和 directX 编程,但我正在尝试一些不同的东西。当我的窗户突然停止出现时,即使它是一个成功的构建。我想我一定是搞砸了,我解开了一切,直到我回到我最后一次设法让窗口出现的地方,但是现在当我运行(成功构建)它仍然没有显示:(而且我开始想不出问题可能是什么,太奇怪了。自从上次我让它工作以来,我做的一件事就是添加了一些 libs 目录,但我很难看出这会如何影响以这种方式编程。你们中是否有人遇到过这个问题,如果有,你是如何解决的?这是创建窗口的 func 的代码(是的,我知道无限循环,它应该

附言。我还尝试在 WINDCLASSEX 和 WINDCLASS 之间进行更改,所有需要更改的功能都没有任何区别 ds。

0 投票
1 回答
1265 浏览

c++ - 为什么未初始化的返回值会导致 CreateWindowEx 中的无效窗口句柄错误?

编辑- 添加了与最初未包含的 m_hWndClient 和 WndProc 相关的代码。为了简明扼要,我错误地认为它是无关的。

以下运行后

m_hWndFrame为 NULL 并GetLastError给出“错误 1400 - 无效的窗口句柄”,但这工作正常:

我的WndProc样子是这样的:

我的项目现在可以工作了(经过很多头发撕裂),但我不明白为什么初始化一个仅用于保存返回值的变量很重要。

显然,假设一个变量为 NULL 或 0 而没有初始化,然后使用或测试内容(例如if (!m_unitialisedVariable))将会以灾难告终,但在这种情况下为什么重要?在调用“CreateWindowEx”之前不需要m_hWndFrame特别包含任何内容(至少根据 VS2010 中的帮助),那么为什么它会影响“CreateWindowEx”的结果呢?

0 投票
1 回答
1521 浏览

c++ - 在 LPCSTR CreateWindowEx 函数中显示 Int 变量

所以我正在制作一个基本的井字游戏作为我在 win32 中的第一个程序(只是为了学习更多的乐趣,没有学校作业或任何东西)。我已经完成了大部分 UI 和基本的游戏玩法,例如单击方块和适当地放置 x 或 o。我写了它,以便在游戏结束时识别谁是赢家,并且可以显示一个小文本窗口,上面写着“PLAYER 1 WINS!” ETC....

不,我的问题是关于如何显示分数。我的想法是有一个名为 scoreplayer1 的 int 变量,当玩家获胜时,我会将它增加 1(scoreplayer1++)。然后,我希望将先前分数更改为新分数的窗口。这是我到目前为止所拥有的(我将删除所有与此问题无关的代码,但如果您需要更多,请告诉我):

我的全局变量:

最初创建乐谱窗口的 CreateWindow 函数(它们一开始是空白的):

然后是试图处理改变分数窗口的函数:

}

这个想法是破坏旧窗口并简单地用新分数重新创建一个新窗口(这似乎是最简单的方法)。我知道问题出在哪里,它说我不能将 int scoreplayer1 变量放在最后一个 CreateWindowEx 函数的 TEXT("scoreplayer1") 部分中。错误是:typ int 的参数与 LPCSTR 类型的参数不兼容。

那么如何更改最后一个窗口的创建,使其显示一个随着游戏进行而增加的 int 变量(例如 scoreplayer1)?谢谢!

*编辑***

为了回应我尝试使用 itoa() 解决问题的评论,我做了以下事情:

一旦我到达游戏中的那个点,这就会迫使程序中断......关于我做错了什么的任何想法?

0 投票
2 回答
1267 浏览

winapi - WinAPI 查找窗口

我正在 Visual Studio 2012 中构建一个 win32 应用程序。我使用以下代码创建了 4 个禁用按钮:

我想要做的是在应用程序运行时启用按钮。我尝试使用 findwindow 查找并启用第一个按钮,但没有找到。我的代码是:

难道我做错了什么?先感谢您。

0 投票
1 回答
1058 浏览

winapi - ES_NUMBER、ES_UPPERCASE 和 ES_LOWERCASE 样式在 Win32 API 编辑控件中停止工作

我们有一个非常古老的(“遗留”)VB6 代码,用于从头开始创建 Windows 编辑控件。它看起来像这样:

它已经工作了多年,但现在客户报告说 ES_NUMBER 样式没有效果。这同样涉及两个相似的标志,ES_UPPERCASE 和 ES_LOWERCASE。可能是什么问题?

0 投票
1 回答
2051 浏览

c++ - 在 WinMain 之外使用 CreateWindowEX 函数时,如何获取其 HINSTANCE?

当我单击主窗口上的按钮时,我试图创建一个弹出窗口,为此我使用了 CreateWindowEX 函数。但是,CreateWindowEx 函数接收 HINSTANCE 类型变量作为其倒数第二个参数。鉴于我在单击按钮时从 WndProcedure 内部创建了这个新窗口,WinMain 函数中的 HINSTANCE 变量对我来说将不可用,因为它不是全局变量。

以下代码是从 WndProcedure 回调函数中获取的:

我将如何获取我需要的 hInstance 变量,以便 CreateWindowEx 函数在 WndProcedure 回调函数内部工作?

注意:我考虑将 hInstance 变量设为全局变量,但我不确定是否必须为我的应用程序创建的每个窗口使用相同的 hInstance。