Erstellen statischer Steuerelemente
Im Beispiel in diesem Abschnitt wird veranschaulicht, wie ein animiertes statisches Steuerelement erstellt wird.
Wichtige Informationen
Technologien
Voraussetzungen
- C/C++
- Programmierung der Windows-Benutzeroberfläche
Anweisungen
Erstellen eines statischen Steuerelements
Im folgenden Codebeispiel werden ein Timer und die STM_SETICON Nachricht verwendet, um ein statisches Symbolsteuerelement in einem Dialogfeld zu animieren.
#define MAXICONS 3
#define HALF_SECOND 500
INT_PTR CALLBACK StaticDlgProc(HWND hDlg, UINT message, WPARAM wParam,
LPARAM lParam)
{
static HICON aIcons[MAXICONS];
static UINT i = 0;
static UINT idTimer = 1;
switch (message)
{
case WM_INITDIALOG:
// Load the icon resources. g_hInst is the global instance handle.
aIcons[i] = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON1));
aIcons[++i] = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON2));
aIcons[++i] = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON3));
// Reset the array index.
i = 0;
// Set a timer.
SetTimer(hDlg, idTimer, HALF_SECOND, (TIMERPROC) NULL);
return TRUE;
case WM_TIMER:
// Use STM_SETICON to associate a new icon with the static icon
// control whenever a WM_TIMER message is received.
SendDlgItemMessage(hDlg, IDC_STATIC_ICON, STM_SETICON,
(WPARAM) aIcons[i], 0);
// Reset the array index, if necessary.
if (++i == MAXICONS)
i = 0;
return 0;
case WM_COMMAND:
if (wParam == IDOK
|| wParam == IDCANCEL)
{
EndDialog(hDlg, TRUE);
}
return TRUE;
case WM_DESTROY:
KillTimer(hDlg, idTimer);
// Note that it is not necessary to call DestroyIcon here. LoadIcon
// obtains a shared icon, which is valid as long as the module from
// which it was loaded is in memory.
return 0;
}
return FALSE;
UNREFERENCED_PARAMETER(lParam);
}
Bemerkungen
Der Bezeichner des Steuerelements für statische Symbole (IDI_STATIC_ICON) wird in einer globalen Headerdatei definiert, und die Symbole werden aus den Anwendungsressourcen geladen.
Zugehörige Themen