2、.h>#include"ApiExusb.h"#pragmacomment(lib,"ApiExusb.lib")#include//回调函数声明LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam);//初始化窗口类声明BOOLInitWindowsClass(HINSTANCEhInstance,char*lpszClassName);//初始化窗口声明BOOLInitWindows(HINSTANCEhInstance,intnCmdShow,char*lpszClas
3、sName,char*lpTitle);WNDCLASSwndclass;//定义一个窗口类HWNDhwnd;//定义一个窗口句柄intnNum=0;//为灯的状态赋初值,记录交通灯的状态,0--东西绿灯,南北红灯1--东西黄灯,南北红灯//2--东西红灯,南北绿灯3--东西红的,南北黄灯intstatus[4]={0x21,0x11,0x0c,0x0a};//控制试验箱灯的状态POINTpt[6]={{20,20},{80,20},{140,20},{20,80},{80,80},{140,80}};//六盏灯的圆心坐标上面为东西,下面为南北,从左到右依次为绿黄红intWINAP
4、IWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){MSGMsg;//定义消息charlpszClassName[]="交通灯";//窗口的类名charlpTitle[]="基本绘图-交通灯";//窗口标题名if(!Startup())/*打开设备*/{//printf("ERROR:OpenDeviceError!");return0;//exit(0);}printf("Enteranykeywillreturn:");PortWriteByte(0x28b,0x8
5、0);//向控制口写命令,控制c口输出//初始化窗口类if(!InitWindowsClass(hInstance,lpszClassName)){returnFALSE;}//初始化窗口if(!InitWindows(hInstance,nCmdShow,lpszClassName,lpTitle)){returnFALSE;}//消息循环while(GetMessage(&Msg,NULL,0,0)){TranslateMessage(&Msg);DispatchMessage(&Msg);}Cleanup();/*关闭设备*/returnMsg.wParam;//程序终止时将
6、信息返回系统}//初始化窗口类定义BOOLInitWindowsClass(HINSTANCEhInstance,char*lpszClassName){//1、窗口类定义wndclass.style=0;//窗口类型为默认类型wndclass.lpfnWndProc=WndProc;//窗口处理函数为WNDPROCwndclass.cbClsExtra=0;//窗口类无扩展wndclass.cbWndExtra=0;//窗口实例无扩展wndclass.hInstance=hInstance;//当前实例句柄wndclass.hIcon=LoadIcon(NULL,IDI_APPL
7、ICATION);//窗口的最小化图标为默认图标wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口采用箭头光标wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口采用白色背景wndclass.lpszMenuName=NULL;//窗口中无菜单wndclass.lpszClassName=lpszClassName;//类名为lpClassName/