⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample18_exe.c

📁 机械工业出版社 Lab Windows/CVI逐步深入与开发实例源代码
💻 C
字号:
#include <cvirte.h>		/* Needed if linking in external compiler; harmless otherwise */
#include <userint.h>
#include <windows.h>
#include "sample18_exe.h"
#include "sample18_dll.h"

static int panelHandle;

int main (int argc, char *argv[])
{
	char tagName[50],tagValue[50];
	int tagNameLen=50,tagValueLen=50;
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;
	
	if ((panelHandle = LoadPanel (0, "sample18_exe.uir", PANEL)) < 0)
		return -1;
    
    strcpy (tagValue, "");
    
    //读取注册表指定位置的字符串型键值
    ReadRegString ( HKEY_CURRENT_USER,"Software\\CviDllTest",
                       0,tagName,&tagNameLen,tagValue,&tagValueLen);
	//显示从注册表中读取字符串
    SetCtrlVal (panelHandle, PANEL_STRING, tagValue);
	
    DisplayPanel (panelHandle);
    RunUserInterface ();
	
    //从STRING控件中读取字符串型数据
    GetCtrlVal (panelHandle, PANEL_STRING, tagValue);
    //将字符串型数据存储到注册表指定位置
    WriteRegString ( HKEY_CURRENT_USER,"Software\\CviDllTest",
                        0, tagName,  tagValue);	
	return 0;
     }


int CVICALLBACK PanelCallback (int panel, int event, void *callbackData,
		int eventData1, int eventData2)
{
	switch (event)
		{
		case EVENT_CLOSE:
		
			QuitUserInterface (0);
			
			break;
		}
	return 0;
}

int CVICALLBACK QuitCallback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
		{
		case EVENT_COMMIT:
		
			QuitUserInterface (0);
			
			break;
		}
	return 0;
}

int CVICALLBACK TimerCallback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
  short capLock,numLock,scrollLock; 
  switch(event)
  {
    case EVENT_TIMER_TICK:
     //调用GetVKLock函数获取键盘状态
     GetVKLock(&capLock, &numLock, &scrollLock);
     // 更新CAPSLOCK、NUMLOCK、SCROLLLOCK三控件的值
	 SetCtrlVal (panel, PANEL_CAPSLOCK, capLock);
	 SetCtrlVal (panel, PANEL_NUMLOCK, numLock);
	 SetCtrlVal (panel, PANEL_SCROLLLOCK, scrollLock);
    break;
		}
	return 0;
}


int CVICALLBACK DrawCallback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	int window;
	switch (event)
		{
		case EVENT_COMMIT:
           //获取面板的窗口句柄,只适合父面板
           GetPanelAttribute(panelHandle, ATTR_SYSTEM_WINDOW_HANDLE,
                        &window);
          //调用DrawTextInWindow函数实现特殊字效
          DrawTextInWindow (window, 30, 10, "LabWindows/CVI", "Arial",
                            50, 1, 1, 5, 16777215);
			break;
		}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -