1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
case WM_PAINT:
if(detailed<0){
for (int i=0;i<PanelCount;i++)
if (monitors[i]->IsMyHWND(MsghWnd)){
hdc=BeginPaint(monitors[i]->GetHWND(),&ps);
GetClientRect(monitors[i]->GetHWND(),&rect);
compatDC=CreateCompatibleDC(hdc);
compatBitmap=CreateCompatibleBitmap(hdc,rect.right,rect.bottom);
oldBitmap=SelectObject(compatDC,compatBitmap);
if (i%2==0)
FillRect(compatDC,&rect,brush1);
else
FillRect(compatDC,&rect,brush2);
monitors[i]->Paint(compatDC);
BitBlt(hdc,0,0,rect.right,rect.bottom,compatDC,0,0,SRCCOPY);
SelectObject(compatDC,oldBitmap);
DeleteObject(compatBitmap);
DeleteDC(compatDC);
EndPaint(monitors[i]->GetHWND(),&ps);
}
}else{
hdc=BeginPaint(DetailPanel,&ps);
GetClientRect(DetailPanel,&rect);
compatDC=CreateCompatibleDC(hdc);
compatBitmap=CreateCompatibleBitmap(hdc,rect.right,rect.bottom);
oldBitmap=SelectObject(compatDC,compatBitmap);
FillRect(compatDC,&rect,brush1);
monitors[detailed]->Paint(compatDC);
BitBlt(hdc,0,0,rect.right,rect.bottom,compatDC,0,0,SRCCOPY);
SelectObject(compatDC,oldBitmap);
DeleteObject(compatBitmap);
DeleteDC(compatDC);
EndPaint(DetailPanel,&ps);
}
|