Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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