--- title: How to Create Static Controls description: The example in this section demonstrates how to create an animated static control. ms.assetid: D2DA38CB-360C-49EC-90BC-9AFA88C4B751 ms.topic: how-to ms.date: 05/31/2018 --- # How to Create Static Controls The example in this section demonstrates how to create an animated static control. ## What you need to know ### Technologies - [Windows Controls](window-controls.md) ### Prerequisites - C/C++ - Windows User Interface Programming ## Instructions ### Create a Static Control The following code example uses a timer and the [**STM\_SETICON**](stm-seticon.md) message to animate a static icon control in a dialog box. ```C++ #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); } ``` ## Remarks The identifier of the static icon control (IDI\_STATIC\_ICON) is defined in a global header file, and the icons are loaded from the application resources. ## Related topics