标题
如何创建在 PocketPC 全屏幕应用程序[来自微软]
clq
浏览(0) +
2009-03-22 13:27:00 发表
编辑
关键字:
如何创建在 PocketPC 全屏幕应用程序[来自微软] http://support.microsoft.com/kb/266244/zh-cn -------------------------------------------------- 如何创建在 PocketPC 全屏幕应用程序 机器翻译查看机器翻译免责声明 Retired KB Article不再更新的 KB 内容免责声明 察看本文应用于的产品 展开全部 | 关闭全部 概要 文档清楚地描述如何使用非 Microsoft 基础类 MFC Win 32 应用程序中创建在 PocketPC 全屏窗口的 SHFullScreen AP... 文档清楚地描述如何使用非 Microsoft 基础类 MFC Win 32 应用程序中创建在 PocketPC 全屏窗口的 SHFullScreen API。 但是,文档不会介绍基于 MFC 的应用程序相同的过程。 本文介绍如何使用 Win32 API 或 MFC 进行全屏蔽,PocketPC 应用程序。 更多信息 面向 Windows CE 的应用程序,已成为流行尽可能使用作为许多较小的 Palm 大小设备的屏幕。 新的用户界面 (UI) PocketPC 平台的需要应... 面向 Windows CE 的应用程序,已成为流行尽可能使用作为许多较小的 Palm 大小设备的屏幕。 新的用户界面 (UI) PocketPC 平台的需要应用程序使用整个屏幕区域的其他工作。 要了解文章中的代码示例中的注释,描述新的 PocketPC UI 术语: * 任务栏位于屏幕顶部、 显示应用程序标题,和启动应用程序的用户访问。 * 命令栏,也称为菜单栏位于屏幕的底部。 * 软输入的面板 (SIP) 按钮位于命令栏的在屏幕的右下角。 若要获得尽可能使用尽可能屏幕的窗口,应用程序调用 SHFullScreen 若要隐藏这些元素。 注意 : 进行全屏,在对话框具有 WS_TABSTOP 样式集的任何控件的对话框 SHFullScreen 不会隐藏 SIP 按钮。 如果您注意到 SIP 按钮意外无法隐藏,请参阅对话框框资源在资源编辑器中,并为每个控件中查看属性对话框。 确认 选项卡停止 复选框没有选中的所有控件。 为普通的 Win 32 应用程序,可以使用 CreateWindow 或 CreateWindowEx 函数其主要的 UI 调用隐藏 imposing 的 UI 元素,能够完成的全屏覆盖率 SHFullScreen 调用若要隐藏应用程序的命令栏, ShowWindow 函数,然后通过使用 MoveWindow 函数中调整窗口的大小。 在下面的示例代码说明了此方法。 此代码已被从 SHAPI Win 32 Pocket PC SDK 示例适应。 #define MENU_HEIGHT 26 RECT rc; //get window size GetWindowRect(hWnd, &rc); SHFullScreen(hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON); ShowWindow(hwndCB, SW_HIDE); MoveWindow(hWnd, rc.left, rc.top-MENU_HEIGHT, rc.right, rc.bottom+MENU_HEIGHT, TRUE); 注意 : 如果要还原应用程序的原始尺寸,使用 SHFS_SHOWTASKBAR 和 SHFS_SHOWSIPBUTTON 。 但是, MoveWindow 被调用两次 MENU_HEIGHT 通过减少在底部参数。 例如: // Code to revert back to not full-screen: RECT rc; GetWindowRect(hWnd, &rc); SHFullScreen(hWnd, SHFS_SHOWTASKBAR | SHFS_SHOWSIPBUTTON); ShowWindow(hwndCB, SW_SHOW); MoveWindow(hWnd, rc.left, rc.top+MENU_HEIGHT, rc.right, rc.bottom-(2*MENU_HEIGHT), TRUE); 一个 Win 32 应用程序对话框 SHInitDialog 函数中使用该处理程序 WM_INITDIALOG 。 SHInitDialog 与 SHFullScreen 函数结合使用隐藏用户界面元素来实现一个的全屏对话框: case WM_INITDIALOG: #define MENU_HEIGHT 26 SHINITDLGINFO shidi; RECT rc; shidi.hDlg = hDlg; shidi.dwMask = SHIDIM_FLAGS; shidi.dwFlags = SHIDIF_FULLSCREENNOMENUBAR; SHInitDialog(&shidi); GetWindowRect(hDlg, &rc); MoveWindow(hDlg, rc.left, rc.top-MENU_HEIGHT, rc.right, rc.bottom, TRUE); SetForegroundWindow(hDlg); SHFullScreen(hDlg, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON); -以下介绍如何执行相似任务,从 MFC 应用程序中的。 有用于 Windows CE,基于对话框的 MFC 应用程序和 SDI 或文档 / 视图支持应用程序的两个主要类型。 要完成 SHAPI Win 32 示例演示的了,您必须访问 MFC 类数据的成员。 下面说明了文档 / 视图类型应用程序的过程。 此代码是在全屏幕模式下将使应用程序的一个命令处理: void CMainFrame::OnFullscreen() { #define MENU_HEIGHT 26 RECT rc; //get window size GetWindowRect(&rc); ::SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON); ::ShowWindow(this->m_hCommandBar, SW_HIDE); MoveWindow(rc.left, rc.top-MENU_HEIGHT, rc.right, rc.bottom+MENU_HEIGHT, TRUE); } 如果一个对话框以覆盖整个屏幕显示,类似的代码位于 OnInitDialog 处理程序中。 一个差异是 MFC 框架的 PocketPC 在必须隐藏的 CDialog 中创建一个空的命令栏: BOOL CMfctest2Dlg::OnInitDialog() { m_bFullScreen = FALSE; CDialog::OnInitDialog(); // Call SHInitDialog with flags for full screen. SHINITDLGINFO shidi; shidi.dwMask = SHIDIM_FLAGS; shidi.dwFlags = SHIDIF_FULLSCREENNOMENUBAR; shidi.hDlg = m_hWnd; SHInitDialog(&shidi); // Set the icon for this dialog box. The framework does this automatically // when the application's main window is not a dialog box. SetIcon(m_hIcon, TRUE); // Set big icon. SetIcon(m_hIcon, FALSE); // Set small icon. // TODO: Add extra initialization here. ::CommandBar_Show(m_pWndEmptyCB->m_hWnd, FALSE); // SHFullScreen fails if dialog box is not foreground. SetForegroundWindow(); SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON); // Resize the window over the taskbar area. #define MENU_HEIGHT 26 RECT rect; GetWindowRect(&rect); rect.top -= MENU_HEIGHT; MoveWindow(&rect, TRUE); return TRUE; } 这篇文章中的信息适用于: * Microsoft Office Keyboard 当用于 o Microsoft Windows CE Platform SDK for Pocket PC 回到顶端 关键字: kbmt kbhowto KB266244 KbMtzh 机器翻译机器翻译 注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。如果您发现了错误并希望帮助我们提高机器翻译技术,请完成文章末尾的在线调查。 点击这里察看该文章的英文版: 266244 (http://support.microsoft.com/kb/266244/en-us/ ) 回到顶端 Microsoft 和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。 Retired KB Article不再更新的 KB 内容免责声明 本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.