gpt4 book ai didi

c++ - unicode 窗口中的非 unicode WM_CHAR

转载 作者:可可西里 更新时间:2023-11-01 09:50:12 28 4
gpt4 key购买 nike

我编写了一个 DLL,它导出一个使用 RegisterClassExWCreateWindowExW 创建窗口的函数。每条消息都通过

检索
GetMessageW(&msg, wnd_handle, 0, 0);
TranslateMessage(&msg);
DispatchMessageW(&msg);

还有一个加载DLL和调用函数的程序。

尽管使用 Unicode 窗口创建方法,WM_CHAR 消息中的 wParam 始终包含 ASCII 字符,即使我键入一些非 ASCII 符号或使用 Alt+(code) . wParam 不是 UTF-16,而是包含“A”和“z”之间的一些 ASCII 字符。WndProc 是 DLL 中的静态函数。

当所有与窗口相关的代码都在一个程序中时,不会出现此问题。

有没有办法在 DLL 的窗口中始终包含 Unicode WM_CHAR 消息?

最佳答案

问题出在消息检索过程中。我将 GetMessage() 与我的窗口句柄一起使用,而不仅仅是 0,GetMessageW(&msg, wnd_handle, 0, 0) 而不是 GetMessageW(&msg, 0 , 0, 0)
这样,WM_INPUTLANGCHANGEREQUEST 消息就被吞掉了,语言环境仍然是英文。

关于c++ - unicode 窗口中的非 unicode WM_CHAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/768844/

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