Artigo: 266244 - Última revisão: sexta-feira, 19 de Agosto de 2005 - Revisão: 4.2

Como criar aplicações de ecrã inteiro para o PocketPC

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sumário

A documentação claramente descreve como utilizar a API SHFullScreen numa aplicação de Win32 não - Microsoft Foundation Classes MFC para criar janelas de ecrã inteiro o PocketPC. No entanto, a documentação não descreve o mesmo procedimento para aplicações baseadas em MFC. Este artigo descreve como criar aplicações filtrada completo para o PocketPC utilizando a API do Win32 ou o MFC.

Mais Informação

Para aplicações que destino Windows CE, tornou popular para utilizar o máximo do ecrã dos dispositivos Palm tamanho mais pequenos possível. Nova interface de utilizador (UI, User Interface) da plataforma PocketPC requer mais trabalho para uma aplicação utilizar a área de ecrã inteiro.

Para compreender os comentários de exemplos de código no artigo, os novos termos PocketPC UI descritos:
  • A barra de tarefas está localizada na parte superior do ecrã, apresenta legendas de aplicação e atribui ao utilizador acesso para iniciar aplicações.
  • A barra de comandos, também conhecido como a barra de menus está localizada na parte inferior do ecrã.
  • O botão do painel de entrada de software (SIP) está localizado na barra de comandos, para o canto inferior direito do ecrã.
Para obter uma janela que utiliza tanto ecrã possível, a aplicação chamar SHFullScreen para ocultar estes elementos.

Nota : para criar caixas de diálogo ecrã inteiro, se a caixa de diálogo tiver quaisquer controlos com o conjunto de estilo WS_TABSTOP SHFullScreen não irá ocultar o botão SIP. Se notar que o botão SIP inesperadamente não pode estar oculta, consulte recursos de caixa de diálogo no editor de recursos e visualizar a caixa de diálogo de propriedades para cada um dos controlos. Verifique se a caixa de verificação Parar o separador não está seleccionada para todos os controlos.

Para uma aplicação Win32 simples que utiliza a função CreateWindow ou CreateWindowEx para a interface de utilizador principal, chamada SHFullScreen para ocultar os elementos da IU imposing para activar a cobertura total do ecrã inteiro, chamar a função ShowWindow para ocultar a barra de comandos da aplicação e, em seguida, ajustar o tamanho da janela, utilizando a função MoveWindow .

O código de exemplo abaixo ilustra este método. Este código foi adaptado do exemplo SHAPI Win32 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);  
				
Nota : Se pretender restaurar o tamanho original da aplicação, utilize SHFS_SHOWTASKBAR e SHFS_SHOWSIPBUTTON . No entanto, MoveWindow é chamado com o parâmetro inferior reduzido por duas vezes MENU_HEIGHT . Por exemplo:
      // 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);  
				
para uma caixa de diálogo de aplicação de Win32, a função SHInitDialog é utilizada no processador de para WM_INITDIALOG . SHInitDialog é utilizado em conjunto com a função SHFullScreen para ocultar os elementos da IU e obter uma caixa de diálogo de ecrã inteiro:
     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);
				
segue explica como efectuar tarefas semelhantes a partir do MFC aplicações. Existem dois tipos principais de MFC aplicações para Windows CE, baseado no diálogo e aplicações de suporte SDI ou/vista do documento. Para efectuar que demonstra o exemplo SHAPI Win32, tem de aceder membros de dados de classes MFC.

O seguinte ilustra o processo de tipo de aplicação/vista do documento. Este código é para um processador de comandos irá colocar a aplicação no modo de ecrã inteiro:
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);	
}
				
se uma caixa de diálogo estiver a ser apresentado para cobrir o ecrã inteiro, código semelhante é colocado no processador de OnInitDialog . Uma diferença é que a estrutura MFC para PocketPC cria uma barra de comandos vazia na CDialog que deve ser ocultada:
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;
}
				

A informação contida neste artigo aplica-se a:
  • Microsoft Office Keyboard nas seguintes plataformas
    • Microsoft Windows CE Platform SDK for Pocket PC
Palavras-chave: 
kbmt kbhowto KB266244 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 266244  (http://support.microsoft.com/kb/266244/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.