2017-12-01 9 views
1

エディットコントロールに選択範囲があり、標準のダイアログを開いて検索または置換すると、選択範囲が非表示になりますが、モードレスダイアログを閉じると選択範囲が再び表示されます。問題のモードレスダイアログを表示した後に選択が非表示になるのはなぜですか?

hwndF = FindText(&fr); // open standart find modeless dialog 

内訳:

  1. 私はエディットコントロール内のテキストを選択します。

    Image

  2. 私はモードレスダイアログを見つける開き、選択を見ることができません。

    image

  3. 私が見つけモードレスダイアログを閉じて、私は私の選択を見ることができます。私はまだ私の選択を見たいモードレスダイアログを開いた後

    Image

+0

コード、試み、または文字通り何のトレースもなしに、どのように支援することになっていますか? –

+0

開発環境とは何ですか? Visual Studio?他に何か?ここではあまり行くことはありません。 – lurker

答えて

3

コントロールがフォーカスを失ったときに選択したテキストが非表示になっていないことを確認するには、ES_NOHIDESEL | WS_VISIBLE | WS_CHILDなどのES_NOHIDESELスタイルの編集コントロールを作成します。リソースダイアログを使用する場合は、「非表示選択なし= true」を設定します。

も参照してください:
Edit Control Styles

ES_NOHIDESEL
は、編集コントロールのデフォルトの動作を否定します。 コントロールが 入力フォーカスを失ったときに選択を非表示にし、コントロールが 入力フォーカスを受け取ったときに選択を反転します。 ES_NOHIDESELを指定した場合、コントロールにフォーカスがない場合でも、選択したテキストは反転されて になります。

+0

ありがとう、それは私が欲しいものです。 –

+1

@АлексейКуль:[誰かが私の質問に答えたときに何をすべきですか?](https://stackoverflow.com/help/someone-answers) – IInspectable