
質問させていただきます。
WindowsSDKを用いて、画面を作成しています。
MFCは使用していません。
タブを使っていますが、タブは作成時にTCS_OWNERDRAWFIXEDを指定しています。
WM_DRAWITEMメッセージが来たら、タブを描画していますが
どうしてもちらつきが目立ってしまいます。
WM_DRAWITEMでの処理は、初めにタブの裏画面に描画し
最後にタブに通知された、DRAWITEMSTRUCTのhDCに裏画面の内容をBitBltで転送しています。
メイン画面もダブルバッファリングを行っておりますが、メイン画面はちらついていません。
タブ側で、WM_ERASEBKGNDで何もせずreturnすると、ちらつきはなくなりますが
背景色で塗りつぶされなくなるため、タブが表示される箇所にウィンドウを上に置いたりすると
そこが残ってしまいます。
WM_DRAWITEMが頻繁によばれているため、これはちらついているのでしょうか?
解消方法に頭を悩ませております。
どうぞご教授の程お願いいたします。
No.2ベストアンサー
- 回答日時:
>DRAWITEMSTRUCTのrcItemですが、きちんと、渡されたleft,top,right,bottomに収めて描画はしております。
そうすると…チラ付きはやはりWM_ERASEBKGNDが関係していることになる…でしょうね。
WM_DRAWITEMの前に毎回WM_ERASEBKGNDが来る…ということはないかと思われますが、その辺りはどうなんでしょう?
Spy++などで確認できるかと思われますが…。
再描画に1回だけ…であれば、WM_ERASEBKGNDの時にタブ以外の場所を裏画面から描画することで回避できませんかね。
タブ部分はWM_DRAWITEMで描画しますし。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[VB.net] DataGridViewの列ヘッ...
-
MFCでOnPaintのタイミング
-
OpenGLで描画するテクスチャの...
-
MFC XPでのTextOutのボヤケにつ...
-
DrawTextでの描画
-
エクセルで描画出来なくなります。
-
vb.netでテキストボックス内の...
-
word
-
TextBoxに文字を書いても表示さ...
-
InvalidateRectの使い方について
-
GetGlyphOutline() ご利用経験...
-
文字の行間
-
「アイテムは収集されました」...
-
エクセルで作った新しいウイン...
-
グラフの交点の求め方(Excel)
-
メッセージボックスを大きくす...
-
ゲームでは結局どっちが良いの?
-
検索の画面がでなくなってしま...
-
エクセルのコントロールツール...
-
コントロールの書式設定で、“コ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Minecraft 統合版(PC)の描画距...
-
[VB.net] DataGridViewの列ヘッ...
-
word
-
google Colabでmatplotlibの描...
-
panelのスクロール表示について
-
VB.netでのライン描画方法がわ...
-
VB6,リストボックスの特定行の...
-
UpdateData( FALSE); による文...
-
TextBoxに文字を書いても表示さ...
-
CStaticコントロールの静的イメ...
-
VBAにGDI+を参照させる方法
-
MFCでOnPaintのタイミング
-
InvalidateRectの使い方について
-
VC++プログラムをつかったBMP画...
-
GetGlyphOutline() ご利用経験...
-
NVIDIAのシェーダーキャッシュ
-
Form1 Load で実行されない。
-
FlexGridの一部のみ表示を更新...
-
C#のタブコントロールについて...
-
WM_SIZEとWM_SIZINGの違い (Win...
おすすめ情報