- ベストアンサー
イベントの発生から対応する処理実行までの作り方
以前に、ボタンクリックなどのイベントが起きたら すぐにそのボタンクリックに対応した処理をその場(イベント ハンドラ)で実行するのではなく、 "イベントが発生しました関数"のようなものに最初に イベント情報を渡してしまい、あとはその関数からイベントが 振り分けられていき、最終的にそのイベントに対応した処理が 実行される。といったプログラムを見たことがあるのですが、 このような技法は一般的に行われるものなのでしょうか? 巨大なプログラムになるとこのような技法が使われる気が しますが・・・ また、この技法には何か名前がついているのでしょうか? また、これに関して記載しているサイト・書籍などありましたら 教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
名前についてはわかりませんが、 メニューから ツールバーから ショートカットキーから 外部プログラムの操作から 起動時引数から マクロから 同じ機能を呼び出す場合などに使うことがあるかもしれません。 私の場合はすべての操作を一つの関数にまとめるよりは、機能ごとに関数(クラスのメソッド)を作るやり方の方が好みです。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
一般にウインドウズの処理は「メッセージ」(特別な意味あり)のやり取りでプログラムが進行するといわれています。そのメッセージはマウスなどウインドウズ画面で起こったことをすべてOSに知らせ、OSが解析して、ユーザーにVBやVBAのレベルでは、それらを整理して、イベントというカタチで渡してくれるようです。 http://www.kanazawa-net.ne.jp/~pmansato/WinApps.htm など 「ウインドウズ メッセージ処理」でWEB照会し記事を拾い読みしてはどうでしょう。 その辺をより直接扱うのは各種API関数、DLL関数の世界と思います。 >一般的に行われるものなのでしょうか 仕事(処理内容)によると思います。APIレベルで処理しないと出来ない業務(その一部が)もあるでしょう。 >巨大なプログラムになるとこのような技法が使われる 巨大というのはどういうことを言うかあいまいですが、コード数が多い、従事人数が多い業務処理ほど、余りAPIレベルでやらず、それを含んだ関数(サブルーチン、サブモジュール)を表面上コーディングで使うのではないでしょうか。標準化・省力化・バグの減少狙いということもあります。 「クラス」や「ラップ」「フック」という言葉も照会してみたら。 http://msdn.microsoft.com/ja-jp/library/cc344696.aspx ほかに http://oshiete1.goo.ne.jp/qa2724554.htmlなど。
お礼
ご回答ありがとうございます。
お礼
なるほど、まとめる単位は機能ごととするやり方も あるのですね ご回答ありがとうございます。