プロが教える店舗&オフィスのセキュリティ対策術

長いこと悩んでいますが、解決出来ないでいます。
お知恵を拝借したいと思います。
VC5.0, SDK, WinXPでの開発を行っています。

今、リストビューで直接書き込みをさせる為に、
リストビューのクリックされた位置にエディットボックスをかぶせて表示させてあたかも直接編集させているように見せています。

実際のエディットボックスの表示や書き込み等はうまく行っているのですが、表示したエディットボックスにSetFocusをしても、カーソルが表示される場合とされない場合が出てきています。

親画面を表示し、最初にリストビューをクリックした時のエディットボックスにはきちんとカーソルが表示されます。
しかし、2度目以降はまったくカーソルが表示されません。
ただ、フォーカスはあたっているのか、文字入力は正しく行われます。

また、エディットボックスでリターンキーを押されたタイミングでエディットボックスを破棄し、リストビューに文字列を反映させているのですが、このリターンキー押下後にエディットボックスを表示させた時はカーソルも表示されます。

エディットボックスの破棄には、上記リターンキーもしくはエディットボックスからフォーカスが無くなった時に行っているので、
この時の破棄のタイミング等の問題でカーソルが出たり出なかったりしているのだろうと色々調べているのですが、どうしても分かりません。
実際エディットボックスにフォーカスが当たっていればカーソルは自動的に出るものだと思っていたのですが、出ないという現象は何に問題があるのでしょうか?

エディットボックス有効処理
Show( SW_SHOW );
BringWindowToTop( hwnd );
SetFocus( hwnd );

エディットボックス破棄(無効)処理
Show( SW_HIDE );

アドバイスを宜しくお願い致します。

A 回答 (1件)

>出ないという現象は何に問題があるのでしょうか?


聞いたこと無いですね~
ちなみに、リストビューのラベルエディットじゃやりたいことと違うからこのようにやっているのですよね?

EDITコントロールの親はどこにしていますか?リストビューになっていますか?
私もよくこのようにEDITを張り付けることをしますが、有効化と無効化は表示・非表示であまり切り替えません。
CreateWindowとDestoryWindowを繰り返すようにしています。
    • good
    • 0
この回答へのお礼

clsdi99さん、回答ありがとうございます。
やはり聞いたことはないでしょうか。実はこのような仕掛けは今までにも何度もやってきているのですが、カーソルが出ないという症状が出てしまったのが今回初めてでした。

EDITコントロールの親はリストビューになっています。

CreateWindowでひとつ最初に作っておき、クリックされたリストビューの位置に移動させて表示、非表示を行っています。
やはりclsdi99さんのおっしゃるようにDestroyWindowをしたほうが良い感じがします。
一度その方法でやってみたいと思います。
ありがとうございました。

お礼日時:2006/10/27 13:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています