首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

利用LabWindows/CVI控制显示器的开启与关闭

利用LabWindows/CVI控制显示器的开启与关闭

      本例子举例说明了在LabWindows/CVI中调用SDK函数过程中使用两种方式获得调用句柄。在LabWindows/CVI句柄的数据类型为整型,而在Windows中,句柄的类型通常为HWND类型,这就需要在使用过程中进行强制转换。
  如果想在电脑运行时关闭显示器节电,那么可以用如下程序。
 
  程序界面:
 
  
 
  程序代码:
 
#include "windows.h"
#include   
#include
#include "显示器操作.h"
static int panelHandle;
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                       LPSTR lpszCmdLine, int nCmdShow)
{
 if (InitCVIRTE (hInstance, 0, 0) == 0)
  return -1; /* out of memory */
 if ((panelHandle = LoadPanel (0, "显示器操作.uir", PANEL)) < 0)
  return -1;
 DisplayPanel (panelHandle);
 RunUserInterface ();
 DiscardPanel (panelHandle);
 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 off (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 int handle;
 switch (event)
 {
  case EVENT_COMMIT:
   
   //获得面板句柄
   GetPanelAttribute (panelHandle, ATTR_SYSTEM_WINDOW_HANDLE, &handle);
   
   //关闭显示器
   SendMessage((HWND)handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
   break;
 }
 return 0;
}
//开启按钮
int CVICALLBACK on (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 int handle;
 switch (event)
 {
  case EVENT_COMMIT:
   
   //获得CVI窗口句柄
   handle = GetCVIWindowHandle();
   
   //打开显示器
   SendMessage((HWND)handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
   break;
 }
 return 0;
}
转自:小信的博客
guQ1JWmz.rar (383.34 KB)
强!有意思!去试试!哈哈!谢谢版主了!

你应该把上一个例子给发过来

这个用处不是很大的

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/

我想看看

[em01]
厉害哦
返回列表