問題タブ [richedit-control]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Richedit コントロールの htmltext テーブルの書式設定
C# でリッチエディット コントロールを使用しています。このコントロールにテーブル(html)を表示したいです。私はそれをしましたが、セルテキストのフォントサイズと色を変更したいのですが、うまくいきませんでした:/
これが私のコードです:
c++ - EM_EXGETSEL は、テキストの選択順序とは関係ありません。選択したテキストのキャレット位置を特定するにはどうすればよいですか?
私がする時:
選択した範囲のテキストを取得します。ただし、キャレットがこの選択のどこにあるか、つまり最後か最初かを知りたいです。
つまり、右から左にドラッグするなどのように、ユーザーがテキストを「後方」に選択しました。
EM_EXGETSEL
は常に の小さい方の数にcpMin
なるため、明らかに選択順序とは関係ありません。
EM_EXGETSEL
かなりの量が既に選択されているため、この状況では比較のためにキャレットの位置を取得できません。
キャレットの現在の個々の位置を取得する方法はありますか (それを cpMin/cpMax と比較できるようにするため)? または、選択したテキストのブロック内でキャレットがどこにあるかを判断する方法はありますか?
編集:
これを行う理由についての私の説明: ユーザーがテキストを選択できる読み取り専用の RichEdit コントロールにプログラムでテキストを挿入します。ただし、テキストが最後に追加されると、キャレットを最後に移動してテキストを挿入する必要があります。これは、テキストが選択されている/ユーザーが現在テキストを選択しているときに発生する可能性があります。
面倒なのはこの最後のものです。テキストがプログラムによって入力される前後に、選択したテキストを取得および設定するために andEM_EXGETSEL
を使用します。EM_EXSETSEL
デフォルトでは、EM_EXGETSEL
は常に小さい方の数値を に配置します。cpMin
つまり、ユーザーが現在テキストを後方 (右から左) に選択しており、テキストがコントロールに追加されている場合、選択領域のキャレットの位置が最初から最後に、これらの数値を に直接フィードするためEM_EXSETSEL
です。が逆方向に選択できることはわかっています ( の大きな数字と の小さなEM_EXSETSEL
数字でこれをテストしました) が、ユーザーがテキストを逆方向に選択したことを示すものは何もありません。cpMin
cpMax
EM_EXGETSEL
したがって、キャレットの位置を比較したり、選択の最初または最後にあるかどうcpMin
かcpMax
を確認したり、それに応じて行動する必要があります。
c++ - CDialog::Create () メソッドが Vista Windows 7 32 ビット PC で失敗する
ダイアログが Richedit コントロールを持っているため、Win7 32 ビット PC で CDialog::Create() が失敗します。
ダイアログからそのコントロールを削除すると、作成されましたが、Richedit コントロールが必要です。
Richedit コントロールを使用すると CDialog::Create() が失敗するのはなぜですか? また、「AfxInitRichEdit2()」と呼びました
c++ - リッチ エディット テキスト コントロールでの改行文字の検出
テキスト編集コントロールに入力されたテキストを個々の単語に分割して配列に入れようとしています....改行文字も配列に入れる必要があります。問題は、途中で改行文字を検出するのに問題があることです...
これを行う正しい方法は何ですか?
私は次のことを試しました:
}
しかし、これはうまくいきません....
c++ - リッチ エディット コントロールのテキスト全体を CString として取得するさまざまなメソッド
リッチ エディット コントロール内のテキスト全体を CString として取得したいのですが、これを達成するには 6 つの方法があるようです。
GetTextRange
を使用して範囲を取得しますGetTextLength
EM_GETTEXTEX
GetWindowText
GetDlgItemText
WM_GETETXT
EM_STREAMOUT
私の質問は次のとおりです。
GetTextRange
、GetWindowText
、などのメソッドを使用する場合と、、 、 EGetDlgItemText
などのメッセージを使用する場合の違いは何ですか。EM_GETTEXTEX
WM_GETETXT
M_STREAMOUT
- いつあるタイプを使用し、いつ別のタイプを使用しますか?
- リッチ エディット コントロール内
EM_GETTEXTEX
のテキスト全体WM_GETETXT
をEM_STREAMOUT
CString
- 最後に、誰かが の使用方法の例を提供し
EM_GETTEXTEX
たり、オンラインの方向を教えてくれたりすることは可能でしょうか?
c++ - リッチエディット テキスト ボックスを自動スクロールする方法 win32 c/c++
リッチエディット テキスト ボックスにメッセージを追加するコードは次のとおりです。
リッチエディット テキストボックスの createwindow は次のとおりです。
ただし、テキスト ボックス内のメッセージがすべて収まらない場合、自動的に下にスクロールしないため、ユーザーは常に下にスクロールする必要があります。この問題に直面している他のすべての参照は、.NET または c# にあります。追加後にカーソルをテキストボックスの一番下に設定することはできませんか? またはそのようなもの。どんな助けでも大歓迎です。ありがとう。
編集:追加してみました:
これは他の誰かのための解決策でしたが、私にとってはうまくいきませんでした。
textbox - Grid の垂直スクロール位置を RichEditBox または TextBox に一致させる
RichEditBox
(editor) とGrid
(MarginNotes)を備えた Windows ストア アプリを持っています。
2 つの要素の垂直スクロール位置を常に一致させる必要があります。これの目的は、ユーザーがドキュメントの余白にメモを追加できるようにすることです。
カーソル位置に基づいてメモの配置を既に把握しています。メモが追加されると、カーソルまでのすべてのテキストが選択されます。その選択はRichEditBox
、 内の2 番目の invisible に追加されStackPanel
ます。次にActualHeight
、グリッド内のノートの位置を示すこのコントロールの を取得します。
私の問題は、RichEditBox
上下にスクロールすると、Grid
それに応じてスクロールしないことです。
最初のテクニック
両方を の中に入れて、ScrollViewer
スクロールを無効にしてみましたRichEditBox
コントロールの一番下までスクロールしてRichEditBox
Enter キーを数回押すと、カーソルが見えなくなります。はScrollViewer
カーソルで自動的にスクロールしません。
カーソルの位置を確認し、それをエディターの高さと比較し、それにVerticalOffset
応じてスクロールを調整する C# コードを追加してみました。これはうまくいきましたが、信じられないほど遅かったです。最初はKeyUp
、文を入力するとアプリが停止するイベントでそれを持っていました。その後、5 秒のタイマーを設定しましたが、それでもアプリのパフォーマンスが低下し、カーソルが見えなくなってからRichEditBox
スクロールするまでに 5 秒の遅延が発生する可能性がありました。
第二のテクニック
MarginNotes
また、独自のを入れて、自分のイベントに基づいてScrollViewer
プログラムで設定しようとしました。VerticalOffset
RichEditBox
ViewChanged
関連するイベント ハンドラ
ViewChanged
これは機能しましたが、スクロールが停止した後、イベントが発生するまでスクロールが適用されないため、かなりラグがありました。イベントを使ってみたのViewChanging
ですが、なぜか全く発火しません。さらに、Grid
高速スクロール後に位置がずれることもありました。