0

在 C++ 应用程序中,PeekMessage/TranslateMessage您可以调用WM_CHAR消息,告诉您根据当前 IME 按下了哪个字符。这使您免于将键码转换为字符码,这对于非英语 IME 来说可能具有挑战性。

.NET 窗口是否具有与WM_CHARwindows 消息事件等效的功能?我能以某种方式获得它吗?显然,我可以监听关键事件并将键码转换为字符码,但它可能不如 windows 在内部执行它那么健壮。

4

2 回答 2

3

您似乎正在寻找KeyPress事件,以及提供的KeyPressEventArgs实例的KeyChar属性。

于 2013-03-29T08:52:47.860 回答
1

最接近的方法MFC是使用 WndProc:

protected override void WndProc(ref Message m)
{

    if (m.Msg == WM_CHAR) //define WM_CHAR properly 
    {

    }
    base.WndProc(ref m);
}
于 2013-03-29T08:52:49.710 回答