问题标签 [createwindow]

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 回答
5871 浏览

windows - 使用 CreateWindow 并添加按钮等?如何?

在编写了这么长时间的 DirectX/OpenGL 应用程序后,我已经意识到,我对如何使用文本框、标签、命令按钮等基本表单对象创建窗口一无所知。

我可以很好地使用该功能创建一个窗口CreateWindow,如何向其中添加按钮、命令提示符和其他表单对象?

0 投票
3 回答
53687 浏览

windows - 如何在窗口上绘制图像?

我在 Windows Vista 上使用 C++ 中的 VS2005 创建了一个带有 createwindow() api 的窗口

我的要求是在该窗口上绘制图像(任何格式)。我没有在这个应用程序中使用任何 MFC。

0 投票
5 回答
4621 浏览

winapi - Win32 CreateWindow() 调用在子线程中挂起?

我正在为 OpenGL 开发一个可移植层(为 Linux 和 Windows 抽象了 glX 和 wgl 的东西)......无论如何,它有一种创建窗口的方法......如果你不传入父级,你会得到一个带框架的真实窗口......如果你传入一个父窗口,你会得到一个无边框、无框架的窗口......

这工作正常,只要我在 1 个线程上完成这一切......只要另一个线程尝试创建子窗口,应用程序就会在 win32 调用“CreateWindow()”中死锁。有任何想法吗?

0 投票
2 回答
2637 浏览

windows - 创建一个带有英文标题栏的 Win32 Window 应用程序,但标题栏突然变成了中文。怎么会?

我正在关注 Win32 Window 应用程序的教程。上面的代码用于设置窗口画面的标题栏名称。编译器对我大喊:“无法从 'const char [12]' 转换为 'LPCWSTR'”,好吧,我用 (LPCWSTR) 对字符串“MyTitleName”进行了类型转换,一切都编译得很好。但是,在运行期间,窗口屏幕的标题竟然是汉字。我试着改变字符串,汉字总是根据我的字符串改变。我正在使用 XP Visual C++ 2008 Express Edition,并且我将英语(美国)作为非 unicode 程序的设置。我不明白。字符串怎么变成中文了?

0 投票
2 回答
1578 浏览

windows - (Windows API) WM_PAINT 鼠标问题

我创建了一个带有以下标志的窗口来覆盖 d3d 应用程序:WS_EX_TOPMOST | WS_EX_COMPOSITED | WS_EX_TRANSPARENT | WS_EX_LAYERED 我继续对窗口进行颜色键控以实现透明化,一切都运行良好。但是,一旦我开始使用 GDI 绘制它,就会出现一个无法预料的问题:

由于某种原因,当 WM_PAINT 正在进行时,鼠标事件(尤其是移动)没有正确地通过窗口,因此看起来鼠标和键盘似乎滞后了。FPS 很好,这是一些 API 问题,我怀疑由于某种原因,在 WM_PAINT 正在进行时键盘/鼠标消息没有按应有的方式处理,因为计时器设置得越慢,抽搐就越少。

感谢您提供的任何帮助。

0 投票
3 回答
435 浏览

c++ - 如何仅基于屏幕大小创建窗口,不包括 C++/Windows 的窗口边框?

使用创建窗口CreateWindow(...)时,需要窗口的宽度和高度,我必须输入值 656 和 516,而不是 640 和 480,以考虑窗口边框。

我想知道是否有一种方法可以仅基于不包括边框的窗口部分来创建窗口,特别是考虑到如果不同版本的窗口具有不同大小的边框,那么当我运行它时程序可能会以不同的方式显示在所说的不同版本上

(即:使用 640 - 如果用户版本的窗口具有不同大小的边框,object.width 会将对象放置在屏幕边缘不完全)。

那么有没有一种方法可以仅基于与程序相关的屏幕部分创建一个窗口,或者至少根据GetVericalBorder()/行的函数来创建一个窗口,GetHorizontalBorder()以便我使用这些 inCreateWindow()的参数而不是任意和模糊的值,例如656和516?

0 投票
1 回答
827 浏览

delphi - Delphi - 在 DirectShow 过滤器中创建的表单的消息循环死了

我有一个使用 Delphi Pro 6 和 DSPACK 直接显示库创建的 DirectShow 过滤器。我在 Windows XP 下运行。我尝试在 DirectFilter 的容器类调用其构造函数时动态创建表单,将 NIL 作为 AOwner 参数(TMyForm.Create(nil) 传递给构造函数,然后调用 Form 的 Show() 方法。表单确实显示但随后似乎停止接收 Windows 消息,因为它从不重新绘制并且不响应输入。作为测试,我然后尝试创建自己的 WndProc() 并覆盖表单的 WndProc()。我的 WndProc() 确实被调用过一次但再也不会.

我猜这是因为我是一个 DLL,而我正在运行的上下文对窗体的窗口消息处理程序并不“友好”;也许与调用它的线程有关。如果有人能给我一个关于如何解决这个问题的提示,或者从 DirectShow 过滤器的上下文中创建持久窗口的正确方法是什么,我将不胜感激。请注意,正如我所说,窗口需要保持不变,因此我无法将其创建为过滤器属性页。

谢谢,罗伯特

0 投票
4 回答
2673 浏览

winapi - 是否可以创建一个不会停用父窗口的子窗口?

通常在创建子窗口(WS_POPUP)时,子窗口将变为激活状态,而父窗口将变为非激活状态。但是,对于菜单,两者都保持活动状态。至少我假设菜单是活动的,它至少有焦点。

示例:单击记事本中的文件菜单,出现菜单,但记事本窗口仍然处于活动状态。

是否可以使用窗口样式或响应特定消息来反映此行为?

谢谢

另一个例子:组合框似乎显示了一个子窗口,但并没有停用该窗口。您可以单击该子窗口,同时仍保持激活主窗口。关于如何获取该窗口的类/样式的任何想法?

0 投票
1 回答
999 浏览

winapi - Windows API CreateWindow 客户端大小鼠标位置

使用 OpenGL,我使用

创建一个窗口,现在我需要在客户端(渲染)区域上找到鼠标位置。但是,我注意到鼠标坐标一直延伸到标题/标题栏,这将给出错误的鼠标到屏幕到世界坐标。我可以通过反复试验找到固定的偏移量,但是是否有适当的标志/技巧来获取客户端鼠标坐标?

谢谢!

0 投票
1 回答
2951 浏览

windows - 在 JNA 中创建一个原生 Windows 窗口,并使用 GWL_WNDPROC 创建一些 GetWindowLong

再会,

我一直在使用 JNA 与 Windows API 交互,现在我在创建窗口时卡住了。就我所做的如下: 1. 已经创建了现有窗口的子窗口并获得了一个有效的处理程序。2. 了解 Windows 中的每个窗口都有一个不间断的消息分发循环。3. 了解将我的窗口包含在消息调度循环中的最佳方法是使用类似以下代码的代码(不是我的,但我也会这样做):

但是,我的问题是,当我为父窗口(我的第一行代码)调用 GetWindowLong() 时,我得到的指针为 0,表示函数未成功完成。随后调用 GetLastError() 并快速检查错误代码会给我一个“拒绝访问”错误。这当然是合乎逻辑的,因为我试图从我自己的线程访问另一个 WNDPROC 的地址,但我想知道是否有任何方法(当然应该有)来规避它。

任何指针?(双关语)