Winforms 当其他窗口处于活动状态时,Visual Studio-Windows窗体应用程序中的快捷方式
我想在Windows窗体应用程序中使用快捷方式,并发现以下内容Winforms 当其他窗口处于活动状态时,Visual Studio-Windows窗体应用程序中的快捷方式,winforms,visual-studio,shortcuts,Winforms,Visual Studio,Shortcuts,我想在Windows窗体应用程序中使用快捷方式,并发现以下内容 但这仅在窗口处于活动状态时有效。即使其他窗口处于活动状态,如何使用快捷方式?您可以使用单个入口点以基本形式捕获和发送消息 基本表单 public class BaseForm : Form { public void MyMessage(hwnd:HWND) { ... case MSG_SPECIFIC_ACTION_1 : handled=this.DoOnSpecificAction
但这仅在窗口处于活动状态时有效。即使其他窗口处于活动状态,如何使用快捷方式?您可以使用单个入口点以基本形式捕获和发送消息 基本表单
public class BaseForm : Form
{
public void MyMessage(hwnd:HWND)
{
...
case MSG_SPECIFIC_ACTION_1 : handled=this.DoOnSpecificAction1();
...
}
protected bool DoOnSpecificAction1(){ return=false;}
}
基本形式后代
public class MyCustomForm : BaseForm
{
protected override bool DoOnSpecificAction1()
{
MessageBox.Show("Hello");
return true;
}
}
编辑-全局键盘挂钩
如果您希望捕获其他应用程序中的所有按键事件,则需要使用键盘挂钩。这是一篇很好的文章,介绍了如何使用
SetWindowsHookEx
您可以使用一个入口点来捕获和发送基本表单中的消息
基本表单
public class BaseForm : Form
{
public void MyMessage(hwnd:HWND)
{
...
case MSG_SPECIFIC_ACTION_1 : handled=this.DoOnSpecificAction1();
...
}
protected bool DoOnSpecificAction1(){ return=false;}
}
基本形式后代
public class MyCustomForm : BaseForm
{
protected override bool DoOnSpecificAction1()
{
MessageBox.Show("Hello");
return true;
}
}
编辑-全局键盘挂钩
如果您希望捕获其他应用程序中的所有按键事件,则需要使用键盘挂钩。这是一篇很好的文章,介绍了如何使用my head Of the top Of my head的
SetWindowsHookEx
。您可以使用继承,截取基本表单中的窗口消息,并从基本表单进行扩展。在my head Of head中,您可以使用继承,截取基本表单中的窗口消息,并从基本表单进行扩展使用继承和截获基础表单中的窗口消息,并从基础表单进行扩展。谢谢您的回答。我还不明白。但今天下午我会试试看是否能找到答案。我不明白为什么我需要视觉继承。活动窗口不是一个不同的Windows窗体应用程序,而是一个CAD软件。我想在处理3D模型时在第二个屏幕上显示不同的信息。我希望这能让事情变得更清楚:-以TS3为例,即使在游戏中,我也可以设置快捷方式并使用它们。请让我理解。另一个窗口是否在单独的应用程序中?是的,完全正确。这是我的问题谢谢你的回答。我还不明白。但今天下午我会试试看是否能找到答案。我不明白为什么我需要视觉继承。活动窗口不是一个不同的Windows窗体应用程序,而是一个CAD软件。我想在处理3D模型时在第二个屏幕上显示不同的信息。我希望这能让事情变得更清楚:-以TS3为例,即使在游戏中,我也可以设置快捷方式并使用它们。请让我理解。另一个窗口是否在单独的应用程序中?是的,完全正确。这是我的问题谢谢你的回答。我还不明白。但今天下午我会试试看是否能找到答案。我不明白为什么我需要视觉继承。活动窗口不是一个不同的Windows窗体应用程序,而是一个CAD软件。我想在处理3D模型时在第二个屏幕上显示不同的信息。我希望这能让事情变得更清楚:-以TS3为例,即使在游戏中,我也可以设置快捷方式并使用它们。请让我理解。另一个窗口是否在单独的应用程序中?是的,完全正确。那是我的问题