WTL 调用 NI 的 ActiveX 控件

2024-01-11 11:32
文章标签 调用 控件 activex ni wtl

本文主要是介绍WTL 调用 NI 的 ActiveX 控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发环境:vs2008 sp1, WTL 8.1, cwui.ocx 8.6.11 Release (473)

一,介绍

Measurement Studio ActiveX 支持的控件列表:

http://www.ni.com/mstudio/activex_ui_gallery.htm

二,安装

方法1)

安装 MeasurementStudio,但是从评估板激活后转为正式版后,ActiveX还是会有"evaluation copy"的水印。这时需要删除MeasurementStudio,重新安装。

 

方法2)

只安装ActiveX控件,"ActiveX 纯净包" 下载地址在:

ftp://ftp.ni.com/support/softlib/measurement_studio/Misc/NIActiveXUpdater.exe

只需要序列号,不需要激活之类的操作,方便安装。而且ocx的版本比MeasurementStudio 2012的稍微高些。

三,使用

在头文件 stdafx.h 中增加:

#import "C:\Windows\system32\cwui.ocx" rename_namespace("Ni") no_auto_exclude

no_auto_exclude  不能忽略,不然无法使用 ControlImage() 这类接口。

 例1,利用 DCWGraph 控件画图

声明:

class CMainDlg : public CAxDialogImpl<CMainDlg>, public CUpdateUI<CMainDlg>,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条正弦曲线(两条曲线形状一样,上下偏移5)

	CComSafeArrayBound bound[2];// 2 维数组[0, 0]; [1, 0]bound[0].SetCount(2);  // X-> 2bound[0].SetLowerBound(0);bound[1].SetCount(1);  // Y-> 1bound[1].SetLowerBound(0);CComSafeArray<double> 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

 

这篇关于WTL 调用 NI 的 ActiveX 控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/594220

相关文章

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

【LabVIEW学习篇 - 21】:DLL与API的调用

文章目录 DLL与API调用DLLAPIDLL的调用 DLL与API调用 LabVIEW虽然已经足够强大,但不同的语言在不同领域都有着自己的优势,为了强强联合,LabVIEW提供了强大的外部程序接口能力,包括DLL、CIN(C语言接口)、ActiveX、.NET、MATLAB等等。通过DLL可以使用户很方便地调用C、C++、C#、VB等编程语言写的程序以及windows自带的大

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef‘ of undefined“

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef’ of undefined” 最近用vue做的一个界面,引入了一个子组件,在父组件中调用子组件的方法时,报错提示: [Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘methods

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建

MFC中Spin Control控件使用,同时数据在Edit Control中显示

实现mfc spin control 上下滚动,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:  OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) {  LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);  // TODO: 在此添加控件通知处理程序代码    if

类和对象的定义和调用演示(C++)

我习惯把类的定义放在头文件中 Student.h #define _CRT_SECURE_NO_WARNINGS#include <string>using namespace std;class student{public:char m_name[25];int m_age;int m_score;char* get_name(){return m_name;}int set_name