EntryNavi : « コアブースター(+コアファイター) | メイン | インパルス vol 3 »

CategoryNavi : メイン -> コンピューター -> 開発 -> C/C++

WM_SETREDRAWで描画の抑制

エディットコントロールにログを表示していく場合に、たとえば100行しか表示したくないといった行数制限をつけたいと思うことがあると思います。
自分は、思ってます。
ですが、エディットコントロールで1行目を削除して最後に新しい行を追加するとどうしても1回1番先頭を表示してしまうのです。
よーするにスクロールバーが上下に動いてチラチラしてしまうのです。
ひじょーに美しくないので何とかしたいと思います。

通常であれば、

SendMessage(hWnd,WM_SETREDRAW,false,0);
//ここで描画処理
SendMessage(hWnd,WM_SETREDRAW,true,0);
InvalidateRect(hWnd,NULL,true);

これでOKです。

が、CEの場合は、機能が限定されていてリストボックス・ツリービュー・コンボボックスのみしかこのメッセージをサポートしていないとのことです。
(詳細は、MSDNを参照してください。)
なので、自力でエディットコントロールみたいなのを作るか、昔のDOS見たいに1画面分しか表示しないようにしてしまうか。
どうしたものかと悩んでるしだいです。

<Category : C/C++>

検索

Google

サイドフィード

track feed 理ろぐ
人気ブログランキング - 理ろぐ
Powered by
Movable Type 3.34