昨日のリッチエディットですけど。
麻衣さんのやってた方法(SendMessage)でやってみましたが…
ほとんどカワラナス(ぉ
というかMFCのソースを見たら…
BOOL CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT &cf)
{
ASSERT(::IsWindow(m_hWnd));
cf.cbSize = sizeof(CHARFORMAT);
return (BOOL)::SendMessage(m_hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf);
}
{
ASSERT(::IsWindow(m_hWnd));
cf.cbSize = sizeof(CHARFORMAT);
return (BOOL)::SendMessage(m_hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf);
}
ほ と ん ど 変 わ ら な い じ ゃ ん ・・・!
っていうか勝手にcbSizeに値入れるなよっ!
そんなだからリッチエディット2.0を使おうとする人が苦労するんだよっ!
それともこれはVisualStudio2003を買わせるための策略なのかーっ!?
というのはまぁほっといて。
あー。
なんというか、やっぱりあれです。
何がマズイって1文字ずつ書式を設定しているのがマズイ。
同じ書式が連続する場合は、ある程度まとめて書式設定すれば十分速いような気がしてきました。(ぉ
というわけで、そういう方向でやってみようかと思います。
麻衣さんありがとでした m(__)m
おまけ。
今回のテストに使った、グラデーション付け機能つきエディタ(ぉ
ソース付きだよヽ(゚∀゚)ノ
製作時間は1時間弱(ぉ
4096バイトのテキストを放り込むと、グラデ変換時に3〜4秒かかりますね、ふむむ
これが「1文字ずつ」の限界というやつだろうか