加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

得用LabWindows/CVI实现将别的应用程序成为自己程序的一个子窗口

(2007-02-08 11:41:39)
分类: LabWindow/CVI技术文章
  是不是有一个更好的办法,把别人已经编写好的应用程序放入到自己的应用程序窗口之中去呢?答案当然是肯定的--有!
  在这里,我将记事本和记算器都放到了自己所做的一个应用程序中,感觉还不错!其实,程序非常简单,只有几句话罢了!
  程序的界面为:
得用LabWindows/CVI实现将别的应用程序成为自己程序的一个子窗口
  看起来记事本和计算器好像是自己编写的一样,在自己的程序中运行!不过,由于LabWindows/CVI在消息传递上存在一些BUG,所以,对于程序的运行,多少会出现一些不如人意的地方,但,不管怎么说,也还是相当不错的。
  如果在自己的程序中需要用到这些功能,可不要忘记这个功能哟!因为,大家可以把Word、Excel甚至是LabWindows/CVI都放到自己的一个一个窗口环境中去,是不是很有意思?!
  代码为:
 
#include "windows.h"
#include "shellapi.h"
#include   
#include
#include "window.h"
static int handle;
static int panelHandle;
int main (int argc, char *argv[])
{
 if (InitCVIRTE (0, argv, 0) == 0)
  return -1; /* out of memory */
 if ((panelHandle = LoadPanel (0, "window.uir", PANEL)) < 0)
  return -1;
 
 GetPanelAttribute (panelHandle, ATTR_SYSTEM_WINDOW_HANDLE, &handle);
 
 
 DisplayPanel (panelHandle);
 RunUserInterface ();
 DiscardPanel (panelHandle);
 return 0;
}
int CVICALLBACK calc (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 HWND hwnd;
 switch (event)
 {
  case EVENT_COMMIT:
   ShellExecute((HWND)handle, "open", "calc.exe", NULL, NULL, SW_NORMAL);
   hwnd = FindWindow(NULL, "计算器"); 
   SetParent(hwnd, (HWND)handle);
   break;
 }
 
 
 return 0;
}
int CVICALLBACK notepad (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 HWND hwnd;
 switch (event)
 {
  case EVENT_COMMIT:
   ShellExecute((HWND)handle, "open", "notepad.exe", NULL, NULL, SW_NORMAL);
   hwnd = FindWindow(NULL, "无标题 - 记事本"); 
   SetParent(hwnd, (HWND)handle);
   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;
}

0

阅读 收藏 喜欢 打印举报/Report
前一篇:认识虚拟仪器
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有