[완료]win32 API 배경이 깜빡거려요 ㅜㅜ
API하는데요
일단
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
MemDC=CreateCompatibleDC(hdc);
if(g_nState == 1)
{
OldBitmap=(HBITMAP)SelectObject(MemDC, g_background);
GetObject(g_background,sizeof(BITMAP),&bit);
BitBlt(hdc, 0, 0, 800, 600, MemDC,0,0,SRCCOPY); //배경을 그리는데 실행해보면 배경이 자꾸깜빡깜빡 거림
OldBitmap=(HBITMAP)SelectObject(MemDC, g_BITMAP);
GetObject(g_BITMAP,sizeof(BITMAP),&bit); // 배경위에 돌아다니는 몬스터들임
// 전체 출력
for(int i=0;i < MAX_COUNT;i++)
{
if(g_Bug[i].nState == RUN)
{
BitBlt(hdc,0+g_Bug[i].ptPoint.x,0+g_Bug[i].ptPoint.y,60+g_Bug[i].ptPoint.x,60+g_Bug[i].ptPoint.y,MemDC,0,0,SRCCOPY); //몬스터들의 현위치만 계속 그림
}
}
DrawIconEx( hdc , mouse.x-16 , mouse.y-16 , g_hCur , 32,32 ,0,0,DI_NORMAL); //마우스커서(깜빡거림)
}
SelectObject(MemDC,OldBitmap);
DeleteDC(MemDC);
EndPaint(hWnd, &ps);
return 0;
WM_PAINT 부분만 따로올렸는데요
배경이 자꾸 깜빡깜빡 거리는데
해결좀 해주실수없나요
어떻해 고쳐야하나요
http://ko.lmgtfy.com/?q=flick
http://ko.lmgtfy.com/?q=flicker+wm_paint
RET ;My life :P
로직을 이해해야죠.
간단하게 의사코드로 정리해보면
1.바탕을 그린다.
2.몬스터를 그린다.
1로 다시 가서 작업
이런 로직이면 바탕을 그릴때마다 몬스터가 지워지면서 깜빡이거나
바탕이 흰색이 아닌경우 바탕을 그릴때마다 깜박입니다.
위에 코드로 봐서 편한방법은 memdc에다가 몬스터를 그리고 막판에
"BitBlt(hdc, 0, 0, 800, 600, MemDC,0,0,SRCCOPY); //배경을 그리는데 실행해보면 배경이 자꾸깜빡깜빡 거림"
이코드를 실행하세요.
댓글 달기