我注意到A
没有W
/ WM_DEVMODECHANGE
变体,但是LPARAM
中需要一个字符串。我看不到任何文档(可以找到)来说明此字符串是窄还是宽。
有谁知道什么适合LPARAM
?
最佳答案
从您的评论到汉斯的答案,您正在发送消息。通常使用SendMessageTimeout
发送此消息。现在,SendMessageTimeout
具有两个版本,SendMessageTimeoutW
和SendMessageTimeoutA
。调用SendMessageTimeoutW
时,必须提供Unicode文本,而调用SendMessageTimeoutA
时,必须提供ANSI文本。
因此,不是通过具有两个消息标识符来区分数据类型,而是基于用于发送数据的功能。
使用SendMessageW
/ SendMessageA
,PostMessageW
/ PostMessageA
等时,情况完全相同。
如果使用SendMessageTimeoutW
调用HWND_BROADCAST
,则可以预期ANSI和Unicode窗口都会收到您的消息。消息传递系统确保将您发送的数据转换为接收消息的窗口的适当编码。
关于c - WM_DEVMODECHANGE的设备名称应该窄还是宽?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12642984/