问题标签 [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.
c++ - Windows 脚本宿主在关闭创建的窗口时终止
CreateWindowEx
我为API 函数创建了一个包装函数,并从 VBScript 中使用它。这是 VBScript:
窗口按预期创建并显示正常。但我想知道为什么当我单击创建的窗口的关闭按钮时 Windows 脚本主机会终止。
我CreateWindowEx
使用 AutoIt 进行了测试,当我关闭创建的窗口时,AutoIt3.exe 没有终止,它继续运行脚本,这与 Windows Script Host 不同。
即使关闭创建的窗口,我也喜欢保持 Windows 脚本主机运行。
无论如何都不能实现我想要的,我想知道 Windows Script Host 发生这种情况的原因是什么。
c++ - 使 Direct2dFactory 指针无效的按钮创建 Windows C++
我正在 MS Visual Studio 2017 中编写一个 Windows 应用程序,但在使用 Direct 2D Factory 对象和按钮时遇到了一点麻烦。看来,如果我首先创建直接 2D Factory 对象,也就是运行:
工厂对象是使用存储在“m_pDirect2dFactory”中的指针正确创建的。该对象指针在主窗口的创建过程中持续存在:
并通过创建子窗口:
但是,当代码创建按钮时:
指针“m_pDirect2dFactory”的值更改为明显无效的值,这会在调用 m_pDirect2dFactory->Release() 时导致错误。或者,换句话说,按钮的创建篡改了由 D2D1CreateFactory 创建的工厂对象。
这是一个已知问题吗?
c++ - CreateWindowEx 在 Windows 10 上创建旧 (Windows 7) 样式边框
每当我使用CreateWindowEx(...)
(可以在下面的代码中找到确切的参数)创建一个窗口时,它就会像旧式窗口一样显示:
只有当我在远程桌面上启动它,关闭连接并重新连接时,它才会更改为所需的 Windows 10 样式:
它与WM_SETTINGCHANGE
应用程序在执行此操作时收到的几条消息有关吗?
显然,我希望窗口在创建时具有现代风格,而不是在处理一些消息之后。
我尝试了WS_...
风格参数的不同组合。奇怪的是,该应用程序只可靠地显示为WS_OVERLAPPEDWINDOW | WS_VISIBLE
.
我已经尝试过ShowWindow
(有各种论点)并且UpdateWindow
在两个命令中。
我也尝试过弄乱目标平台和工具集,但无济于事(使用 VS2015、v140)。
代码片段:
winapi - 在 WM_CREATE 上设置窗口数据的优点
根据微软的文档,设置自定义窗口数据的方法是通过lpParam
参数传递它CreateWindowEx
,在窗口过程中检索它WM_CREATE
,然后使用SetWindowLongPtr
. CreateWindowEx
我想知道当你已经有了窗口句柄时,你为什么要这样做,而不是在调用之后设置它。感谢您的任何指导,如果这是一个基本问题,我们很抱歉。
c++ - Win32 API - HWND“{unused = ???} 无法读取内存”错误
我的项目是 C++ Windows 桌面向导 AKA Win32 API 项目。
在函数 WinMain(...) 我正在创建我的窗口:
之后由于某种原因,我的窗口状态为“无法读取内存”(因此我无法创建没有此问题的 GUI)。我什至检查了谷歌的第二页以找到解决此问题的方法。微软的文档没有帮助:我检查了实现,它与我的相符。尽管我之前创建了 2 个工作项目(比较没有给出任何结果),但我很长一段时间都无法修复它,我是盲人,我之前写错了。
整个代码如下:
提前感谢您的帮助。
c - 使用 WS_EX_COMPOSITED 创建静态控件失败
我正在用 C 编写一个 Windows 程序,我有一个静态控件,其中包含一个图形,您可以单击并拖动鼠标来选择一个范围。但是,当您四处拖动鼠标时,选择范围会闪烁。我从谷歌上了解到这是一个常见问题,解决方案是使用 WS_EX_COMPOSITED 样式(还建议覆盖 WM_ERASEBKGND,但在我的情况下并不能解决)。问题是当我激活这种样式时,它会导致 CreateWindowEx 失败。这是行:
CreateWindowEx(WS_EX_COMPOSITED, WC_STATIC, NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, graphXPos, graphYPos, GRAPH_WIDTH, GRAPH_HEIGHT, mainWindowHandle, NULL, NULL, NULL);
当像这样创建窗口时,这工作正常:
CreateWindow(WC_STATIC, NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, graphXPos, graphYPos, GRAPH_WIDTH, GRAPH_HEIGHT, mainWindowHandle, NULL, NULL, NULL);
CreateWindowEx 失败的错误代码是 0x57,这意味着“此参数不正确”。文档说 WS_EX_COMPOSITED 不适用于使用样式 CS_OWNDC 或 CS_CLASSDC 的窗口类,所以我使用 GetClassInfo 来检查静态控件是否使用这些样式,但它们没有(它们只使用 CS_DBLCLKS 和 CS_PARENTDC)。
我不知道这是否重要,但这个静态控件的子窗口具有以下样式:WS_OVERLAPPED、WS_MINIMIZEBOX、WS_SYSMENU、WS_VISIBLE、WS_CLIPSIBLINGS。它所属的窗口类只有 CS_DBLCLKS 样式。
c++ - 'BeginDraw' 与 D2D1 结合使用会导致错误
我正在尝试CreateWindowEx
使用 D2D1 清除使用分隔为单独类的代码创建的窗口的背景。这是代码。
^ 窗口.cpp
^ 图形.cpp
^ 图形.h
我的错误在窗口打开后立即发生,就在它崩溃之前。对此BeginDraw()
负责,因为将其删除可以WM_PAINT
解决问题,但这不是一个可行的选择。
错误:
抛出异常:读取访问冲突。 这是空指针。
它被指定在 中的行void BeginDraw() { ... }
上Graphics.h
。
值得注意的事情(不重要):
在过去的几天里,我一直在努力寻找解决方案,但我不知道我阅读的大部分代码是什么意思,所以我为我缺乏知识而道歉。
我认为这个问题是BeginDraw()
在图形初始化之前被调用的,但我不知道如何防止这种情况。
谢谢你的任何建议。
c++ - 挣扎于CreatWindow函数
我是初学者,我正在尝试编写我的第一个游戏。我正在关注前段时间制作的教程。这是我的代码:
当我尝试编译代码时,它给了我这两个错误:
我究竟做错了什么?
c++ - 如何创建一个行为类似于任务栏的窗口?
我想问一下如何创建一个行为类似于任务栏(shell_traywnd)的窗口?在一个名为 Enable Viacam(残疾人相机鼠标)的 Windows 应用程序中,我看到该应用程序在屏幕顶部创建了一个类似任务栏的窗口(见下图),它将所有其他窗口拉到它下面。 Enable_Viacam 的窗口(屏幕顶部)
我使用 Winspector 软件检查此 Enable Viacam 的窗口以查看其 WS_ /WS_EX_属性,以便我尝试模拟它,但使用这些属性调用 CreateWindowEx 并没有给我想要的结果。
这是我的尝试(此处未显示消息循环和窗口过程)
任何想法都非常感谢,谢谢!