ダイアログアプリケーションで、CRichEditCtrlを使ったエディタのようなものを
作っています。
その中で、検索や置換を行おうと、CFindReplaceDialogを使うことにしました。
検索・置換それぞれを行うところまでは出来ています。
検索ダイアログが出来たので、CTRL+Vを使って検索ダイアログにクリップボードの
文字列をペーストしようと試みたのですが、CFindReplaceDialogに検索文字列の
エディットボックスのメンバが見つからず、ここに書き込むに至りました。
notepad.exe(メモ帳)では検索ダイアログを表示し、それがアクティブの時に
CTRL+Vすると検索ダイアログのエディットボックスにペーストされるので、
やり方はある気はするのですが、当方の探し方が悪いのか、見つかりませんでした。
CFindReplaceDialogの宣言を見てみると、protectedメンバにm_szFindWhatという
文字列変数があったので、CFindReplaceDialogを派生させたクラスを作り、
ペースト時にその変数へコピーしてみたものの何の変化もありませんでした。
的確な設定の方法等、ご存知の方がいらっしゃいましたらご教示願えませんでしょうか。
動作確認結果です。
ダイアログアプリケーションを新規作成し、
ダイアログクラスに、
CFindReplaceDialog* m_lpFindReplaceDlg;
の宣言を追加。
そして、OnInitDialog()に以下の2行を追加
m_lpFindReplaceDlg = new CFindReplaceDialog;
m_lpFindReplaceDlg->Create(TRUE, _T(Test));
この状態で、CTRL+Vにて貼り付けが正常動作しました(^-^)
同じようにテストプログラムを作成してみましたところ、確かに動作を確認しました。
ちょっと別の部分でおかしいことがこれで判りました。ありがとう御座います。
何で私が作ったものが動かないのかは別として、一先ずこれで解決とさせていただき
ます。