蜜柑(超初心者)と申します。
質問なのですが、
現在、リストビューにてリストの内容を直接編集しているときに、
ボタンAを押すと、直接編集は終了し、ボタンA押下時の処理を行ってしまいます。
それを回避したいのですが、どうしたらいいのでしょうか?
編集時にはボタンを押せないようにするしか方法はないのでしょうか?
できれば、直接編集しているときにボタンAを押下しても、
ボタンA押下時の処理は行わず、直接編集状態のままにしたいのですが。。
よろしくお願いします。
VC++.NET2003/WindowsXP
・編集に入った→ボタンAをdisabledにする
・編集が終わった→ボタンAをenabledにする
で、「編集が終わった時」をどう判断したらいいでしょう?
tibさん、返信ありがとうございます。
>・編集に入った→ボタンAをdisabledにする
>・編集が終わった→ボタンAをenabledにする
>で、「編集が終わった時」をどう判断したらいいでしょう?
disabledとenabledでやろうと思ったのですが、
どうやら、ボタンは表示(押下できる状態)しておかなくちゃ駄目みたいです><
ボタンAを押下しても、リストの直接編集は継続したままじゃないと駄目みたいです><
もう少し自分でも探してみますっ!
「ボタンA」を有効にするかどうかを管理するbool変数をひとつ設けて、フラグとして使
います。
・編集に入った→変数にtrueをセットする
・編集が終わった→変数にfalseをセットする
・ボタンAが押された→変数がfalseだったら何もしないでreturnする
で、「編集に入った時」「編集が終わった時」をどう判断したらいいでしょう?
>「ボタンA」を有効にするかどうかを管理するbool変数をひとつ設けて、フラグとして
使
います。
>・編集に入った→変数にtrueをセットする
>・編集が終わった→変数にfalseをセットする
>・ボタンAが押された→変数がfalseだったら何もしないでreturnする
>で、「編集に入った時」「編集が終わった時」をどう判断したらいいでしょう?
編集に入ったときは、直接編集開始の処理、
編集が終わったときは、直接編集終了の処理を通ります。
疑問なのが、
もし編集開始の処理にてフラグをONにして、ボタンAを押下するとします。
そしたら、そのときフォーカスがボタンAにいってしまい、
フォーカスのなくなったリストは直接編集終了の処理を通ってしまいます。
終了の処理にてフラグをOFFにしてしまうため、ボタンA押下時にはフラグが
OFFの状態でボタンA押下時の処理に行ってしまいますか?
・直接編集開始(フラグON)
・ボタンA押下(そのまえにリストがフォーカスを失って、終了処理を通りフラグOFF)
・フラグがOFFのため、ボタンAの処理を実行。
ってな感じになってしまうと思うのですが。。。。
> >で、「編集に入った時」「編集が終わった時」をどう判断したらいいでしょう?
> 編集に入ったときは、直接編集開始の処理、
> 編集が終わったときは、直接編集終了の処理を通ります。
いやいや、そうじゃなくて、「何をきっかけにして編集に入ったと解釈するのか」という
事なんですけど...。
リスト(box or ctrl)にフォーカスが当たったら「編集に入った」と解釈し、
そのリストからフォーカスが外れたら「編集が終わった」と解釈する、
ということでしょうか。だとするとそれは操作仕様としておかしいです。蜜柑さんの疑問
の通りです。
・リストからボタンAにフォーカスが移った→フォーカスをリストに戻して編集モード継続
・リストからボタンA以外にフォーカスが移った→フォーカスは移動先のまま編集モード終了
というルールを付け加えることになるでしょうか。この場合、「編集を終えてボタンAを
押す」という時に、一旦どこか他のコントロールにフォーカスを移さないといけないの
で、あまりいいインターフェースとは言えません。
私なら、「編集終了」というボタンを置きたくなる所ですが。
>リスト(box or ctrl)にフォーカスが当たったら「編集に入った」と解釈し、
>そのリストからフォーカスが外れたら「編集が終わった」と解釈する、
直接編集可能状態が編集開始で、フォーカスが他に移動したら直接編集終了となりま
す。
(ちゃんと答えになってますか??すみません。。)
>・リストからボタンAにフォーカスが移った→フォーカスをリストに戻して編集モード
継続
>・リストからボタンA以外にフォーカスが移った→フォーカスは移動先のまま編集モー
ド終了
この処理を組み込むとしたら編集終了時でしょうか?
フォーカスが今どこにあるのかを知るにはGetForcusでいいのでしょうか?
質問ばかりですみません><;
> 直接編集可能状態が編集開始で、
ユーザーが「○○」を行うと、「編集開始」と判断し、「△△」の処理を経て、「直接編集可
能状態」に入る。...っていう言い方になると思うのですが。この「○○」に入るのが「リ
ストにフォーカスを当てる」でいいのですか?
> フォーカスが他に移動したら直接編集終了となります。
フォーカスが「ボタンA以外の」他に移動したら、ということですか?
>> 直接編集可能状態が編集開始で、
>ユーザーが「○○」を行うと、「編集開始」と判断し、「△△」の処理を経て、「直接
編集可
能状態」に入る。...っていう言い方になると思うのですが。この「○○」に入るのが
「リ
ストにフォーカスを当てる」でいいのですか?
>> フォーカスが他に移動したら直接編集終了となります。
>フォーカスが「ボタンA以外の」他に移動したら、ということですか?
その通りです。
いろいろやってみたのですが、
結局、直接編集してる間はボタンの押下ができないようにしてしまいました><
一応これでOKがもらえましたが、まだ仕様がはっきり決まってないので、
直接編集中にボタンAを押下しても直接編集が終了しない(直接編集継続)Verの処理を作
ろうと思います。
解決忘れてました。。