WEB开发网
开发学院手机开发Windows Mobile 开发 Windows mobile手机上窗体最小化后置icon在消息栏... 阅读

Windows mobile手机上窗体最小化后置icon在消息栏的处理

 2010-08-22 12:36:00 来源:WEB开发网   
核心提示:mobile手机上窗体最小化后置icon在消息栏的处理.现在终于真正的开始用vc来编程了.好多问题真是把我搞晕头了.最近在编程的过程中遇到了几个小问题,在不少朋友的帮助下总算是解决了.总结了一下,做了一个test demo.涉及到的几个知识点分别如下.1.窗体右上角的OK按钮变X.在mobile系统中,正常的情况下,o

mobile手机上窗体最小化后置icon在消息栏的处理.

现在终于真正的开始用vc来编程了.好多问题真是把我搞晕头了.最近在编程的过程中遇到了几个小问题,在不少朋友的帮助下总算是解决了.总结了一下,做了一个test demo.涉及到的几个知识点分别如下.

1.窗体右上角的OK按钮变X.在mobile系统中,正常的情况下,ok表示关闭,X表示最小化.默认情况下,窗体都是ok.点击即关闭.如果想让ok变成X,则在窗体初始化的时候加上这句话即可.

::SHDoneButton(m_hWnd,SHDB_HIDE);// 右上角按钮变成叉

ModifyStyle(m_hWnd,WS_CAPTION,WS_MINIMIZEBOX,SWP_NOSIZE); 从查到的资料上讲也需要第二句,但我没用也可以的.

2.截获窗体最小化消息.当ok变成X后,这时点击X就是把窗体最小化了.有时候我们想截获到这个最小化消息,进行某些处理.比如想实现点X关闭系统.那么就得截获这个消息,然后执行onok().或者最小化后,实现系统消息图标.(后面会讲到).这时就需要重载WindowProc函数了.

LRESULT CDemoDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)

{

// TODO: Add your specialized code here and/or call the base class

if(message == WM_SIZE)

{

if(wParam == SIZE_MINIMIZED)// we can get minsize message here

{

//OnOK();// if you want to exit by X button.

//hide window and show icon at information bar.

AddSHNotification();

this->ShowWindow(SW_HIDE);

CWnd * desthwnd = GetDesktopWindow();

::SetForegroundWindow(desthwnd->m_hWnd);

return 1;

}

}

return CDialog::WindowProc(message, wParam, lParam);

}

3.最小化到桌面的通知栏. 想实现最小化后,在通知栏出现一个图标,然后点击图标,重新激活程序.这个和mobile qq的功能差不多. 这就用到了AddSHNotification和SHNotificationRemove 等API. 无聊客的blog上关于这个讲的非常详细.可以去参考.我也是参考了他讲的内容.非常感谢无聊客.

4.横屏切换.大多数情况下,都是在onsize函数里重置控件的位置大小.其实可以做两个窗体界面,然后在横屏切换的时候,加载不通的窗体界面.

1 2  下一页

Tags:Windows mobile 手机

编辑录入:coldstar [复制链接] [打 印]
赞助商链接