.请教大虾,关于图片刷新的问题.

来源:百度知道 编辑:UC知道 时间:2024/06/22 20:33:25
case WM_CREATE:
SPMP_ImgShowJPG(SPMP_JPG_BG_ATPWROFFSET,0,0);
break;

case WM_PAINT:
//SPMP_ImgShowJPG(SPMP_JPG_BG_ATPWROFFSET,0,0);
hdc = BeginPaint( hwnd, &ps );
SelectObject (hdc, GetSystemFontObject ());
EndPaint( hwnd, &ps );
break;

case WM_KEYUP:
sio_printf("\r\nWM_KEYUP ENTER.............\r\n");
//hdc = BeginPaint( hwnd, &ps );
hdc = BeginPaint( hwnd, &ps);
SelectObject (hdc, GetSystemFontObject ());
Show_Which_Key(hdc);
//SelectObject (hdc, GetSystemFontObject ());
//SPMP_ShowBMP1(hdc, SPMP_BMP_ICON_CIRCLE_KEYDOWN, 66, 151);//68, 150
EndPaint( hwnd, &ps );
//osTimeDly(500);
//SendMessage(hwnd, WM_PAINT,(WPARAM)NULL,(LPARAM)NULL);
//SPMP_Clear_2D_Buffer();
//hdc = BeginPaint( hwnd, &ps);
//EndP

程序中大部分是自定义函数,无法仔细分析。

BeginPaint等只能在WM_PAINT消息中使用,通过BeginPaint返回的HDC也只能在WM_PAINT中使用。
如果在其它地方譬如改程序的WM_KEYUP中想使用HDC,一般通过GetDC()、GetWindowDC()等获得,然后进行相关绘制。最后使用完毕,调用ReleaseDC()释放GetDC()获得的HDC句柄。