2017-04-23 69 views
-5

當我隱藏我的窗口時,圖的一部分被擦除。我使用COUT展現在我的代碼運行時,它似乎每一個功能被執行,但圖像沒有得到重繪WM_PAINT不重繪數字

case WM_PAINT:{ 
     hDC = BeginPaint(ventana,&ps); 
     FillRect(hDC,&ps.rcPaint,CreateSolidBrush(RGB(100,100,100))); 
     if(hDC){ 
      CreateFrame(300,200,100,50,&hDC,&ps); 
      EndPaint(ventana,&ps); 
     } 
     break; 
    } 

功能「CreateFrame」

int CreateFrame(long x,long y,long ancho,long alto,HDC* dc,PAINTSTRUCT* ps){ 
RECT rc; 
HBRUSH pincel = CreateSolidBrush(RGB(255,0,0)); 
rc.left = ps->rcPaint.left + x; 
rc.top = ps->rcPaint.top + y; 
rc.right = rc.left + ancho; 
rc.bottom = rc.top + alto; 

cout<<rc.left<<" - " << rc.top <<" - "<<rc.right<<" - "<<rc.bottom<<"\n"; 
if(FrameRect(*dc,&rc,pincel)){ 
    if(Ellipse(*dc,rc.left+10,rc.top+10,rc.left+20,rc.top+20)){ 
     cout<<"se dibujo elipse\n"; 
    } 
    cout<<"exito\n"; 
} 
DeleteObject(pincel); 
return 1; 

}

enter image description here

+3

你或許應該顯示繪製圖像的代碼。 –

回答

0

問題迎刃而解xdxd

int CreateFrame(long x,long y,long ancho,long alto,HDC* dc,PAINTSTRUCT* ps){ 
RECT rc; 
HBRUSH pincel = CreateSolidBrush(RGB(255,0,0)); 
rc.left = x; 
rc.top = y; 
rc.right = x + ancho; 
rc.bottom = y + alto; 

cout<<rc.left<<" - " << rc.top <<" - "<<rc.right<<" - "<<rc.bottom<<"\n"; 
if(FrameRect(*dc,&rc,pincel)){ 
    if(Ellipse(*dc,rc.left+10,rc.top+10,rc.left+20,rc.top+20)){ 
     cout<<"se dibujo elipse\n"; 
    } 
    cout<<"exito\n"; 
} 
DeleteObject(pincel); 
return 1; 

}