イベントメッセージルーチンは次の書式になります。
WndProcを使用する方法
Visual C# の機能としてイベントメッセージルーチンを使用する方法です。
WndProcを使用する場合、アプリケーションに関する全てのイベントが発生するたびにイベントメッセージルーチンが呼ばれます。
イベントメッセージルーチンの作成
C#でWndProcを用いる場合、コードの自動生成機能がありませんので、イベントメッセージルーチンに関わる部分は手動で記述してください。
以下の手順で関数を作成してください。
1. 関数の宣言
System.Windows.Forms 名前空間のクラス内の構造体Messageを用いると、システムからアプリケーションやコントロールに送られるメッセージに関する情報を取得できます。
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
Name="FullTrust")]
protected override void WndProc (ref Message m)
2.処理の記述
例:"デバイス動作終了イベント発生"と出力する場合
if ( m.Msg == (short)CaioConst.AIOM_AIE_END
)
{
label_Information.Text = "デバイス動作終了イベント発生";
}
3.ベースクラスのWndProc処理
WndProc関数を使用した後はこの処理を行います。
base.WndProc(ref m);
4.1~3を合わせると、イベントメッセージルーチンは以下のような形になります。
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
ame="FullTrust")]
protected override void WndProc(ref Message m)
{
if ( m.Msg == (short)CaioConst.AIOM_AIE_END )
{
label_Information.Text
= "デバイス動作終了イベント発生";
}
base.WndProc(ref m);
}
ウィンドウハンドルの指定
イベントを使用するためには、アプリケーションのウィンドウハンドルをデバイスドライバに設定する必要があります。
イベントの設定には以下の関数を使用します。
アナログ入力 |
aio.SetAiEvent |
アナログ出力 |
aio.SetAoEvent |
カウンタ |
aio.SetCntEvent |
タイマ |
aio.SetTmEvent |
これらのイベント設定関数で、パラメータhWndにウィンドウハンドルを指定します。
Visual C# .NETでは.NET Frameworkクラス内のメンバ変数Handleが
ウィンドウハンドルを所持しています。
このメンバ変数をそのまま指定してください。
Ret = aio.SetAiEvent ( Id , Handle , AiEvent ); |
Ret = aio.SetAoEvent ( Id , Handle , AoEvent ); |
Ret = aio.SetCntEvent ( Id , CntChannel , Handle , CntEvent ); |
Ret = aio.SetTmEvent ( Id , TimerId , Handle, TmEvent ); |