#author("2025-04-15T03:02:56+00:00","default:iseki","iseki") ** リサイズ時のちらつき [#pa99c771] *** View [#j8330691] + OnEraseBkgnd(CDC* pDC) をオーバーライトして,ここで画面をクリアしないようにする. + 画面の書き換えは他の場所で行う *** ToolBar [#x07afc90] + OnEraseBkgndEdit(CDC* pDC) でその都度画面を書き換える BOOL CExToolBar::OnEraseBkgnd(CDC* pDC) { // ちらつき防止 ::InvalidateRect(this->m_hWnd, NULL, FALSE); ::UpdateWindow(this->m_hWnd); return CToolBar::OnEraseBkgnd(pDC); } *** ダブルバッファ [#f5b727af] - 例 // 画面の大きさ RECT rect; this->GetClientRect(&rect); // 画面のデバイスコンテキスト CPaintDC dc(this); // BitMapデータ CBitmap bmp; //bmp.CreateCompatibleBitmap(&dc, rect.right, rect.bottom); bmp.LoadBitmap(rsrcID); // バックバッファ用デバイスコンテキスト CDC memDC; memDC.CreateCompatibleDC(&dc); // BitMapデータとバックバッファ用デバイスコンテキストを関連付ける memDC.SelectObject(&bmp); // バックバッファをフロントに転送 dc.BitBlt(0, 0, rect.right, rect.bottom, &memDC, 0, 0, SRCCOPY); // BitMapデータを開放 bmp.DeleteObject();