如何在windows上实现重音字符?
任何关于如何在Windows中实现重音字符的指针都会很有帮助 目标-能够使用诸如ctrl+'的按键,然后是元音和所有其他在标准应用程序(如MS Word、文本键盘等)上工作的组合来添加重音字符(áíóú) 我截至日期的调查结果- 我可以在任何地方阅读与WM_Dedchar消息相关的文档/博客/论坛。我了解的是: ::TranslateMessage将对应于死键的WM_KEYUP消息转换为WM_DEADCHAR消息,并将由死键生成的WM_SYSKEYUP消息转换为WM_SYSDEADCHAR消息。Windows提供了将这些消息与字符消息相结合以生成重音字符的逻辑,因此死键消息通常会传递给默认处理 我将此消息添加到CWnd派生类的消息映射中,但从未调用OnDedChar()。此外,我还使用SPY++发现,即使在MSWord、Textpad等可以通过这些按键组合添加重音字符的地方,WM_DEADCHAR消息也不会被发送。 那么,这是否意味着WM_dedchar实际上不是解决这个问题的方法 请提供实现重音字符的任何示例代码/步骤/机制如何在windows上实现重音字符?,windows,mfc,Windows,Mfc,任何关于如何在Windows中实现重音字符的指针都会很有帮助 目标-能够使用诸如ctrl+'的按键,然后是元音和所有其他在标准应用程序(如MS Word、文本键盘等)上工作的组合来添加重音字符(áíóú) 我截至日期的调查结果- 我可以在任何地方阅读与WM_Dedchar消息相关的文档/博客/论坛。我了解的是: ::TranslateMessage将对应于死键的WM_KEYUP消息转换为WM_DEADCHAR消息,并将由死键生成的WM_SYSKEYUP消息转换为WM_SYSDEADCHAR消息
提前感谢 这完全取决于您使用的键盘布局。某些键盘布局有死键,基本上允许组合键来产生更多字符 例如,我的`键本身不起任何作用,但按下`则会产生一个 在允许用户输入重音字符方面,实际上是由他们安装一个允许重音字符的键盘布局。您的应用程序不需要处理WM_dedchar;您只需处理
WM\u CHAR
在应用程序内部支持重音字符方面,只需确保您使用的是Unicode字符集和类型。例如wchar\u t
/wchar
,而不是char
值得一提的是,我相信在某个时刻我和你有着相同的目标。我创建了一个应用程序,它基本上模拟死键,并使用键盘挂钩生成重音字符。其优点是,无需安装键盘布局即可获得重音字符功能
但缺点更多。没有必要重新发明这个轮子。键盘布局功能惊人,所有这些输入字符的问题都已经解决了。您将很难翻译自己的消息以生成不同的字符。不同的应用在这方面有不同的要求,最终你需要完全模拟击键,以生成键盘状态结构和处理每个键盘/字符/输入消息。所以,在开发这个程序时,您会注意到它对记事本很好,但对Winword不起作用。然后修复winword,然后发现它不适用于Qt应用程序。我绝对建议使用键盘布局
但也许这不是你想要做的;在这种情况下,忽略我所说的:这完全取决于您使用的键盘布局。某些键盘布局有死键,基本上允许组合键来产生更多字符 例如,我的`键本身不起任何作用,但按下`则会产生一个 在允许用户输入重音字符方面,实际上是由他们安装一个允许重音字符的键盘布局。您的应用程序不需要处理WM_dedchar;您只需处理
WM\u CHAR
在应用程序内部支持重音字符方面,只需确保您使用的是Unicode字符集和类型。例如wchar\u t
/wchar
,而不是char
值得一提的是,我相信在某个时刻我和你有着相同的目标。我创建了一个应用程序,它基本上模拟死键,并使用键盘挂钩生成重音字符。其优点是,无需安装键盘布局即可获得重音字符功能
但缺点更多。没有必要重新发明这个轮子。键盘布局功能惊人,所有这些输入字符的问题都已经解决了。您将很难翻译自己的消息以生成不同的字符。不同的应用在这方面有不同的要求,最终你需要完全模拟击键,以生成键盘状态结构和处理每个键盘/字符/输入消息。所以,在开发这个程序时,您会注意到它对记事本很好,但对Winword不起作用。然后修复winword,然后发现它不适用于Qt应用程序。我绝对建议使用键盘布局
但也许这不是你想要做的;在这种情况下,忽略我说的话:D非常感谢。但是,键盘布局是否可以成为应用程序的专用布局?我的意思是,是否有任何方法可以让我创建/自定义的键盘布局对我的应用程序保持独占性。因为如果我通过控制面板->区域和语言选项将其设置为我的键盘,那么重音字符的变化实际上会反映在我操作系统的所有应用程序上,如记事本等。我相信键盘布局是每个线程的,因此,是的,您的应用程序可以使用与系统上其他应用程序不同的键盘布局。API是
LoadKeyboardLayout
。但我相信键盘布局必须已经安装在系统上才能工作(通过控制面板或键盘布局安装程序),非常感谢Tenfour。但是,键盘布局是否可以成为应用程序的专用布局?我的意思是有一个