我注意到A没有W / WM_DEVMODECHANGE变体,但是LPARAM中需要一个字符串。我看不到任何文档(可以找到)来说明此字符串是窄还是宽。

有谁知道什么适合LPARAM

最佳答案

从您的评论到汉斯的答案,您正在发送消息。通常使用SendMessageTimeout发送此消息。现在,SendMessageTimeout具有两个版本,SendMessageTimeoutWSendMessageTimeoutA。调用SendMessageTimeoutW时,必须提供Unicode文本,而调用SendMessageTimeoutA时,必须提供ANSI文本。

因此,不是通过具有两个消息标识符来区分数据类型,而是基于用于发送数据的功能。

使用SendMessageW / SendMessageAPostMessageW / PostMessageA等时,情况完全相同。

如果使用SendMessageTimeoutW调用HWND_BROADCAST,则可以预期ANSI和Unicode窗口都会收到您的消息。消息传递系统确保将您发送的数据转换为接收消息的窗口的适当编码。

关于c - WM_DEVMODECHANGE的设备名称应该窄还是宽?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12642984/

10-11 21:59