WTRL呼び出しNIのActiveXコントロール

2391 ワード

もっと読む
開発環境: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
 
  • .swf(2.1 MB)
  • ダウンロード回数:21