Visual C#


Visual C# の機能としてイベントメッセージルーチンを使用する方法です。

WndProcを使用する場合、アプリケーションに関する全てのイベントが発生するたびにイベントメッセージルーチンが呼ばれます。

イベントメッセージルーチンの作成

Visual 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.処理の記述

例:"チャネル0カウント一致"と出力する場合

if ( m.Msg == (short)CcntConst.CNTM_COUNTUP_CH0 )
{
    label_Information.Text = "チャネル0カウント一致";
}

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)CcntConst.CNTM_COUNTUP_CH0 )
    {
        label_Information.Text = "チャネル0カウント一致";
    }
    base.WndProc(ref m);
}

ウィンドウハンドルの指定

イベントを使用するためには、アプリケーションのウィンドウハンドルをドライバーに設定する必要があります。
イベントの設定には以下の関数を使用します。

カウント一致の通知

CntNotifyCountUp

カウンタエラーの通知

CntNotifyCounterError

キャリー/ボローの通知

CntNotifyCarryBorrow

タイマーの通知

CntNotifyTimer

サンプリング停止の通知

CntNotifySamplingStop

指定個数サンプリング完了の通知

CntNotifySamplingCount

これらのイベント設定関数で、パラメータhWndにウィンドウハンドルを指定します。

Visual C#では.NETクラス内のメンバ変数Handleがウィンドウハンドルを所持しています。このメンバ変数をそのまま指定してください。

Ret = cnt.NotifyCountUp ( Id , 0 , 0 , 10000 , Handle );

Ret = cnt.NotifyCounterError ( Id , Handle );

Ret = cnt.NotifyCarryBorrow ( Id , Handle );

Ret = cnt.CntNotifyTimer ( Id , 100 , Handle );

Ret = cnt.NotifySamplingStop ( Id , Handle );

Ret = cnt.NotifySamplingCount ( Id , Handle );