16,550
社区成员
发帖
与我相关
我的任务
分享
CPaintDC dc(this);
CRect clientRect;
GetClientRect( &clientRect );
CDC MemDC;
CBitmap Membitmap;
Membitmap.CreateCompatibleBitmap( &dc, clientRect.Width(), clientRect.Height() );
MemDC.CreateCompatibleDC( &dc );
CBitmap *pOldBitmap = MemDC.SelectObject( &Membitmap );
MemDC.FillSolidRect( 0, 0, clientRect.Width(), clientRect.Height(), RGB( 255, 255, 255 ) );
MemDC.Ellipse( &clientRect ); //记住 画图时候用 CDC MemDC; 即先在CDC上画 之后拷贝上去
for (int i = 0 ; i < NUM_WIDTH;i++)
{
for (int j = 0; j < NUM_HEIGHT ; j++)
{
if(m_status[i][j] == 0)
{
CRect rect = ChangePositionToRect(i,j);
MemDC.Draw3dRect(&rect,RGB(0,0,0),RGB(0,0,0));
}
}
}
dc.BitBlt( 0, 0, clientRect.Width(), clientRect.Height(), &MemDC, 0, 0, SRCCOPY );
MemDC.DeleteDC();
Membitmap.DeleteObject();
CDialog::OnPaint();
CRect clientRect;
CDC *MemDC = NULL;
CBitmap Membitmap;
void CAaaDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this); // device context for painting
if( NULL == MemDC )
{
MemDC = new CDC;
MemDC->CreateCompatibleDC( &dc );
GetClientRect( &clientRect );
Membitmap.CreateCompatibleBitmap( &dc, clientRect.Width(), clientRect.Height() );
CBitmap *pOldBitmap = MemDC->SelectObject( &Membitmap );
MemDC->FillSolidRect( 0, 0, clientRect.Width(), clientRect.Height(), RGB( 255, 255, 255 ) );
MemDC->Ellipse( &clientRect ); //记住 画图时候用 CDC MemDC; 即先在CDC上画 之后拷贝上去
int i;
for( i = 0; i < 1000; i += 10 )
{
MemDC->MoveTo( i, 0 );
MemDC->LineTo( i, 1000 );
}
for( i = 0; i < 1000; i += 10 )
{
MemDC->MoveTo( 0, i );
MemDC->LineTo( 1000, i );
}
}
dc.BitBlt( 0, 0, clientRect.Width(), clientRect.Height(), MemDC, 0, 0, SRCCOPY );
CDialog::OnPaint();
}
}