C#相当于WM_CHAR按键事件?

时间:2013-03-29 08:48:32

标签: c# .net visual-c++ key keypress

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

.NET窗口是否具有与WM_CHAR Windows消息传递事件相同的功能?我能以某种方式获得它吗?显然我可以监听关键事件和convert keycodes to char codes,但它可能不像Windows内部执行它那样强大。

2 个答案:

答案 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);
}