問題タブ [cedit]
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.
mfc - CEdit(MFC)をスムーズにスクロールする方法
ローリング サブタイトルのように、複数行の CEdit コントロールをゆっくりと下にスクロールしたい。
これまでのところ、OnTimer() イベントで CEdit::LineScroll() を使用しています。思ったほど滑らかではありませんが、フルラインロールができます。LineScroll() を ScrollWindow() に置き換えて、テキストをピクセル単位でスクロールできるようにしますが、ScrollWindow() 関数は、コントロールにスクロールする必要がある新しいテキスト行を描画しません。
誰でもこれを達成する方法について何か考えがありますか?
問題を明確に説明しなかった場合。これらの gif を追加します。
そして、これが ScrollWindow() が行うことです (以下のテキストは切り取られています):
ScrollWindow() のコードは次のとおりです。
*PS: プロジェクトは他の場所で CEdit コントロールを使用しているため、継承は許容されますが、別のコントロールに置き換えることはできません。
mfc - CEdit::SetPasswordChar がフォーカス イベントの強制終了で機能しない
プロジェクトにパスワードモードのテキストボックスがあります。ただし、これは、フォーカスがある場合は表示し、フォーカスを解除すると文字を非表示にする必要があります。
これは私のソースコードです。m_editBox は IDC_EDIT1 の制御変数です。
しかし、 OnEnKillfocusEdit() は明確に機能しません。私はそれをデバッグし、このモジュールに入ることを確認しました。
どうすればこの問題を解決できますか。ありがとう。
mfc - 提案されたテキストをユーザー タイプとして CEdit に追加する
私の MFC アプリケーションでは、ユーザー タイプとしてテキストを提案することで、ユーザーにヘルプを提供しようとしています。
ユーザーが入力しているテキストは入力されたままになり、最後に提案されたテキストが選択されるため、ユーザーは、それが必要なものでない場合は削除を押すか、入力を続けることができ、私の提案されたテストは何にでも近づくことができます彼らは望んでいます。
私のコード (CEdit コントロールの変更ハンドラー内) は次のようになります:-
これは、ユーザーが入力しているときにうまく機能しますが、ユーザーがテキストをバックスペースまたはハイライトして削除すると、コードは提案されたテキストを繰り返し追加し、この時点ではそのままにしておく必要があります。
ユーザーが提案したテキストを削除したかどうかを判断する方法がわかりません。誰かが同様の問題を解決しましたか?
mfc - mfc の出資金管理における矢印キーの処理
mfc の cedit コントロールを使用して、matlab のようなコマンド ウィンドウを作成しています。
例えば、いくつかのコマンドを入力した後、矢印キー (具体的には上キー) を使用して古いコマンドを表示したい。
古いコマンドの表示には成功しましたが、このコマンドの最後にカーソルを配置できませんでした。原因は、このコマンドの最後にカーソルを置いた後、再度矢印キーを入力したためと思われます。
詳しい状況はこちら。
- まず、コマンド「play」を入力します
- Play!.. メッセージが表示されます。
- そして次のコマンドプロンプトで「↑」キーを押します
- そして、自動的にストリーミングされる古いコマンド「再生」を成功させました。
しかし、私のカーソルは上の行に上がります。
@ 遊ぶ
プレイ!.. | (←カーソルはここにあります..)
@プレイ| (←「↑」キーを押した後、ここにカーソルを置きたい)
これは私のコードです:
を実行した後、再度「↑」キーを押す理由がわかりませんPreTranslateMessage
。誰かがこれについて考えを持っていますか?
c++ - 編集コントロールの文字列を16進数に変換するC ++ MFC
たとえば、ソースで文字列を定義すると、文字列を16進数に完全に変換できます。
結果は「f」ですが、これを行うとどうなりますか:
出力は「2」ですか?エディット コントロールからテキストを取得する他の方法をいくつか試しましたが、いずれも間違った結果を返しました。一般的に、コントロールからテキストを取得する方法、または maxcount に設定したものに何か問題がありますか?
c++ - 子ウィンドウ (CEdit) がフォーカスを失う
MFC ドキュメント/ビュー アーキテクチャを使用して C++ でプログラミングしています。私はMFC CEdit lose focus handlerに似た何かを達成しようとしています。回答が示すように、メッセージ EN_KILLFOCUS を処理しました。
基本的に、私はこれをやっています: ビューにテキストを描画しています。ユーザーがビュー内のテキストの領域をクリックすると、その上に CEdit ウィンドウを配置して表示し、ユーザーがテキストを編集できるようにします。編集がフォーカスを失うと、CEdit テキストを取得してドキュメントに保存します。次に、ビューを無効にします。
ただし、ビューがフォーカスを失ったときにのみ EN_KILLFOCUS メッセージを受け取るようです。CEdit のフォーカスを失わせるには、ドッキング ウィンドウやツールバーなど、別の場所をクリックする必要があります。CEdit ボックスの外側で、ビューの他の場所をクリックしたときにそれが発生するようにします。
WS_CHILD スタイルで CEdit を作成しています。WS_POPUP を試しましたが、それでも同じ問題が発生します。
どんな助けでも大歓迎です。
visual-c++ - クレジットコントロールでの改行の入力
とても素朴な疑問……。
CEdit
OK をトリガーしてダイアログ ボックスを完全に閉じることなく、コントロール ボックスに新しい行を入力するにはどうすればよいでしょうか。つまり、Enter キーを押すと、カーソルがまだCEdit
コントロール内にある場合でも、自動的に [OK] が選択されます。私がやろうとしていることは可能ですか?または、他のコントロールを使用する必要がありますか
PS: これはモーダル ダイアログ ボックスです。
c++ - CEdit テキスト変更で CListCtrl の項目を選択する
私は、編集ボックスを使用してリアルタイム検索を行う任務を負っています。編集ボックスのテキストが clistctrl の項目と一致すると、強調表示されます。私が本当にやりたいことは、cedit ボックスの変更時に Clistctrl で一致した項目を強調表示することです。