位图LOGO,该如何处理
位图LOGO
代码如下!装载的位图只是一闪而过,桌面做才能让他有几秒钟的等待啊??
各位大侠帮帮忙!!!
HDC hDc;//主绘图设备
HDC hMemDC;//内存绘图设备
HBITMAP hBitmap;//位图句柄
BITMAP bmp;//位图结构
bool RenderWeitu = false;//是否渲染位图
int Loadbar=12;//位图条滚动
case WM_PAINT:
{
PAINTSTRUCT ps;
hDc = BeginPaint( hwnd, &ps);
// TODO: 在此添加任意绘图代码...
if(RenderWeitu == false)
{
//装载位图
hDc = GetDC( hwnd );//取得当前窗口的绘图设备
hMemDC = CreateCompatibleDC(hDc);//创建和主绘图设备兼容的内存绘制设备
hBitmap = (HBITMAP)LoadImage(NULL, "load.bmp ",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//装载位图
SelectObject(hMemDC,hBitmap);//将位图选到内存设备
GetObject(hBitmap,sizeof(BITMAP),&bmp);//取得位图的宽和高
BitBlt(hDc,0,0,bmp.bmWidth,bmp.bmHeight,hMemDC,0,0,SRCCOPY);//将内存设备中的内容翻转到主绘图设备,完成位图显示
ReleaseDC( hwnd,hMemDC);//释放内存绘图设备
//MessageBox(NULL, "HAHA ", "HEIHEI ",MB_OK);
}
//装载位图
hDc=GetDC(hwnd);//取得当前窗口的绘图设备
hMemDC=CreateCompatibleDC(hDc);//创建和主绘图设备兼容的内存绘制设备
hBitmap=(HBITMAP)LoadImage(NULL, "laodbar.bmp ",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//装载位图
SelectObject(hMemDC,hBitmap);//将位图选到内存设备
GetObject(hBitmap,sizeof(BITMAP),&bmp);//取得位图的宽和高
MessageBox(NULL, "AA ", "BB ",MB_OK);
BitBlt(hDc,12,200,bmp.bmWidth,bmp.bmHeight,hMemDC,0,0,SRCCOPY);//将内存设备中的内容翻转到主绘图设备,完成位图显示
ReleaseDC(hwnd,hMemDC);//释放内存绘图设备
EndPaint(hwnd, &ps);
RenderWeitu=true;
break;
return 0;
}
------解决方案--------------------
显示位图之后别release,先SetTimer(hWnd,1,5000,NULL),然后在WM_TIMER里release
5000就是你要持续的秒数
代码如下!装载的位图只是一闪而过,桌面做才能让他有几秒钟的等待啊??
各位大侠帮帮忙!!!
HDC hDc;//主绘图设备
HDC hMemDC;//内存绘图设备
HBITMAP hBitmap;//位图句柄
BITMAP bmp;//位图结构
bool RenderWeitu = false;//是否渲染位图
int Loadbar=12;//位图条滚动
case WM_PAINT:
{
PAINTSTRUCT ps;
hDc = BeginPaint( hwnd, &ps);
// TODO: 在此添加任意绘图代码...
if(RenderWeitu == false)
{
//装载位图
hDc = GetDC( hwnd );//取得当前窗口的绘图设备
hMemDC = CreateCompatibleDC(hDc);//创建和主绘图设备兼容的内存绘制设备
hBitmap = (HBITMAP)LoadImage(NULL, "load.bmp ",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//装载位图
SelectObject(hMemDC,hBitmap);//将位图选到内存设备
GetObject(hBitmap,sizeof(BITMAP),&bmp);//取得位图的宽和高
BitBlt(hDc,0,0,bmp.bmWidth,bmp.bmHeight,hMemDC,0,0,SRCCOPY);//将内存设备中的内容翻转到主绘图设备,完成位图显示
ReleaseDC( hwnd,hMemDC);//释放内存绘图设备
//MessageBox(NULL, "HAHA ", "HEIHEI ",MB_OK);
}
//装载位图
hDc=GetDC(hwnd);//取得当前窗口的绘图设备
hMemDC=CreateCompatibleDC(hDc);//创建和主绘图设备兼容的内存绘制设备
hBitmap=(HBITMAP)LoadImage(NULL, "laodbar.bmp ",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//装载位图
SelectObject(hMemDC,hBitmap);//将位图选到内存设备
GetObject(hBitmap,sizeof(BITMAP),&bmp);//取得位图的宽和高
MessageBox(NULL, "AA ", "BB ",MB_OK);
BitBlt(hDc,12,200,bmp.bmWidth,bmp.bmHeight,hMemDC,0,0,SRCCOPY);//将内存设备中的内容翻转到主绘图设备,完成位图显示
ReleaseDC(hwnd,hMemDC);//释放内存绘图设备
EndPaint(hwnd, &ps);
RenderWeitu=true;
break;
return 0;
}
------解决方案--------------------
显示位图之后别release,先SetTimer(hWnd,1,5000,NULL),然后在WM_TIMER里release
5000就是你要持续的秒数