使用静态控件

【勇芳软件工作室】汉化HomePreviousNext

以下示例使用定时器和STM_SETIMAGE消息在对话框中为图标设置动画。图标处理和图标标识符(IDI_ICON)在全局头文件中定义。

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;

/ *加载图标(“hinst”全局定义)。*/

hiconOne = LoadIcon(hinst, "OneIco");

aIcons[i] = hiconOne;

hiconTwo = LoadIcon(hinst, "TwoIco");

aIcons[++i] = hiconTwo;

.

./ *继续剩下的图标。*/

.

i = 0;

/*

*使用STM_SETIMAGE将图标与

* IDI_ICON识别。

*/

SendDlgItemMessage(hDlg,/ *对话框窗口句柄* /

IDI_ICON,/ *图标标识符* /

STM_SETIMAGE,/ *短信发送* /

(WPARAM)IMAGE_ICON,/ *图像类型* /

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

/ *设置定时器为50毫秒的间隔。*/

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

return TRUE;

case WM_TIMER:

/*

*使用STM_SETIMAGE将新图标关联

*每当WM_TIMER时,IDI_ICON标识符

*消息被接收。

*/

SendDlgItemMessage(hDlg,/ *对话框窗口句柄* /

IDI_ICON,/ *图标标识符* /

STM_SETIMAGE,/ *短信发送* /

(WPARAM)IMAGE_ICON,/ *图像类型* /

(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);

.

./ *继续剩下的图标。*/

.

return 0;

}

return FALSE;

UNREFERENCED_PARAMETER(lParam);

}