首页 高清影视 网上日记 致富经 展会 音乐生活 网址导航 在线游戏 网站建设 会员中心 注册 更多功能
您的位置:环球搜宝网 > 生活服务 > 个人备忘录
更新时间:2013/8/18 7:08:49 收藏
注册热键

//简单说明一下:
//“public static extern bool RegisterHotKey()”这个函数用于注册热键。由于这个函数需要引用user32.dll动态链接库后才能使用,并且
//user32.dll是非托管代码,不能用命名空间的方式直接引用,所以需要用“DllImport”进行引入后才能使用。于是在函数前面需要加上
//“[DllImport("user32.dll", SetLastError = true)]”这行语句。
//“public static extern bool UnregisterHotKey()”这个函数用于注销热键,同理也需要用DllImport引用user32.dll后才能使用。
//“public enum KeyModifiers{}”定义了一组枚举,将辅助键的数字代码直接表示为文字,以方便使用。这样在调用时我们不必记住每一个辅
//助键的代码而只需直接选择其名称即可。
//(2)以窗体FormA为例,介绍HotKey类的使用
//在FormA的Activate事件中注册热键,本例中注册Shift+S,Ctrl+Z,Alt+D这三个热键。这里的Id号可任意设置,但要保证不被重复。

private void Form_Activated(object sender, EventArgs e)
{
    //注册热键Shift+S,Id号为100。HotKey.KeyModifiers.Shift也可以直接使用数字4来表示。
    HotKey.RegisterHotKey(Handle, 100, HotKey.KeyModifiers.Shift, Keys.S);
    //注册热键Ctrl+B,Id号为101。HotKey.KeyModifiers.Ctrl也可以直接使用数字2来表示。
    HotKey.RegisterHotKey(Handle, 101, HotKey.KeyModifiers.Ctrl, Keys.B);
    //注册热键Alt+D,Id号为102。HotKey.KeyModifiers.Alt也可以直接使用数字1来表示。
    HotKey.RegisterHotKey(Handle, 102, HotKey.KeyModifiers.Alt, Keys.D);
}
//在FormA的Leave事件中注销热键。
private void FrmSale_Leave(object sender, EventArgs e)
{
    //注销Id号为100的热键设定
    HotKey.UnregisterHotKey(Handle, 100);
    //注销Id号为101的热键设定
    HotKey.UnregisterHotKey(Handle, 101);
    //注销Id号为102的热键设定
    HotKey.UnregisterHotKey(Handle, 102);
}

重载FromA中的WndProc函数
///
/// 监视Windows消息
/// 重载WndProc方法,用于实现热键响应
///
///
protected override void WndProc(ref Message m)
{

    const int WM_HOTKEY = 0x0312;
    //按快捷键
    switch (m.Msg)
    {
        case WM_HOTKEY:
            switch (m.WParam.ToInt32())
            {
                case 100:    //按下的是Shift+S
                    //此处填写快捷键响应代码
                    break;
                case 101:    //按下的是Ctrl+B
                    //此处填写快捷键响应代码
                    break;
                case 102:    //按下的是Alt+D
                    //此处填写快捷键响应代码
                    break;
            }
        break;
    }
    base.WndProc(ref m);
}

分享到:
如果此信息不合适,您也可以自己 发布一条信息 通过我们完成交易!
法律声明:本站只提供信息交流平台,各交易者自己审辨真假,如有损失,本站概不负责。
联络时请说明来自环球搜宝网,以获得更好效果。
人浏览发表评论()
评论内容:
验 证 码: 验证码看不清楚?请点击刷新验证码
匿名发表 
所有评论最新评论
正在加载用户数据... 正在加载店铺数据...
  • 会员价:¥1元
  • 联系人:独行侠
  • 联系电话:13675727672
  • QQ:195815482
  • 邮箱:yhf8866@foxmail.com
  • 联系地址:浙江省诸暨市
  • 发布者IP:115.199.255.9
Published at 2017/6/10 11:21:42, Powered By Buy8866 version buy8866.com 8.8.0(MSSQL)