0

ローリング サブタイトルのように、複数行の CEdit コントロールをゆっくりと下にスクロールしたい。

これまでのところ、OnTimer() イベントで CEdit::LineScroll() を使用しています。思ったほど滑らかではありませんが、フルラインロールができます。LineScroll() を ScrollWindow() に置き換えて、テキストをピクセル単位でスクロールできるようにしますが、ScrollWindow() 関数は、コントロールにスクロールする必要がある新しいテキスト行を描画しません。

誰でもこれを達成する方法について何か考えがありますか?

問題を明確に説明しなかった場合。これらの gif を追加します。

ラインスクロール

そして、これが ScrollWindow() が行うことです (以下のテキストは切り取られています):

ScrollWindow

ScrollWindow() のコードは次のとおりです。

CRect clientRect;
m_editAns.GetClientRect(&clientRect);
m_editAns.ScrollWindow(0, -10, NULL, &clientRect);
m_editAns.UpdateWindow();
ValidateRect(&clientRect);

*PS: プロジェクトは他の場所で CEdit コントロールを使用しているため、継承は許容されますが、別のコントロールに置き換えることはできません。

4

1 に答える 1

0

CWnd::ScrollWindowによると、

スクロールと同時にカバーされていない領域を再描画するには、ScrollWindow を呼び出した直後にUpdateWindow メンバー関数を呼び出します。

于 2013-09-25T18:50:56.703 に答える