[
スレッド全体
]
▼
2008/6/5 (木) 20:54:51
ryoji
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 3.5.21022)
[5326]
Re:修正版アップしました
ざっとソースコードも眺めてみました。
それで、いくつか疑問・コメントがあります。
1.
テキスト最大幅の算出をテキスト変更直後ではなく CEditView::MoveCursor() で遅延実行するのはなぜですか?
その場で計算させれば、
m_bCalTextWidth
m_nCalTextWidthLinesFrom
m_nCalTextWidthLinesTo
といったややこしいメンバー変数も不要になると思うのですが…
あと、以前の計算要求が実行される前に次のテキスト変更があった場合、新たな変更を加えてしまった後で以前の計算要求を実行しているように見えますが、これは何?
2.
テキスト最大幅の算出を CEditView::OnSize() で実行するのはなぜですか?
テキスト最大幅は画面サイズには関係無いと思うのですが…
CEditView::OnSize() は各ビューのサイズ変更で呼ばれるので、画面を4分割して分割バーを動かすと1度に4回も計算しなおすことになるのでは?
テキスト変更時と SetLayoutInfo() のときくらいだけで済ませられないのでしょうか?
3.
CEditView::GetRightEdgeForScrollBar()は「折り返しなし」のときしか使われていないのですが、全モード共通でスクロール最右端の計算をするのに使えれば、もっとすっきりしたものができるかな?と思います。
指定幅で折り返す場合にも指定幅ぴったりではなく、右余白(改行/句読点ぶら下げ)が見えるところまでスクロールバーでスクロールできるようになると嬉しいですね。
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]