注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

回首望星辰

See you in the next world

 
 
 

日志

 
 

mobile中OK键替换X键  

2009-03-12 15:08:46|  分类: 手机开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  vs2005用win32写界面程序,有个小问题,就是wm5.0上的X键一开始就生成了,并且代表最小化,而不是退出程序。所以想替换成OK键,直接关闭程序。

        在WM5.0右上角的有2种按钮,叉和OK,叉代表最小化,OK代表关闭。最小化程序会使得程序占用内存,没有释放内存,会使得系统越跑越慢。而WM5.0中提供的许多程序都是最小化。看了一些资料,主要围绕msdn查找。

WM_CLOSE对应于后台内存的关闭。

X键:smart monomoze button

OK键:done button

C#:

将最小化变为OK通过设置form的属性MinimizeBox,true为最小化按钮,false为OK按钮。

PPC可以修改,而Smartphone不可以,如果不添加menu中的事件来结束程序的话,那程序始终会以最小化方式保留在系统内部。

修改属性都是用于.NET   CF。

C++:

MFC

ok按钮

继承函数     afx_msg   void   OnOK();  
  重写  
  void   C****::OnOK()  
  {  
          //你的代码  
  }
  

X按钮

继承函数     afx_msg   void   OnCancel(); 
  重写  

void   ****::OnCancel()  
  {   
            //你的代码 
  }
  

 

win32

在WM_CREATE消息处理中加SHDoneButton(HWND,SHDB_SHOW);   ok按钮取代X按钮,

        case WM_CREATE:
                 SHDoneButton(hWnd,SHDB_SHOW);  

然后在WM_COMMAND中处理IDOK

        case WM_COMMAND:

                  {

                    case IDOK:
                              DestroyWindow (hWnd);
                               break;

                                   ~~~~

相反,SHDoneButton(hWnd,SHDB_SHOWCANCEL); 显示X键,case IDCANCEL: 对应消息。

 

 

 

其他(以下没做测试)

MFC

 

例如CDialog中,在OnOK里将CDialog::OnOK();注释可屏蔽OK   
CMainFrame::PreCreateWindow(CREATESTRUCT&   cs)

加cs.style   =  WS_NONAVDONEBUTTON;

或在OnInitDialog()中加ModifyStyle(0,   WS_NONAVDONEBUTTON,   SWP_NOSIZE);   可去掉

 

 

在OnInitDialog中加入  
  SHDoneButton(this->m_hWnd,SHDB_HIDE);     //hide   ok   button   in   upper   right  
  ::CommandBar_Show(this->m_hWnd,   FALSE);//hide   command   bar  

 

 

"OK"   按钮隐掉  
  SHDoneButton(AfxGetMainWnd()->m_hWnd,SHDB_HIDE);  
  "X"   按钮隐掉  
  ModifyStyle(AfxGetMainWnd()->m_hWnd,WS_CAPTION,WS_MINIMIZEBOX,SWP_NOSIZE);  

 

 

在Frame的   WM_CREATE   消息里使用    
          ModifyStyle(m_hWnd,   WS_CAPTION,   WS_MINIMIZEBOX,   SWP_NOSIZE);   
          去掉X 按钮   

在对话框的WM_INITDIALOG   消息里使用  
          ModifyStyle(m_hWnd,   WS_CAPTION,   WS_MINIMIZEBOX,   SWP_NOSIZE);  
          SHDoneButton(m_hWnd,   SHDB_HIDE);   
         
去掉OK按钮
OK按钮触发OnOK事件,  X 按钮触发OnCancel事件。   

  评论这张
 
阅读(576)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017