#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();


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS