美文网首页
labwindows/cvi 2019入门(1)——Hello

labwindows/cvi 2019入门(1)——Hello

作者: 菜鸟笔记 | 来源:发表于2019-06-03 22:00 被阅读0次

    不在这个行业混,但还是喜欢这个专业,闲暇还是喜欢写代码,虽然是菜鸟!

    大学学了很多年C语言,发现想用C语言写个项目太难了,2018年看到Labwindows/cvi这个软件,发现通过它,用C语言可以很方便的做出上位机软件。和当前主流的面向对象的编程语言比,可能有诸多不适应,但是专业针对工业应用软件开发设计,相应的控件齐全,模块丰富,还是很不错的。

    image

    通过“Project from Template”创建一个CVIHelloWorld的项目后,界面如下:

    image

    右键拖放两个Command button和一个string 控件,定义各自的回调函数名。

    image

    点击菜单:code——generate——All code... 生成代码。

    在回调函数 int CVICALLBACK btnHello中的 case EVENT_COMMIT后面插入语句:

    SetCtrlVal (panelHandle, PANEL_STRING, "Hello CVI 2019");

    使用软件用户接口库插入画面如下:

    image

    再增加一句弹窗提示:MessagePopup("CVI 2019", "Hello World!");

    image

    编译运行,看到如下效果。

    image

    完整代码如下:

    #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

    相关文章

      网友评论

          本文标题:labwindows/cvi 2019入门(1)——Hello

          本文链接:https://www.haomeiwen.com/subject/rnnhxctx.html