zoukankan      html  css  js  c++  java
  • 修改Windows Mobile默认按键消息

    本文讲述了如何利用SHCMBM_OVERRIDEKEY来修改Windows Mobile默认按键消息的方法。

    问题来源:

    如何屏蔽talk (打电话的那个键)

    问题描述:

    在《利用HardwareButton操作Windows Mobile的硬件按钮》一文中,讲述了在.NET CF中,如何利用HardwareButton重写 Pocket PC 硬件按钮的功能。但是在某些情况下,用户希望对应的硬件按钮只为其应用程序服务,而不实施该硬件按钮的默认功能(如Talk按键)。

    解决方法:

    向窗口发送SHCMBM_OVERRIDEKEY消息,在WM_HOTKEY中进行处理。

    具体实施例:

    参考SDK自带的Sample,位于“Windows Mobile 6 SDK\Samples\Common\CPP\Win32\FullScreen”目录。该例子演示了如何在Windows Mobile上隐藏taskbarsoftkey,进行全屏显示。其中,退出全屏的功能,采用softkey按钮来实现。而具体的方式,就是向窗口发送SHCMBM_OVERRIDEKEY消息,在WM_HOTKEY中,加入用户自己的应用。以该工程为例,我们进行修改,加入“按Talk按键退出全屏”这个功能,而不弹出拨号界面。

     

    1. SetSoftkeyBarForFullScreen函数中,加入消息发送函数:

        // Override/Undo softkeys for key press notifications, so we can

        // display taskbar & softkeys on SK1/SK2 press in full screen.

        DWORD dwBits;

        dwBits = bFullScreen

                    ? SHMBOF_NODEFAULT | SHMBOF_NOTIFY

                    : 0;

        SendMessage(hwndSoftKeyBar,

                    SHCMBM_OVERRIDEKEY,

                    VK_TSOFT1,

                    MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, dwBits));

        SendMessage(hwndSoftKeyBar,

                    SHCMBM_OVERRIDEKEY,

                    VK_TSOFT2,

                    MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, dwBits));

         //加入的消息发送函数

         SendMessage(hwndSoftKeyBar,

                    SHCMBM_OVERRIDEKEY,

                    VK_TTALK,

                    MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, dwBits));

     

    2. CALLBACK DialogProc(…)函数的WM_HOTKEY中,加入VK_TTALK键的处理:

       case VK_TTALK:

            {

                 // if we are in full screen mode we want to exit

                 // when the user presses a softkey.

                 if (g_bFullScreen)

                 {   

                      SendMessage(GetDlgItem(hWnd,IDC_EDIT), WM_SETTEXT, 0, (LPARAM)L"[TALKkey] Exiting Full Screen");

                      FullScreen(hWnd, FALSE);

                  }

              }

       break;

    运行结果截屏

     

    参考链接:

    WM_HOTKEYhttp://msdn.microsoft.com/en-us/library/aa453868.aspx

    SHCMBM_OVERRIDEKEYhttp://msdn.microsoft.com/en-us/library/aa454997.aspx

     

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Python3简单的输入输出及内置函数查看
    Python绘制3d螺旋曲线图实例代码
    教女朋友学Python运行环境搭建
    初级模拟电路:3-4 共基放大电路(直流分析)
    初级模拟电路:3-3 共基组态
    初级模拟电路:3-2 BJT的工作原理
    初级模拟电路:3-1 BJT概述
    初级模拟电路:2-6 倍压电路
    初级模拟电路:2-5 钳位器
    初级模拟电路:2-4 限幅器
  • 原文地址:https://www.cnblogs.com/dearsj001/p/ModifyWMKey.html
Copyright © 2011-2022 走看看