对不起,如果我像傻瓜一样错过任何事情,但我必须发送这个项目,我有一个问题
我已经在创建的句柄上注册了全局热键(编辑!!)
protected override void OnHandleCreated(EventArgs e)
{
base.OnHandleCreated(e);
RegisterHotKey(this.Handle, 1, 0x0000,0x70);
RegisterHotKey(this.Handle, 2, 0x0000,0x71);
RegisterHotKey(this.Handle, 3, 0x0000,0x72);
RegisterHotKey(this.Handle, 4, 0x0000,0x73);
RegisterHotKey(this.Handle, 5, 0x0000,0x74);
RegisterHotKey(this.Handle, 6, 0x0000,0x75);
RegisterHotKey(this.Handle, 7, 0x0000,0x76);
RegisterHotKey(this.Handle, 8, 0x0000,0x77);
RegisterHotKey(this.Handle, 9, 0x0000,0x78);
RegisterHotKey(this.Handle, 10, 0x0000,0x79);
RegisterHotKey(this.Handle, 11, 0x0000,0x7A);
RegisterHotKey(this.Handle, 12, 0x0000,0x7B);
RegisterHotKey(this.Handle, 13, 0x0002,0x45);
}
我的 button1 确实隐藏了表单并使托盘图标可见
void Button1Click(object sender, EventArgs e)
{
trayicon.Visible=true;
ShowInTaskbar=false;
this.Hide();
trayicon.ShowBalloonTip(2000,"Corrector is now minimized","Right click at check symbol to Exit or show and change hotkey",ToolTipIcon.Info);
}
我也有双击托盘图标后显示表格的功能
private void trayicon_DoubleClick(object Sender, EventArgs e)
{
this.Show();
Visible=true;
ShowInTaskbar=true;
}
现在的问题,我设置全局热键 13 退出程序。
1.我打开程序,按Ctrl+E(热键)>>>退出程序
2.我打开程序按下按钮1然后Ctrl+E>>>它没有退出程序
3.我打开程序,按下按钮1并双击图标,表格显示然后Ctrl+E>>>>退出程序
4.我打开程序,按下按钮 1 并双击图标,表格显示然后再次按下按钮 1 表格消失然后 Ctrl+E>>> 退出程序。
这就是为什么我很困惑,2 和 4 应该有相同的结果,但是在 4 上它确实有效,而在 2 上它不起作用
有人请帮助我
谢谢
普姆
编辑:!!
我的 Wndproc
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0312)
{
int id = m.WParam.ToInt32();
if(id==14)
{
Application.Exit();
}
if(id==13)
{
Application.Exit();
}
if(check2==0)
{
this.TopMost=true;
MessageBox.Show("กรุณาเลือกปุ่มที่จะใช้เเก้ก่อน,Select hotkey first","ข้อผิดพลาด",MessageBoxButtons.OK,MessageBoxIcon.Error);
this.TopMost=false;
}
if(id==check2)
{
translate();//You can replace this statement with your desired response to the Hotkey.
}
}
base.WndProc(ref m);
}