如何使用WndProc捕获ESC KeyPress?
答案 0 :(得分:4)
另一种选择(表格):
protected override bool ProcessKeyPreview(ref System.Windows.Forms.Message m)
{
int VK_ESCAPE = 27;
if (m.Msg == Win32Constants.WM_KEYDOWN && (int)m.WParam == VK_ESCAPE)
{
// ...
}
return base.ProcessKeyPreview(ref m);
}
答案 1 :(得分:3)
你为什么这样做?为什么不将表单的PreviewKey
属性设置为true
并为KeyUp
设置一个全局事件处理程序并检查它...
if (e.KeyCode == Keys.Esc){ //... }
答案 2 :(得分:0)
您需要抓住WM_CHAR
消息并检查WParam
。
答案 3 :(得分:0)
(msg == WM_KEYDOWN)&& (wParam == VK_ESCAPE)...操作它是c#...抱歉,这是win32 api方式