リソース不足発生について – プログラミング – Home

リソース不足発生について
 
通知
すべてクリア

[解決済] リソース不足発生について


眉
 眉
(@眉)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

宜しくお願いします。

VC++ MFCです。

SetTimerを使って描画(グラフ表示)を何度もを呼び出ています。
描画は色を変えて10本のグラフをPenで書いています。

描画処理は以下のようになっています。
リリース不足で止まってしまいます。

描画処理
CDC* pDC = m_Graf.GetDC()

for( retu = 0; retu < 10; retu++ ) {
CPen myPen1( PS_SOLID,2,RGB(x,y,z))
pDC->SetBkMode( GM_COMPATIBLE );
CPen* pOldPen1;
pOldPen1 = pDC->SelectObject(&myPen1);


pDC->MoveTo( a, b );
pDC->LineTo( aa, bb);


pDC->SelectObject(pOldPen1);
myPen1.DeleteObject();
}

以上のように毎回DeleteObject()していますが
間違いがあるのでしょうか。


引用未解決
トピックタグ
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

void CxxxDlg::OnPaint()
{
if (IsIconic())
{
//...
}
else
{
CPaintDC dc(this);
for( int i = 0; i < 10; i++ )
{
CPen myPen1( PS_SOLID, 2, RGB( 0, 0, 0 ) );
dc.SetBkMode( GM_COMPATIBLE ); // これは SetGraphicsMode()?
CPen* pOldPen1 = dc.SelectObject( &myPen1 );

dc.MoveTo( 0, 0 );
dc.LineTo( 100, 100 );

dc.SelectObject( pOldPen1 );
myPen1.DeleteObject(); // これは不要?
}
}
}

...Windows Me, VC++ 6.0 SP5, MFCダイアログ において
上記のようにコードを書いてみたところ、全く何のエラーも出なかったのですが...

あ、もしかして GetDC() に対応する ReleaseDC() を呼んでないとか。


返信引用
眉
 眉
(@眉)
ゲスト
結合: 23年前
投稿: 1
 

nさんありがとうございました。

>あ、もしかして GetDC() に対応する ReleaseDC() を呼んでないとか。

ReleaseDC()を呼んでいませんでした。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました