問題タブ [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.

0 投票する
2 に答える
3411 参照

winapi - MFCを使用して無効な編集ボックスのテキストの色を変更するにはどうすればよいですか?

編集ボックスが無効になっているダイアログがありますが、テキストはデフォルトの灰色ではなく赤色で表示されます。私は次のことを試しました:

ただし、テキストは灰色でのみ表示されます。しかし、基本クラスの呼び出しを削除するとCEdit::OnEnable(bEnable);、新しいテキストの色が有効になります。誰かがコードの何が悪いのか説明できますか?

御時間ありがとうございます。

乾杯...

編集:(コメントを編集に移動します)申し訳ありませんが、元の投稿でそれについて言及するのを忘れました。ON_WM_CTLCOLOR()を処理する代わりに、ON_WM_CTLCOLOR_REFLECT()が処理されます。私が理解していないのは、基本クラスへの呼び出しを削除すると、テキストの色が指定された色に変更されますが、そのままにしておくと、デフォルトの灰色にしか変更されないということです。

0 投票する
2 に答える
1015 参照

mfc - DDV_MinMaxUInt : カスタム検証メッセージ

MFC を使用してモバイル アプリを開発しています。CEdit コントロールの 1 つで、ダイアログ ボックスで、変数 as long int を次のように宣言しました。

そのため、無効な値 (指定された範囲外の整数またはアルファベット文字) でダイアログ ボックスを閉じようとすると、メッセージがスローされ、その特定のコントロールがフォーカスされます (自動的に行われます)。

ここで私の質問は、ボタンがあり、このボタンがクリックされるたびに、同じ検証機能をどのように呼び出すことができるかということです。

0 投票する
2 に答える
1526 参照

mfc - ON_EN_KILLFOCUSが複数回呼び出されました

CEditコントロールを使用しています。そして、ON_EN_KILLFOCUSメッセージにイベントハンドラーを割り当てました。正しく呼び出されます。ただし、問題は、ダイアログボックスを閉じるたびに、このイベントハンドラーが4回呼び出されることです。どうすればこれを防ぐことができますか?

0 投票する
0 に答える
2010 参照

mfc - 無効になっている CEdit コントロールのテキストのフォントの色を変更する

現在システム グレーになっている無効な CEdit コントロールのテキストのフォントの色を変更したいと考えています。

灰色の背景を使用しているため、読みやすくするために、テキストのフォントの色 (現在は COLOR_GRAYTEXT の rgb 値に設定されています) を変更したいと考えています。

SetSysColors() を使用して解決策がありますが、実行中のすべてのアプリケーションの値を変更するという悪影響があります。より良い解決策を知っている人はいますか?

WM_CTLCOLORSTATIC/ WM_CTLCOLOREDIT メッセージの処理を試みましたが、SetTextColor() メソッドが機能していないようで、アプリケーションは引き続きシステムのグレーテキストを使用していました。これを行う正しい方法を知っている人はいますか?

0 投票する
2 に答える
2336 参照

mfc - CEdit、WM_PASTE

CEditの子孫にwm_pasteメッセージのハンドラーがあるとしましょう。

場合によっては、このメソッドから貼り付けのデフォルトの動作をトリガーしたいとします。どうすればいいのですか?CEdit::OnPasteは存在しません...

乾杯

0 投票する
2 に答える
1158 参照

c++ - ES_AutoHScroll を使用しない「無制限」の CEdit テキスト

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

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

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

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

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

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

0 投票する
2 に答える
1025 参照

c++ - Visual C++ CEdit コントロール - SetWindowText() によって挿入ポイントが変更される理由

次のスニペットは、「WantReturn」が設定された複数行 CEdit コントロールの OnChange() ハンドラからのものです。

SetWindowText() がコメント アウトされている場合、ユーザーのテキストは右側に積み上げられ、すべて問題ありません。しかし、それを入れると、テキスト挿入ポイントが左端に移動し、ユーザーの文字が既存の文字の左側に入ります..

CEdit をサブクラス化することで、必要なものを取得できます。しかし、Get() & Set() でそれを行う方法があるかどうか知りたいです。

私は Visual C++ 6 と Service Pack 5 を使用しています。現在 11 歳ですが、彼らが言うように「ソフトウェアは摩耗しません」:-)。

0 投票する
1 に答える
385 参照

winapi - CEdit の内容を操作するには?

編集コントロールを使用する状況があり、ガイダンスが必要です。ほとんどの場合、テキスト エディタは正常に機能しますが、入力前の最後の数文字や入力した文字に応じて、最後の数文字を別の文字に置き換える必要がある場合もあります。

私には明白に見える解決策は、内容が変更される直前に文字バッファー GetWindowText() を用意し、入力された文字をバッファーに追加し、必要に応じてバッファーを操作してから SetWimdowText() にすることです。

エディット コントロールに独自のバッファーがあることはわかっています。それで、これは自分のバッファを持つための正しいアプローチですか、それともバッファを共有する方法はありますか? エディターの文字数は 4MB を超えない可能性があります。

古いものには熱心ではなく、Windows 7とXPで動作するためにこれが必要です。私はMFCを使用しています。

ご協力いただきありがとうございます。

0 投票する
1 に答える
2499 参照

mfc - mfcでのCEditテキスト検索

MultilineのプロパティでCEditを使用しています。私の目的は、個々の行を取得してCStringArrayに配置することです。

GetLineを使用して行を取得するとき、その行の文字列の長さを知る必要があります。

これを取得する方法は?

GetLineLength()関数を試しましたが、指定されたテキストではなく、行全体のサイズが返されます。

これまでに実装したコードを貼り付けました。

0 投票する
2 に答える
1241 参照

windows-7 - CEdit コントロールのコンテキスト メニューを変更するにはどうすればよいですか?

Windows 7 より前は、ソリューションは簡単でした。独自のメニューを追加して、独自の「元に戻す、やり直し、切り取り、コピー、貼り付け、削除、すべて選択」メニュー項目を作成するだけです。しかし、メニューが Unicode と入力メッセージで非常に複雑になったため、これはもはや不可能です。