技术与热点应用 您所在的位置:电子展览网 > 行业资讯 > 技术与热点应用 > 手机设计与制造

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,

第1页 第2页 第3页 

  面向 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,

第1页 第2页 第3页 

  接上页

  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;

第1页 第2页 第3页 

  接上页

  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;

  }

第1页 第2页 第3页 

分享到:
收藏 打印
相关新闻
  • 没有相关信息!