在窗口的WM_PAINT中,如何刷一幅bmp图片进去?
case WM_PAINT:
{
hDC=BeginPaint(hWnd, &PtStr);
//这里如何载入一幅图片,并刷在窗口上?
TextOut(hDC, 400, 200, "Hello world!", 12);
EndPaint(hWnd,&PtStr);
return 0;
}
[解决办法]
bitblt
http://blog.csdn.net/bberdong/article/details/6934270
[解决办法]
一样的。。。
[解决办法]
PAINTSTRUCT ps;
BeginPaint( hwnd , &ps );
RECT rc;
GetClientRect(hwnd ,&rc);
if (IsStart)
{
g_GameUI.Draw(hwnd,ps,rc);
}
if(g_IsSucc == 1
[解决办法]
g_IsSucc==2)
{
//KillTimer(hwnd,1);
switch(g_IsSucc)
{
case 1:
IsStart = g_GameUI.Init(hwnd);
g_barrier++;
g_EnemyTankSum = 12;
g_IsSucc = 3;
break;//win
case 2:
{
Sleep(1000);
PICTURE pic;
//CGraphics g;
pic.m_bitmap.Create(L".\\graphics\\gameover.bmp",ps);
g_GameUI.m_graphics.Create(hwnd,ps,rc);
g_GameUI.m_graphics.PreDraw(rc);//为什么要清屏呢?
POINT pos = {100,100};
POINT logpos = {0,0};
g_GameUI.m_graphics.Draw(pic.m_bitmap,pos,248,160,logpos);
g_GameUI.m_graphics.Flush(ps,rc);
g_GameUI.m_graphics.AfterFlush(pic.m_bitmap);
g_GameUI.m_graphics.Destroy();
pic.m_bitmap.Destroy();
g_IsSucc = 3;
}
break; //lose;
}
}
EndPaint(hwnd,&ps);//没有加
看我的下载资源 坦克大战
[解决办法]
不是复杂
1.载入图片
2.bitblt显示图片
[解决办法]
HDC hdcMem = CreateCompatibleDC(hDC);
用双缓冲么
都没有创见内存图片
[解决办法]
http://blog.csdn.net/xsc2001/article/details/5378601
[解决办法]
移动会闪屏
还是会接触双缓冲的
恭喜你了!
[解决办法]
移动图片!!
[解决办法]
BitBlt(hDC,0,0,200,200,hMemDC,0,0,SRCCOPY);
更改这里的值 在onmousemove里面
BitBlt(hDC,point.x,point.y,200,200,hMemDC,0,0,SRCCOPY);
[解决办法]
画图片就是BitBlt,自己封装一个函数吧
1、部分画图
void CopyBitmap(HDC hDC,HBITMAP hBitmap,long x,long y,long x1,long y1,long Width,long Height)
{
HDC dcMem=CreateCompatibleDC(hDC);
HGDIOBJ oldBmp=SelectObject(dcMem,hBitmap);
BitBlt(hDC,x,y,Width,Height,dcMem,x1,y1,SRCCOPY);
SelectObject(dcMem,oldBmp);
DeleteDC(dcMem);
}
2、画整张图
void CopyFullBitmap(HDC hDC,HBITMAP hBitmap,long x,long y,long Width,long Height)
{
HDC dcMem=CreateCompatibleDC(hDC);
HGDIOBJ oldBmp=SelectObject(dcMem,hBitmap);
BitBlt(hDC,x,y,Width,Height,dcMem,0,0,SRCCOPY);
SelectObject(dcMem,oldBmp);
DeleteDC(dcMem);
}