Using Static Controls

The following example uses a timer and the STM_SETIMAGE message to animate an icon in a dialog box. The icon handles and the icon identifier (IDI_ICON) are defined in a global header file.

LRESULT APIENTRY StaticProc(hDlg, message, wParam, lParam)

HWND hDlg; /* window handle of dialog box */

UINT message; /* type of message */

UINT wParam; /* message-specific information */

LONG lParam;

{

UINT idTimer = 1;

static UINT i;

static HICON aIcons[11];

switch (message) {

case WM_INITDIALOG: /* initialize dialog box */

i = 0;

/* Load icons("hinst" is defined globally). */

hiconOne = LoadIcon(hinst, "OneIco");

aIcons[i] = hiconOne;

hiconTwo = LoadIcon(hinst, "TwoIco");

aIcons[++i] = hiconTwo;

.

. /* Continue with the remaining icons. */

.

i = 0;

/*

* Use STM_SETIMAGE to associate an icon with the

* IDI_ICON identifier.

*/

SendDlgItemMessage(hDlg, /* dialog box window handle */

IDI_ICON, /* icon identifier */

STM_SETIMAGE, /* message to send */

(WPARAM) IMAGE_ICON, /* image type */

(LPARAM) aIcons[i++]); /* icon handle */

/* Set a timer for 50-millisecond intervals. */

SetTimer(hDlg, idTimer, 50, (TIMERPROC) NULL);

return TRUE;

case WM_TIMER:

/*

* Use STM_SETIMAGE to associate a new icon with

* the IDI_ICON identifier whenever a WM_TIMER

* message is received.

*/

SendDlgItemMessage(hDlg, /* dialog box window handle */

IDI_ICON, /* icon identifier */

STM_SETIMAGE, /* message to send */

(WPARAM) IMAGE_ICON, /* image type */

(LPARAM) aIcons[i++]); /* new icon handle */

if (i == 10)

i = 0;

break;

case WM_COMMAND:

if (wParam == IDOK

|| wParam == IDCANCEL) {

EndDialog(hDlg, TRUE);

return TRUE;

}

return 0;

case WM_DESTROY: /* clean up */

KillTimer(hDlg, idTimer);

DeleteObject(hiconOne);

DeleteObject(hiconTwo);

.

. /* Continue with the remaining icons. */

.

return 0;

}

return FALSE;

UNREFERENCED_PARAMETER(lParam);

}

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database