空中-Opera3.0手机浏览器免费下载
诺基亚5220扩展功能设置攻略(手绘版)
8501
ppc数字智能手机i-mate 8501免费送 最新手机电影
发新话题
打印

[编程] 请问大虾,如何在程序中使用Palm的四个按钮?

请问大虾,如何在程序中使用Palm的四个按钮?

常看到有些软件(如VBOOK)能够重新定义Palm面板上的四个按钮,退出时又能恢复,请问各位大虾,如何在 CodeWarror中实现?

    在程序中单独处理四个按钮消息,把Handled改为true,这样系统就不会处理了。

里面是我写的,当参考.我用c++

头文件中:
EVENT_MAP_ENTRY(keyDownEvent, OnKey)
Boolean OnKey(EventPtr pEvent, Boolean& bHandled);

cpp中:
Boolean CQueryForm::OnKey(EventPtr pEvent, Boolean& bHandled)
{

if (pEvent->eType == keyDownEvent)
{
switch(pEvent->data.keyDown.chr)
{
case chrLeftArrow:

break;
case chrRightArrow:
       
break;
case chrUpArrow:

break;                                       
case chrDownArrow:       
                       
break;
}
bHandled=true;
return true;
}
每个case->break中间可以写你需要触发的事件内容
具体每个硬按钮对应的keycode请看系统带的chars.h文件

混在深圳
感谢楼上两位!

简单,用C++,在starter.cpp中写

Boolean KeyDownHandleEvent( EventPtr evt)
{
        Boolean                         handled=false;

        switch (evt->data.keyDown.chr)
        {
                case menuChr :            // Menu key -- allow for now
                    handled = false;
                  break;

                case launchChr :                                   
                          handled = false;
                          break;
               
                //soft key
                case calcChr :                // Calculator key
                case findChr :                // Find key
                        handled = true;
                        break ;       
                       
                // keyboard popup key
                case keyboardChr :                       
                case keyboardAlphaChr :
                case keyboardNumericChr :
                        handled = false;
                        break ;       
                //允许使用软键盘
                //hard key
                case hardCradleChr :    // HotSync cradle button
                        handled = true;
                        break ;       
                         
                case hard1Chr :          // Datebook hware button
                        handled = true;
                        break;       
                case hard2Chr :        // Addressbook hware button
                        handled = true;
                        break ;
                       
                case hard3Chr :         // ToDo hware button
                        handled = true;
                        break ;
                       
                case hard4Chr :        // MemoPad hware button
                         handled = true;
                         break ;
                //自定义消息,当按下按钮时
                case pageUpChr :        // Arrow up hardware button
                case pageDownChr :        // Arrow down hardware button
                         break;                               
                  
    }       
   
        return handled;
}

想系统不处理,把Handled改为true, 要处理的话自己在其中加代码

再把它放到事件循环的第一个处理就OK了
do {
                EvtGetEvent(&event, evtWaitForever);

                if (! KeyDownHandleEvent(&event))
                   if 别的处理事件 then                                                FrmDispatchEvent(&event);

        } while (event.eType != appStopEvent);

发新话题