《matlabgui设计学习手记(第2版)》首先介绍了gui设计的预备知识;
然后详细讲解了gui对象的属性及两种创建gui的方法:采用函数创建和采用guide创建;
之后深入讲解了activex控件、定时器、串口及mcc编译的相关知识;
最后,书中给出两个综合实例,供读者研究学习。
书中穿插了大量的图表和例题,方便读者边查边练。
《matlabgui设计学习手记(第2版)》适合需要短时间内迅速掌握matlabgui设计的初学者,也可作为相关专业师生或工程开发人员的参考手册。
第1章GUl设计预备知识第2章文件1/O第3章二维绘图简介第4章句柄图形系统第5章预定义对话框第6章采用GUIDE建立GUI第7章ActiveX控件第8章定时器第9章串口编程第10章mcc编译第11章综合实例附录MATLABGUI设计常用函数
2025/10/29 4:26:03 45.69MB matlab GUI设计
1
**正文**在Windows操作系统开发中,MFC(MicrosoftFoundationClasses)是C++库的一个重要组成部分,它为构建桌面应用程序提供了一种结构化的框架。
而USBHID(HumanInterfaceDevice)是USB设备类规范的一种,主要用于人机交互设备,如键盘、鼠标、游戏控制器等。
本文将深入探讨如何使用MFC来实现对USBHID设备的读写操作。
我们需要理解USBHID的基本概念。
HID设备通过使用HID报告来与主机通信,这些报告包含了设备状态和用户输入的数据。
HID类驱动程序是操作系统的一部分,负责解析和处理这些报告。
开发者无需编写驱动程序,只需与设备的接口进行交互即可。
在MFC环境下,我们可以使用`CreateFile`函数打开USBHID设备,其参数通常包括设备的设备路径,例如`\\?\usb#vid_XXXX&pid_YYYY#...`,这里的`XXXX`和`YYYY`分别是设备的供应商ID和产品ID。
接着,我们调用`DeviceIoControl`函数来进行读写操作,传递适当的控制代码,如`IOCTL_HID_GET_REPORT`或`IOCTL_HID_SET_REPORT`。
为了更方便地管理USBHID设备,我们可以创建一个MFC类来封装这些系统调用。
这个类可以包含成员变量,如设备句柄、设备描述符和报告ID,以及成员函数,如`OpenDevice`、`ReadReport`、`WriteReport`和`CloseDevice`。
以下是一个简单的MFC类设计示例:```cppclassCHIDDevice:publicCObject{public:CHIDDevice();~CHIDDevice();boolOpenDevice(LPCTSTRdevicePath);voidCloseDevice();boolReadReport(void*buffer,DWORDsize);boolWriteReport(void*buffer,DWORDsize);private:HANDLEm_hDevice;};```在`OpenDevice`中,我们执行`CreateFile`,在`CloseDevice`中关闭句柄。
`ReadReport`和`WriteReport`则分别使用`DeviceIoControl`进行读写操作,传递适当的缓冲区和大小。
在实际应用中,我们还需要处理USBHID设备的枚举和选择。
可以遍历`SetupDiGetClassDevs`返回的设备信息集,获取HID设备的详细信息,并根据需求选择合适的设备。
此外,为了处理异步读写,可以使用MFC的消息机制,如消息队列和消息映射,或者使用CAsyncSocket或CAsyncMonikerFile等异步I/O类。
利用MFC开发USBHID应用涉及以下几个关键步骤:1.**设备枚举**:使用`SetupDiGetClassDevs`枚举HID设备,通过`SetupDiEnumDeviceInfo`获取设备详细信息。
2.**设备连接**:使用`CreateFile`打开设备,获得设备句柄。
3.**读写操作**:通过`DeviceIoControl`进行数据交换,读取或设置HID报告。
4.**错误处理**:适当处理可能的错误,如设备未找到、访问权限问题等。
5.**异步处理**:根据需要,使用MFC的消息机制实现异步读写。
通过以上步骤,开发者可以构建一个功能完备的MFC应用程序,实现对USBHID设备的高效控制。
在实际项目中,还可以考虑添加设备事件监听、多设备管理等功能,以提升应用的灵活性和可扩展性。
2025/10/11 10:31:51 30.04MB USB
1
MicrosoftSpy++,windows窗口句柄获取工具
2025/8/6 19:37:40 695KB windows 10 windows 7
1
编程要点 /////坐标转换///////////// CClientDCdc(this);//定义设备对象 OnPrepareDC(&dc);//初始化设备对象 CPointlocal=point;//定义CPoint类实体,并初始化为设备坐标dc.DPtoLP(&local);//将设备坐标转为逻辑坐标//将该段程序放入OnLButtonDown(UINTnFlags,CPointpoint)//和OnMouseMove(UINTnFlags,CPointpoint)中 //////////////////////////显示光标位置 CStringmsg; msg.Format("X=%4d,Y=%4d", local.x,local.y); CMainFrame*pAppFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; pAppFrame->m_wndStatusBar.SetPaneText(0,msg); pAppFrame->m_wndStatusBar.UpdateWindow();/////改变光标///////////// CSizeScrollSize=GetTotalSize(); CRectScrollRect(0,0,ScrollSize.cx,ScrollSize.cy); if(m_SelectFunction!=13) { if(!ScrollRect.PtInRect(local)) ::SetCursor(m_HCross); else ::SetCursor(m_HArrow);//将该段程序放入OnMouseMove(UINTnFlags,CPointpoint)中,并放在坐标转换的后面//在视图类的头文件的public:后面加上两个光标句柄HCURSORm_HArrow; HCURSORm_HCross;//在视图类的CCP文件的类构造器中加入以下两句 m_HArrow=AfxGetApp()->LoadStandardCursor(IDC_ARROW); m_HCross=AfxGetApp()->LoadStandardCursor(IDC_CROSS);
2025/7/23 5:48:18 1.13MB 内定向
1
工具说明:1.本工具可以用来隐藏你想要隐藏的窗口,以前是为了上班时间玩游戏用的^_^2.找窗口按钮,用来查找标题为下拉列表框内容的窗口句柄3.如果要查找的窗口标题太长,不好输入,可以勾选“查询当前窗口”,然后迅速切换到要查找的窗口,1秒钟后,被激活的窗口句柄就被找出来了。
4.可以用"Rename"按钮来给窗口改名字。
5.当勾选了“剩xx个关机”的时候,如果要查找的窗口数量少于这个数量,就关机了。
用于游戏多开的。
比如你一个法师,一个医生一起挂机,用医生给法师加血,用法师攻击。
如果医生的那个窗口被自己的外挂给call死了,那你的法师也很有危险,可以用这个方法强行关机。
(不玩网游的可以跳过这个功能)6.可以再Hidewindow.ini中添加你常用的窗口标题。
自己写的小工具,如果能给你提供一些参考就算给CSDN做了一点点贡献
2025/7/10 7:23:47 5KB VB 隐藏窗口 界面 查找窗口
1
SystemInformationGathererAndReporter,系统信息收集和报表工具。
一个开源的工具,提供了跨平台的系统信息收集的API,通过它可以获取包括:1.操作系统的信息,包括:dataModel、cpuEndian、name、version、arch、machine、description、patchLevel、vendor、vendorVersion、vendorName、vendorCodeName2.CPU信息,包括:基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)3.内存信息,物理内存和交换内存的总数、使用数、剩余数;
RAM的大小4.进程信息,包括每个进程的内存、CPU占用数、状态、参数、句柄等。
5.文件系统信息,包括名称、容量、剩余数、使用数、分区类型等6.网络接口信息,包括基本信息和统计信息。
7.网络路由和链接表信息。
支持多种操作系统,底层接口用C编写。
2025/6/9 3:15:39 3.18MB Sigar
1
可以获取正常情况下无法获取的窗口句柄,某些网络游戏会有屏蔽正常获取游戏窗口句柄,用此代码可以正常
2025/5/23 13:27:15 65KB 获取窗体句柄
1
.版本2.子程序窗口_截图,字节集,公开,截取指定窗口的位图,可截取窗口中指定区域,最小化窗口或不可见窗口无法截取位图.参数窗口句柄,整数型,,欲截取窗口图片的窗口句柄.参数左边,整数型,可空,默认为0在窗口中截取图片的左边(相对于窗口的左边偏移坐标).参数顶边,整数型,可空,默认为0在窗口中截取图片的顶边(相对于窗口的顶边偏移坐标).参数宽度,整数型,可空,在窗口中截取图片的宽度(若为空,则截取整个窗口位图).参数高度,整数型,可空,在窗口中截取图片的高度(若为空,则截取整个窗口位图).子程序窗口_判断色彩度相同数,逻辑型,公开,满足最低相同数目返回真,否则返回假.参数窗口句柄,整数型,,指定的窗口句柄(对于最小化窗口或不可见窗口无效).参数色,整数型,,欲判断的颜色色彩度(色彩度:0-255).参数最低,整数型,,最低相同的数目.参数左下角,识图_坐标,可空,判断范围的左下角坐标,默认为0.参数宽度,整数型,,向右的范围宽度.参数高度,整数型,,向上的范围高度.参数返回相同数,整数型,参考可空.子程序窗口_取颜色,整数型,公开,取出窗口中指定点的颜色值(返回十进制颜色值,失败返回-1).参数窗口句柄,整数型,,欲取颜色值所在窗口的句柄.参数坐标X,整数型,,欲取的颜色值在窗口中的横坐标.参数坐标Y,整数型,,欲取的颜色值在窗口中的纵坐标.子程序窗口_取颜色数,整数型,公开,取出窗口中指定范围内某种颜色的数目,失败返回-1,未找到返回0.参数窗口句柄,整数型,,指定的窗口句柄(对于最小化窗口或不可见窗口无效).参数颜色,整数型,,欲判断的十进制颜色.参数左边,整数型,可空,范围左边,默认为0.参数顶边,整数型,可空,范围顶边,默认为0.参数宽度,整数型,,范围矩形宽度.参数高度,整数型,,范围矩形高度.参数相似度,整数型,可空,可空:无误差(0-255)RGB误差值无误差是带误差效率一半.子程序窗口_取最多色,整数型,公开,取出窗口中指定范围内最多的一种颜色值,返回十进制颜色值,失败返回-1.参数窗口句柄,整数型,,指定的窗口句柄(对于最小化窗口或不可见窗口无效).参数左边,整数型,可空,范围左边,默认为0.参数顶边,整数型,可空,范围顶边,默认为0.参数宽度,整数型,,范围矩形宽度.参数高度,整数型,,范围矩形高度.参数数目,整数型,参考可空,返回该颜色的数目.子程序窗口_找色彩,识图_坐标,公开,在窗口中指定范围内查找符合条件的色彩度,返回第一个符合条件的坐标(失败或未找到返回-1坐标).参数窗口句柄,整数型,,指定的窗口句柄(对于最小化窗口或不可见窗口无效).参数色彩度低,整数型,,欲寻找色彩度范围-低位(色彩度:0-255).参数色彩度高,整数型,,欲寻找色彩度范围-高位(色彩度:0-255).参数左边,整数型,可空,寻找范围-矩形左边,默认为0.参数顶边,整数型,可空,寻找范围-矩形顶边,默认为0.参数宽度,整数型,,寻找范围-矩形宽度.参数高度,整数型,,寻找范围-矩形高度
2025/3/28 20:14:25 119KB 识图模块
1
vc制作仿spyxx程序_WindowFromPoint根据鼠标坐标获得所在窗口的句柄.zip
2025/3/18 9:03:18 43KB spyxx c++
1
算符优先分析是自底向上优先分析(移进-归约分析)思想基础上的一种重要的算法,算符优先分析法是一种简单直观、特别方便于表达式分析,易于手式实现的方法。
算符优先分析法是仿效算数四则运算而建立起来的。
做四则运算时,为了保证计算结果和过程的唯一性,规定了一个统一的四则运算法则,规定了运算符之间的优先关系。
算符优先分析法仿效四则运算过程,它预先规定了相邻终结符之间的优先关系,然后利用这种优先关系来确定句型的“句柄”,并进行归约。
2024/12/14 16:29:52 874KB 算符优先分析文法
1
共 70 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡