首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

windows圣经求解,该怎么处理

2013-03-14 
windows圣经求解6.3.1四类字符消息WM_CHAR和WM_DEADCHAR消息是从WM_KEYDOWN得到的;而WM_SYSCHAR和WM_SYSDE

windows圣经求解
6.3.1  四类字符消息

WM_CHAR和WM_DEADCHAR消息是从WM_KEYDOWN得到的;而WM_SYSCHAR和WM_SYSDEADCHAR消息是从WM_SYSKEYDOWN消息得到的(我将简要地讨论一下什么是死字符)。

有一个好消息:在大多数情况下,Windows程序会忽略除WM_CHAR之外的任何消息。伴随四个字符消息的lParam参数与产生字符代码消息的按键消息之lParam参数相同。不过,参数wParam不是虚拟键码。实际上,它是ANSI或Unicode字符代码。

这些字符消息是我们将文字传递给窗口消息处理程序时遇到的第一个消息。它们不是唯一的消息,其它消息伴随以0结尾的整个字符串。窗口消息处理程序是如何知道该字符是8位的ANSI字符还是16位的Unicode宽字符呢?


提到一个关键字“唯一的消息“ ,这是什么意思?怎么理解啊?

难道不对吗,。无非就是wm_char, wm_syschar等消息啊, 

[解决办法]
项目属性里面不是可以设置Unicode还是多字符的?
[解决办法]
RegisterClass
[解决办法]
其他的消息可能是WM_SETTEXT之类的消息,其传送一段文字给消息处理程序
[解决办法]
原文:
These character messages are the first messages we've encountered that deliver text to the window procedure.They're not the only ones. Other messages are accompanied by entire zero-terminated text strings.
译文:
这些字符消息是我们将文字传递给窗口消息处理程序时遇到的第一个消息。它们不是唯一的消息,其它消息伴随以0结尾的整个字符串。

这里提到的其他消息(WM_SETEXT),并没有说要由键盘触发。可以自行用sendMessage发送WM_SETTEXT。
[解决办法]

引用:
引用:
RegisterClass

引用:
嗯,赶紧结贴


<00001> 000F02C2 P WM_KEYDOWN nVirtKey:'D' cRepeat:1 ScanCode:20 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00002> 000F02C2 P WM_……

你可以试试换个输入法,比如输入中文,再看看spy++能给你抓到哪些消息?

热点排行