イベントとウィンドウメッセージの書き方

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
sk
記事: 11
登録日時: 2005年9月29日(木) 14:45
お住まい: 兵庫県
連絡する:

イベントとウィンドウメッセージの書き方

#1 投稿記事 by sk »

コード: 全て選択

Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
	Select Case dwMsg
		Case WM_SIZE
			test_A()
	End Select

	MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function

Sub MainWnd_Resize(SizeType As Long, cx As Integer, cy As Integer)
	test_B()
End Sub
上のコードで test_A と test_B が実行されるのですが(順番は知りません)、
イベントとして記述できるものはMainWndProcに記述しない方が良いのでしょうか?
淡幻星
記事: 183
登録日時: 2005年7月19日(火) 07:02
お住まい: 宮城県
連絡する:

Re: イベントとウィンドウメッセージの書き方

#2 投稿記事 by 淡幻星 »

skさん さんが書きました:> イベントとして記述できるものはMainWndProcに記述しない方が良いのでしょうか?
好みの問題だと思います。
もちろん、両方に記述するのはダメです。
どちらか一方に記述します。

私は、
「MainWndProc()内に自分で記述して管理するところを、
 開発環境(RAD)に任せて考えなくてすむのがRADの良いところ」
と理解しています。
この例で言うなら、イベント(MainWnd_Resize)はEventCall_MainWnd内に
[Case WM_SIZE]の記述があるに過ぎません。
その記述をプログラマが自分で書くのか、それともRADが自動生成するのか、
の違いです。ちなみに、このコードでは実行される順序は
 1、test_A()
 2、EventCall_MainWnd()→MainWnd_Resize()→test_B()
となります。

私の場合は、呼び出し関数名などを自分で決めたい場合や、
呼び出し順序を気にしたい場合には、MainWndProc内に直接書いています。
それ以外は、せっかくRADがあるのでイベントを利用しています。
いちいちメッセージ(WM_SIZE)やパラメータ(SizeType As Longなど)を
調べ(て上位下位に分解したりす)る面倒が解消されますので。




いつものように蛇足。
本来、RADとはウィンドウプロシージャの処理や窓のサイズ・配置などの
面倒なコーディングをプログラマが考えなくて良いようにして、
簡単にソフト開発を行えるようにするための開発環境として作り出されたはず。
でも、結局はその辺を理解して無いとうまく作れないし、
配置とかも結局はSiseイベントで直にいじるハメになったり、
しているのは気のせいか?w
ゲスト

#3 投稿記事 by ゲスト »

RADとは、インターフェイスだけに留まらず、お手軽に開発できる、
環境全体レベルのものを言います。
APIの呼び出しが主では、RAD開発環境とは、言い難いです。
sk
記事: 11
登録日時: 2005年9月29日(木) 14:45
お住まい: 兵庫県
連絡する:

#4 投稿記事 by sk »

返信ありがとうございます

せっかくのRADですしイベントで記述できるところはその通りにするのが一番ですね
返信する