◀ANSI版開発トップへ
  • 936 横スクロールの高速化
  • [936] 横スクロールの高速化 げんた 2001年12月17日 09:16

    横スクロールの高速化のためには,現在のウィンドウの左右端での色分け(内部状態)及び表示桁と内部表現の対応みたいなのを記録しておく必要があるのではないかと思います.

    CEditViewに対して1つずつCLayoutCacheMgrというクラスを作ってその中に上のような情報を格納します.

    画面の再表示やスクロールの時は画面表示ではそれらの情報を使って表示を行い,文字の入力が行われたときは色分け情報の変化が無い限り画面外部分の色判定スキャンを行わないようにすればどうでしょうか.結構大改造になってしまいますけど.

    現在CLayoutMgr::DoLayout3_NewとCEditView::DispLineNewにある色分け処理もレイアウトと画面表示の2カ所で使うので別クラス(CWordColorとか)にまとめた方がいいでしょう.

    ただ,左スクロールは行頭からスキャンせざるを得ないので速度が改善できないかも.