通知
すべてクリア
Topic starter
2007年8月17日 8:50 AM
VC++ 6.0 WindowsXP
下記のプログラムを繰り返すと、コミットチャージが増加してしまいます。
どうやらCreateCompatibleDC()がうまく破棄できないことが原因のようです。
ためしに、この行をコメントアウトすると同現象は起きません。
どなたかアドバイスをお願いします。
{
CDC* mDC = this->GetDC();
CClientDC dc( this );
mDC->CreateCompatibleDC( &dc );
CBitmap *pBmp = mDC->SelectObject( CBitmap::FromHandle( m_hbBitmap ) );
dc.BitBlt(0, 0, IMAGESIZE_AD_X, IMAGESIZE_AD_Y, mDC, 0, 0, SRCCOPY);
mDC->SelectObject( pBmp );
pBmp->DeleteObject();
mDC->DeleteDC();
ReleaseDC( mDC );
}
2007年8月17日 9:01 AM
>CDC* mDC = this->GetDC();
は
CDC mDC;
でよいのでは?
>ReleaseDC( mDC );
も不必要になりそう。
Topic starter
2007年8月17日 9:19 AM
Blue様 ありがとうございました。
正常に動作ができ、解決です。
この理由については、この後勉強したいと思います。
朝早くからありがとうございました。御礼申し上げます。