Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico demonstra como criar dinamicamente um controle DTP (seletor de data e hora). O exemplo de código C++ fornecido cria um controle DTP numa caixa de diálogo sem modal. Ele usa o estilo DTS_SHOWNONE para permitir que o usuário simule a desativação da data dentro do controle.
O que precisa de saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
1º Passo:
Registre a classe de janela chamando a função InitCommonControlsEx e especificando o bit ICC_DATE_CLASSES na estrutura INITCOMMONCONTROLSEX que acompanha.
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(icex);
icex.dwICC = ICC_DATE_CLASSES;
InitCommonControlsEx(&icex);
2º Passo:
Para criar o controle DTP, use a função CreateWindowExde. Especifique DATETIMEPICK_CLASS como a classe de janela e passe o handle para a caixa de diálogo pai.
O exemplo de código C++ a seguir usa a função CreateDialog para criar uma caixa de diálogo sem moderação. Em seguida, ele chama CreateWindowEx para criar o controle DTP.
hwndDlg = CreateDialog (g_hinst,
MAKEINTRESOURCE(IDD_DIALOG1),
hwndMain,
DlgProc);
if(hwndDlg)
hwndDP = CreateWindowEx(0,
DATETIMEPICK_CLASS,
TEXT("DateTime"),
WS_BORDER|WS_CHILD|WS_VISIBLE|DTS_SHOWNONE,
20,50,220,20,
hwndDlg,
NULL,
g_hinst,
NULL);
Exemplo completo
// CreateDatePick creates a DTP control within a dialog box.
// Returns the handle to the new DTP control if successful, or NULL
// otherwise.
//
// hwndMain - The handle to the main window.
// g_hinst - global handle to the program instance.
HWND WINAPI CreateDatePick(HWND hwndMain)
{
HWND hwndDP = NULL;
HWND hwndDlg = NULL;
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(icex);
icex.dwICC = ICC_DATE_CLASSES;
InitCommonControlsEx(&icex);
hwndDlg = CreateDialog (g_hinst,
MAKEINTRESOURCE(IDD_DIALOG1),
hwndMain,
DlgProc);
if(hwndDlg)
hwndDP = CreateWindowEx(0,
DATETIMEPICK_CLASS,
TEXT("DateTime"),
WS_BORDER|WS_CHILD|WS_VISIBLE|DTS_SHOWNONE,
20,50,220,20,
hwndDlg,
NULL,
g_hinst,
NULL);
return (hwndDP);
}
Tópicos relacionados