CVI有消息机制么

CVI有消息机制么,第1张

windows程序的运行是基于消息机制的,用户通过鼠标、键盘等输入自己的意向,然后这些意向以消息的形式被发送给软件,软件根据消息做出响应。

每个windows程序线程,都有一个消息循环。程序在消息循环中等待消息,然后翻译消息,并把消息发送出去。所谓的将消息发送出去,就是让系统调用相应的窗口回调函数来处理消息。

很多软件开发平台都把这一过程给封装了起来,用户自己不需要处理。

Labwindows/CVI就是其中之一。CVI将windows消息的响应和处理全部封装起来,CVI的用户其实可以不用知道windows消息机制,就可以开发出自己想要的软件。

CVI将消息的响应和处理封装起来后,却给用户留下了它独特的事件机制。用户在使用CVI开发软件的时候,一般只需要根据CVI的事件来做相应的响应,而一般都不需要直接处理windows消息。当然,如果确实有这么一个需要,CVI也保留了这一功能。

CVI封装的事件机制:

RunUserInterface (); // 此函数相当于 Windows API 的消息循环,一般在CVI的MAIN函数中运行。

// 比如下面是CVI面板回调函数

int CVICALLBACK QuitCB (int panel, int event, void callbackData,

int eventData1, int eventData2)

{

switch (event)

{

case EVENT_CLOSE:

// 执行相关代码。

QuitUserInterface (0);

break;

}

return 0;

}

当单击窗口的X号时通过RunUserInterface ()事件处理函数,就会调用QuitCB()回调函数,此时鼠标单击X的事件就会通过QuitCB()函数的event参数传入,由case EVENT_CLOSE:来处理此事件,完成退出 *** 作。实际这个过程就是CVI 完全对windows的消息做的封装。

你也完全可以用PostMessage(hWnd,WM_USER_MESSAGE,wParam,0); 的方式发送消息,

用,

InstallWinMsgCallback (panelHandle, WM_USER_MESSAGE, MsgCallback, VAL_MODE_IN_QUEUE, NULL,(int )&hwnd );

安装一个消息处理函数,在

MsgCallback 函数中处理自定义消息。

SetAxisScalingMode(panel,PANEL_GRAPH,VAL_LEFT_YAXIS,VAL_MANUAL,min,max);

设置左Y坐标轴MANUAL方式工作,并设置最大值和最小值。

SetCtrlAttribute(panel,PANEL_GRAPH,ATTR_XPRECISION,log);

设置X轴的坐标数据的小数位位数。

SetCtrlAttribute(panel,PANEL_ACQUIRE,ATTR_DIMMED,1)

SetCtrlAttribute(panel,PANEL_GRAPH,ATTR_XAXIS_GAIN,10/rate)

设置X坐标轴的增益。

data=malloc(sampsPerChannumChannelssizeof(float64)))=NULL

分配内存,成功的话返回内存指针,不成功返回NULL(空指针)。

ProcessDrawEvents();

时时刷屏。

以上就是关于CVI有消息机制么全部的内容,包括:CVI有消息机制么、labwindows/cvi里面的一些程序,这几条都不知道什么意思,大家帮忙解释一下。这几条程序没按顺序。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9854583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存