小问题——mobile中OK键替换X键

news/2025/3/14 21:49:56/

        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事件。   
 

 

 


 

 


http://www.ppmy.cn/news/659185.html

相关文章

PolarDB-X 拆分键推荐

前言 PolarDB-X2.0提供了透明分布式的能力,默认进行主键拆分,让用户无感知的从单机数据库迁移到分布式数据库。拆分键的选择是学术界和工业界研究已久的问题,一个重要选型是tp优先还是ap优先,两者难以同时兼顾。tp优先[1]的目的是…

cocos2d-x 游戏暂停界面,监听home键,返回键,Menu键 解决方案

游戏暂停界面: cocos2d-x中游戏暂停界面提供的思路是用pushScene()和popScne(),即推进和弹出场景,当游戏暂停时,推进(pushScene())暂停场景,之前运行的场景将会自动暂停,然后我们可以在暂停场景中操作,如Resume&#…

Mac OS X 键盘快捷键 --- 很全面

OS X 键盘快捷键 键盘快捷键是通过按下键盘上的组合键来调用 OS X 功能的一种方式。了解有关常见 OS X 键盘快捷键的信息。 若要使用键盘快捷键,您可以同时按修饰键和字符键。例如,按下 Command 键(标有 符号的按键)和“c”键…

如何替换windows mobile系统的X键

首先了解一下Windows mobile系统中右上角的系统按键,有两种,即OK键和X键,点击OK键即退出应用程序,点击X键最小化应用程序,通常我们希望程序中使用OK键来关闭应用释放内存。 笔者在开发应用程序中就遇到使用MFC来开发W…

x+=x-=x*x; 和 x-=x*x; x+=x;

2019独角兽企业重金招聘Python工程师标准>>> 原问题: 第一种情况: int x6; 问执行下列语句后x的值 xx-x*x; 这个答案是-24。 首先明确一点赋值操作从右向左进行,而且这是一次赋值。 (一次赋值就是这是一个式子&#xf…

cocos2d-x中添加Enter键和方向键按键响应

最近有个机顶盒项目,需要用到遥控器的方向键在游戏中控制方向。 如果是一般Android设备、iOS设备或Win32平台,cocos2d-x提供了“CCAccelerometer”类,可用于游戏控制UI。但由于机顶盒在使用过程中是使用遥控器与玩家交互,而遥控器…

OS X 键盘快捷键

键盘快捷键是通过按下键盘上的组合键来调用 OS X 功能的一种方式。了解有关常见 OS X 键盘快捷键的信息。 若要使用键盘快捷键,您可以同时按修饰键和字符键。例如,按下 Command 键(标有 符号的按键)和“c”键会将当前选中的任何内…

Mac OS X 键盘快捷键

要使用键盘快捷键或组合键,您可以同时按修饰键和字符键。例如,同时按下 Command 键(标有 符号的按键)和“c”键会将当前选中的任何内容(文本、图形等等)拷贝至夹纸板。这也称作 Command-C 组合键&#xff…