随笔-148  评论-1050  文章-1  trackbacks-4

修改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

 

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2010-03-12 14:27 施炯 阅读(1681) 评论(2) 编辑 收藏

评论:
#1楼 2010-03-12 18:03 | 李森 - listen      
To 施炯:
终于又见你的博文了
等了好久了,呵呵

你的物联网的课题呢?

 回复 引用 查看   
#2楼 2010-03-13 12:56 | 啊黄      
学习,学习!
 回复 引用 查看   
Locations of visitors to this page
欢迎访问施炯的技术博客,这是一个专注于移动开发的平台,致力于Windows Phone、Windows Mobile和Windows Embedded CE应用开发。

MVP
我的MVP配置


Get Microsoft Silverlight
昵称:施炯
园龄:3年4个月
粉丝:97
关注:13
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

常用链接

最新随笔

我的标签

随笔档案(148)

文章档案(1)

Microsoft Most Professional

Mobile Blogs

Mobile Portal

MSDN Blogs

MVPs' Blogs

My Blog

My Portal

Windows Phone

积分与排名

  • 积分 - 262794
  • 排名 - 283

最新评论

阅读排行榜

评论排行榜

推荐排行榜