イベントの取得について

解決


EOF  2003-09-25 14:33:21  No: 79554  IP: [192.*.*.*]

たびたび申し訳ありません。
イベントの取得方法についてご教授いただきたいです。
例えば、操作上にて「コンボボックス内のデータが切り替わった時」や
「テキストボックスにフォーカスが当たった時」などを拾い、見合った処理を
行ないたいのですが。VisualC++でいうなればWindowプロシージャに当たる記述方法についてご教授宜しくお願いいたします。

編集 削除
EOF  2003-09-25 14:43:58  No: 79555  IP: [192.*.*.*]

すいません、ちょっと内容を改めます。
当初の投稿内容に、「テキストにフォーカスが・・・」というのは省いて下さい。
「コンボボックス内のデータが切り替わった時」のプロシージャについて
ご教授ください。

編集 削除
たかみちえ  URL  2003-09-25 15:00:15  No: 79556  IP: [192.*.*.*]

用意してあるイベントに対応していないメッセージを拾いたいということでいいですよね?

  それならば、SetWindowLong APIを使って、ウィンドウをサブクラス化することで行えます。
ただし、その間はデバッグがうまくできなくなる上(ブレークポイントなどで止めると、そのまま強制終了することがある)、エラーが一つ起こるたびに、いきなり強制終了することもあります。

  あえて言うのなら、最終手段といったところかもしれません。
  この手の操作はできれば、他の言語でやることをおすすめしますが、できない場合はそれを覚悟の上でやってください。

  あと、サブクラス化中は開発環境の終了ボタンが使えません。
上と同じように強制終了します。
  "デバッグ中はサブクラス化しない"という方法もありますけどね。

編集 削除
たかみちえ  URL  2003-09-25 15:09:50  No: 79557  IP: [192.*.*.*]

あ、確認はしてませんけど、SetWindowsHookExを使っても、できるのかもしれません。
  理由はDelphiの非ウィンドウコントロール(Delphiにはウィンドウコントロールではないが、ウィンドウを持っているかのように動作できるグラフィックコントロールがある)で、このAPIを使って親ウィンドウのメッセージをもらっているという話を、聞いたことがあるからです。
  あんまり話を理解できてないので、間違った解釈をしているかもしれませんが。

編集 削除
Say  2003-09-25 16:45:23  No: 79558  IP: [192.*.*.*]

>SetWindowLong APIを使って、ウィンドウをサブクラス化することで行えます。
>SetWindowsHookExを使っても、できるのかもしれません。
どちらでも可能ですが、サブクラス化で対応できるなら、
フックする必要はないでしょう。

>あえて言うのなら、最終手段といったところかもしれません。
納品物として作っているのなら、SpyWorksのような
市販のサブクラスコントロールを使ったほうがいいかもしれません。

編集 削除
EOF  2003-10-07 13:06:52  No: 79559  IP: [192.*.*.*]

検証時間が無いため、とりあえず解決とします。
Sayさん、たかみちえさん、またよろしくお願いします。

編集 削除