查看完整版本: [-- OnMessage事件中如何捕获键盘按键? --]

APlayer 开发者论坛 -> APlayer 讨论区 -> OnMessage事件中如何捕获键盘按键? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

shigx 2023-09-03 23:29

OnMessage事件中如何捕获键盘按键?

官方帮助文档中指出OnMessage事件中可以捕获“视频区域引发鼠标操作或者当 APlayer 视频区域拥有焦点时引发键盘操作”,但是只给出了鼠标示例。
我想捕获键盘按键,比如“空格键”,请问管理员老师或者其他各位大佬,该如何写代码呢?我试了一下,没有成功,恳请大家指教,谢谢!

aplayer 2023-09-15 18:31
    switch(uMsg)
    {
    case WM_KEYDOWN:
        {
            switch(LOWORD(wParam))
            {
             case 'a':
             case 'A':    // A 键
                    break;
             case ' ' // 空格键
                    // 你的处理代码
                    break;
              }
        }
}


shigx 2023-09-16 18:21
感谢管理员老师!这个问题已经解决了,原因是我踩了一个坑,这里贴出来供大家参考。

问题:当初我只能捕获到鼠标事件,但是键盘事件无论如何都捕获不到,根本就是不进入OnMessage事件中。我的开发语言是C#。

原因:我在axPayer1控件的左下角叠加了一个label控件,用于显示“正在打开...”、“暂停”、“缓冲中...”等信息,并且设置了label1.parent=axPlayer1。问题就在这个parent属性的上,我设置这个的目的是为了让label一直处于axPlayer控件的上层,避免被axPlayer1遮盖。但这样一来,axPlayer1永远获得不了焦点,哪怕axPlayr1.Focus()也不行,从而导致无法捕获键盘事件。

shigx 2023-09-16 18:22
感谢管理员老师!这个问题已经解决了,原因是我踩了一个坑,这里贴出来供大家参考。

问题:当初我只能捕获到鼠标事件,但是键盘事件无论如何都捕获不到,根本就是不进入OnMessage事件中。我的开发语言是C#。

原因:我在axPayer1控件的左下角叠加了一个label控件,用于显示“正在打开...”、“暂停”、“缓冲中...”等信息,并且设置了label1.parent=axPlayer1。问题就在这个parent属性的上,我设置这个的目的是为了让label一直处于axPlayer控件的上层,避免被axPlayer1遮盖。但这样一来,axPlayer1永远获得不了焦点,哪怕axPlayr1.Focus()也不行,从而导致无法捕获键盘事件。


查看完整版本: [-- OnMessage事件中如何捕获键盘按键? --] [-- top --]


Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.006604 second(s),query:0 Gzip enabled