当使用者按下这个死键时,视窗讯息处理程式接收到一个wParam等于音调本身的ASCII或者Unicode代码的WM_DEADCHAR讯息。当使用者再按下可以带有此音调的字母键(例如A键)时,视窗讯息处理程式会接收到WM_CHAR讯息,其中wParam等於带有音调的字母「a」的ANSI代码。
因此,使用者程式不需要处理WM_DEADCHAR讯息,原因是WM_CHAR讯息已含有程式所需要的所有资讯。Windows的做法甚至还设计了内部错误处理。如果在死键之后跟有不能带此音调符号的字母(例如「s」),那么视窗讯息处理程式将在一行接收到两条WM_CHAR讯息-前一个讯息的wParam等於音调符号本身的ASCII代码(与传递到WM_DEADCHAR讯息的wParam值相同),第二个讯息的wParam等於字母s的ASCII代码。
MFC确实有很多病诟,但是他仍然是一种非常方便的程序开发工具。不管Microsoft是不是真的打算停止维护MFC,至少在很长一段时间MFC开发的程序仍然能在各大Windows平台上运行,这才是重点,一个好用,你也用习惯了的工具,你也仍将继续使用它。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)