WTRL呼び出しNIのActiveXコントロール
もっと読む
開発環境:vs 2008 sp 1、WTRL 8.1、cwui.ocx 8.6.11 Release(473)
紹介します
Meass rement Studio ActiveX サポートされているコントロールのリスト:http://www.ni.com/mstudio/activex_イガイギャラリー.httm
セットアップ
方法1)
Meass rementStudioをインストールしますが、評価ボードがアクティブになってから正式版になったら、ActiveXにはやはり「evalution copy」の透かしがあります。この時はMeass rementStudioを削除して再インストールする必要があります。
方法2)
ActiveXコントロールのみをインストールし、「ActiveX純正パッケージ」のダウンロード先は以下の通りです。
ftp://ftp.ni.com/support/softlib/measurement_スタジオ/Misc/NIActiveXUpdater.exe
シリアル番号だけが必要です。アクティブにするなどの操作が不要で、インストールが便利です。そして、ocxのバージョンはMeass rementStudio 2012のものより少し高いです。
使用する
ヘッダファイルstdafx.hに追加:
例1、DCWGraphコントロールを利用したグラフ
宣言:
参考:
http://www.cnblogs.com/kylindai/archive/2007/11/28/974797.html
.swf(2.1 MB) ダウンロード回数:21
開発環境:vs 2008 sp 1、WTRL 8.1、cwui.ocx 8.6.11 Release(473)
紹介します
Meass rement Studio ActiveX サポートされているコントロールのリスト:http://www.ni.com/mstudio/activex_イガイギャラリー.httm
セットアップ
方法1)
Meass rementStudioをインストールしますが、評価ボードがアクティブになってから正式版になったら、ActiveXにはやはり「evalution copy」の透かしがあります。この時はMeass rementStudioを削除して再インストールする必要があります。
方法2)
ActiveXコントロールのみをインストールし、「ActiveX純正パッケージ」のダウンロード先は以下の通りです。
ftp://ftp.ni.com/support/softlib/measurement_スタジオ/Misc/NIActiveXUpdater.exe
シリアル番号だけが必要です。アクティブにするなどの操作が不要で、インストールが便利です。そして、ocxのバージョンはMeass rementStudio 2012のものより少し高いです。
使用する
ヘッダファイルstdafx.hに追加:
#import "C:\Windows\system32\cwui.ocx" rename_namespace("Ni") no_auto_exclude
ノの_autoexclude 無視してはいけません。でないと、ControlImage()のようなインターフェースは使えません。例1、DCWGraphコントロールを利用したグラフ
宣言:
class CMainDlg : public CAxDialogImpl, public CUpdateUI,
public CMessageFilter, public CIdleHandler
{
public:
... ...
Ni::_DCWGraphPtr m_graphPtr;
CAxWindow m_graphWnd;
};
実用化:LRESULT CMainDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
... ...
m_graphWnd = GetDlgItem(IDC_CWGRAPH1);
m_graphWnd.QueryControl(&m_graphPtr);
m_graphPtr->ClearData();
... ...
}
正弦曲線を2つ描きます。(2つの曲線の形が同じで、上下に5つのオフセットがあります。) CComSafeArrayBound bound[2];// 2 [0, 0]; [1, 0]
bound[0].SetCount(2); // X-> 2
bound[0].SetLowerBound(0);
bound[1].SetCount(1); // Y-> 1
bound[1].SetLowerBound(0);
CComSafeArray sa(bound, 2);
long index[2], data;
data = index[0] = index[1] = 0;
for (int i=0; i< 100; i++)
{
double value = 2*sin(3.1415 * data / 5) + 3;
for (index[0]=0; index[0] < 2; index[0]++)
{
sa.MultiDimSetAt(index, value + index[0]*5);
}
_variant_t variant;
variant.vt = VT_ARRAY | VT_R8;
variant.parray = sa.m_psa;
m_graphPtr->PutYDataAppend(variant);
data ++;
}
参考:
http://www.cnblogs.com/kylindai/archive/2007/11/28/974797.html