不在这个行业混,但还是喜欢这个专业,闲暇还是喜欢写代码,虽然是菜鸟!
大学学了很多年C语言,发现想用C语言写个项目太难了,2018年看到Labwindows/cvi这个软件,发现通过它,用C语言可以很方便的做出上位机软件。和当前主流的面向对象的编程语言比,可能有诸多不适应,但是专业针对工业应用软件开发设计,相应的控件齐全,模块丰富,还是很不错的。
通过“Project from Template”创建一个CVIHelloWorld的项目后,界面如下:
右键拖放两个Command button和一个string 控件,定义各自的回调函数名。
点击菜单:code——generate——All code... 生成代码。
在回调函数 int CVICALLBACK btnHello中的 case EVENT_COMMIT后面插入语句:
SetCtrlVal (panelHandle, PANEL_STRING, "Hello CVI 2019");
使用软件用户接口库插入画面如下:
再增加一句弹窗提示:MessagePopup("CVI 2019", "Hello World!");
编译运行,看到如下效果。
完整代码如下:
#include <cvirte.h>
#include <userint.h>
#include "CVIHelloWord.h"
static int panelHandle;
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "CVIHelloWord.uir", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK panelCB (int panel, int event, void *callbackData,int eventData1, int eventData2)
{
switch (event)
{
case EVENT_GOT_FOCUS:
break;
case EVENT_LOST_FOCUS:
break;
case EVENT_CLOSE:
break;
}
return 0;
}
int CVICALLBACK strHello (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
break;
}
return 0;
}
int CVICALLBACK btnHello (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
//把string控件内容设置为“Hello CVI 2019”
SetCtrlVal (panelHandle, PANEL_STRING, "Hello CVI 2019");
//弹出提示框
MessagePopup("CVI 2019", "Hello World!");
break;
}
return 0;
}
int CVICALLBACK btnExit (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
//退出程序
QuitUserInterface (0);
break;
}
return 0;
}
欢迎交流QQ:491114509