在PeekMessage/TranslateMessage
的C ++应用中,您可以根据当前的IME调用WM_CHAR
消息,告诉您哪个字符已被按下。这样可以避免将键码转换为char码,这对非英语IME来说可能具有挑战性。
.NET窗口是否具有与WM_CHAR
Windows消息传递事件相同的功能?我能以某种方式获得它吗?显然我可以监听关键事件和convert keycodes to char codes,但它可能不像Windows内部执行它那样强大。
答案 0 :(得分:3)
您好像正在寻找KeyPress事件以及所提供的KeyChar实例的KeyPressEventArgs属性。
答案 1 :(得分:1)
最接近MFC
的方法是使用WndProc:
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_CHAR) //define WM_CHAR properly
{
}
base.WndProc(ref m);
}