2

ES_AUTOHSCROLL Set で望ましくない反射神経が発生しています。

私がやろうとしているのは、テキストのサイズを変更する編集を作成することです。ただし、ユーザーが編集の終わりを過ぎて入力するたびに問題が発生します。

ES_AUTOHSCROLL がないと、ユーザーは編集の現在のサイズを超えて入力できないため、入力が無視されるため、新しい文字に合わせて編集が拡大されません。

ES_AUTOHSCROLL を使用すると、ユーザーが編集の現在のサイズを超えて入力すると、ウィンドウ サイズを大きくする前に最初にスクロールするため、ウィンドウが新しい文字を保持するのに十分な大きさになっているにもかかわらず、最初の文字が非表示になります。 .

私の解決策は、次の文字を入力する余地があるため、編集を保持するテキストよりも最大幅の 1 文字長くすることでした。しかし、それは少し粘着性があります。

ES_AUTOHSCROLL を使用せずに編集ウィンドウの幅よりも広いテキストを許可する方法があれば、私は設定されます。

4

2 に答える 2

0

ES_MULTILINEも使いたいと思います

編集:CEditのドキュメントにはvoid CEdit::LimitText( int nChars = 0 )、テキストの長さをUINT_MAXに設定するメンバー関数があります。ES_AUTOHSCROLLも使用する必要があると思います(そうしないと、コントロールの幅を超えて入力しようとするとEN_MAXTEXT通知が表示されます)。

于 2010-11-30T22:49:17.430 に答える
0

必要な効果をシミュレートする方法を見つけました。

私はES_AUTOHSCROLLを使用しています。

OnUpdate に応答し、含まれるテキストに合わせてコントロールのサイズを変更します。スクロールの問題 (テキストが大きくなる前にテキストを挿入するためにスクロールする) を処理するために、OnUpdate 内で 0,0 を選択し、前の選択を返します。そうすれば、スクロールして最初に戻り、サイズを更新します。

このようにして、コントロールはスクロールせずに無限に拡大するように見えます。

于 2011-01-06T19:53:56.187 に答える