はじめまして。
現在、CreatePatternBrushをつかって、メイン画面上のボタンを押した際、サブダイア
ログが表示されている背景に格子状のハーフトーンをかける処理を作成中なんですが、
実行してみるとどうしても画面の左上からパターンを作画するような残像が出てしまい
ます。
実行環境PCのスペックによるものであれば仕方ないのですが、出来れば見た目上、きれ
いにしたい為、残像が表示されないようにする良い方法があればご教授下さい。
開発環境はOSがWindowsXP、VC++6.0です。
実行環境のOSはWindows2000です。
ハーフトーンの処理は以下の通りです。
void WINAPI DrawHalfTone( HDC hDC ){
HBRUSH hOldBrush, hBrush;
HBITMAP hBmp;
BOOL bGetDC;
DWORD dwRop;
if( hDC == NULL ){
bGetDC = TRUE;
hDC = GetDC( hMainWnd );
}else
bGetDC = FALSE;
dwRop = 0x000A00C9;
hBmp = LoadBitmap( hMainInst, MAKEINTRESOURCE(IDB_HALFTONE1) );
if( hBmp != NULL ){
hBrush = CreatePatternBrush( hBmp );
hOldBrush = SelectObject( hDC, hBrush );
PatBlt( hDC, 0, 0, 800, 600, dwRop );
SelectObject( hDC, hOldBrush );
DeleteObject( hBrush );
DeleteObject( hBmp );
}
if( bGetDC ) ReleaseDC( hMainWnd, hDC );
}
残像というか、俗に言う「ちらつき」かな
画面に直接描こうとしていませんか?
ダブルバッファリングとか調べてみるといいかも
別画面にお絵かきをして、最後に表示させるという方法です。
三草さんが言われているようにちらつきの事を行っているのであれば、
オフスクリーン描画とかもキーワードになるかな。
GDIで画面に直接描画してしまうと負荷が高くちらつきの原因になるので
裏画面とかオフスクリーンと言われるメモリ上のみの存在に対して
描画しておいて実画面に貼り付けると言う手段です。
詳しくはWeb上で調べて見てください。
多分、相当数のホームページがヒットすると思います。
三草さん、PATIOさん、コメントありがとうございます。
そうですね、俗にいうちらつきだと思います。
教えて頂いたキーワードを元に少し自分でも調べてみます。
また分からない点があればご教授お願いします。