MFC入门教程之控件(7)设备自动检测ondevicechange的添加和使用

MFC中用Combo控件管理串口并实现插拔 MFC中用Combobox控件来管理串口已经实现热插拔的监测 阅读详情

MFC入门学习(1)了解MFC

 

源文档<http://blog.youkuaiyun.com/codectq/article/details/19131227>

 

MFC入门学习之控件(2)创建一个对话框窗口并在运行时显示

 

源文档<http://blog.youkuaiyun.com/codectq/article/details/19131289>

 

MFC入门学习之控件(3)标签控件Tab Control的添加和使用

 

源文档<http://blog.youkuaiyun.com/codectq/article/details/19131553>

 

MFC入门学习之控件(4)标签控件List Control的添加和使用(上)

 

源文档<http://blog.youkuaiyun.com/codectq/article/details/19176595>

 

MFC入门学习之控件(5)标签控件List Control的添加和使用(中)

 

源文档<http://blog.youkuaiyun.com/codectq/article/details/19204165>

 

MFC入门学习之控件(6)标签控件List Control的添加和使用(下)

 

源文档<http://blog.youkuaiyun.com/codectq/article/details/23550465> 


在对话框初始化过程中将设备通知消息注册到winproc中

//Register to receive notification when a USB device is plugged in.

broadcastInterface.dbcc_size =sizeof(DEV_BROADCAST_DEVICEINTERFACE);

broadcastInterface.dbcc_devicetype =DBT_DEVTYP_DEVICEINTERFACE;

 

memcpy( &(broadcastInterface.dbcc_classguid),

&(GUID_CLASS_USB_DEVICE),

sizeof(struct _GUID));

 

gNotifyDevHandle = RegisterDeviceNotification(hwnd,

&broadcastInterface,

DEVICE_NOTIFY_WINDOW_HANDLE);

 

// Now register for Hub notifications.

memcpy( &(broadcastInterface.dbcc_classguid),

&(GUID_CLASS_USBHUB),

sizeof(struct _GUID));

 

gNotifyHubHandle = RegisterDeviceNotification(hwnd,

&broadcastInterface,

DEVICE_NOTIFY_WINDOW_HANDLE);

 

 编写设备状态变化时的状态解析函数:

 

OnDeviceChange(UINTnEventType, DWORD dwData)

{

PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)dwData;

char cDrive;

TRACE("OnDeviceChange: %u\n",nEventType);

switch(nEventType)

{

case DBT_DEVICEARRIVAL:

TRACE("OnDeviceChange: DBT_DEVICEARRIVAL\n");

if(DBT_DEVTYP_VOLUME == lpdb->dbch_devicetype)

{

 

 

 

 

//Logical volume has been inserted and becomes available

PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;

if(0 == lpdbv->dbcv_flags)

{

cDrive = FirstDriveFromMask(lpdbv->dbcv_unitmask);

RemovableDiskArrival(cDrive);

}

}

break;

case DBT_DEVICEQUERYREMOVE:

break;

case DBT_DEVICEQUERYREMOVEFAILED:

break;

case DBT_DEVICEREMOVEPENDING:

break;

case DBT_DEVICEREMOVECOMPLETE:

TRACE("OnDeviceChange:DBT_DEVICEREMOVECOMPLETE\n");

if(DBT_DEVTYP_VOLUME == lpdb->dbch_devicetype)

{

//Logical volume has been physically removed

PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;

if(0 == lpdbv->dbcv_flags)

{

 

 

 

 

 

TRACE("OnDeviceChange: DBT_DEVICEREMOVECOMPLETERefreshTree\n");

cDrive = FirstDriveFromMask(lpdbv->dbcv_unitmask);

RemovableDiskRemove(cDrive);

 

 

 

 

}

}

 

break;

case DBT_DEVICETYPESPECIFIC:

break;

case DBT_CONFIGCHANGED:

break;

case DBT_DEVNODES_CHANGED:

break;

}

 

return TRUE;

}

 

 将消息添加到消息map表中

BEGIN_MESSAGE_MAP(CAutoDownDlg,CDialog)

ON_WM_DEVICECHANGE()

END_MESSAGE_MAP()

英伟达NVIDIA数字IC后端笔试真题(ASIC Physical Design Engineer) 英伟达NVIDIA数字IC后端笔试真题(ASIC Physical Design方向) 阅读详情

相关推荐

RK3588 Ubuntu 20.04 编译 eglinfo 踩坑实录:从 Python 环境配置到 Mali 驱动调试

本文详细解析了在RK3588平台上使用Ubuntu 20.04编译eglinfo的全过程,包括Python环境配置、waf构建系统升级、Mali驱动调试等关键步骤。通过系统级软链接方案、驱动状态诊断和EGL环境验证技巧,帮助开发者快速解决常见问题,构建可靠的图形调试环境。

weixin_29158047的博客 374

OnDeviceChange(ON_WM_DEVICECHANGE)

原帖:http://hi.baidu.com/brouno/item/0e151c1110217ee99813d683 1.添加消息 消息映射 BEGIN_MESSAGE_MAP(CAFT_1394Dlg, CDialog) //{{AFX_MSG_MAP(CAFT_1394Dlg) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ... ON_WM_DEVICECH

Shalyf'Blog 4040

深入浅出DNS系列(一)- DNS杂谈

黄丝玛:班达山,你好,我记性不好,你告诉我搜狐、新浪的网站IP地址好吗? 班达山:你问问DNS先生吧,他专门干这买卖的

jiangsd198的博客 4129

MFC U盘 拔插检测

MFC U盘拔插检测

weixin_45144862的博客 1091

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)

果果爱腰果的博客 850

解决usbisp不识别无法烧录Atmega328P,Arduino不识别问题

如果使用Arduino IDE里面的烧录,可能会遇到一个问题,就是不识别国产这种廉价的USBISP 点击烧录引导程序,会遭遇到找不到USB设备的问题,选哪个都会提示找不到,比如选择USBasp could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp' 因此,我们需要使用到progisp这一个软件的1.72版本 选择好芯片的型号后,调用编译好的HEX文...

arenascat的博客 7436

OnDeviceChange收到7并多次调用

今天调试程序,在OnDeviceChange加了一个断点,我插入U盘的时候nEventType的值是7.在网上搜了一下说是要注册消息RegisterDeviceNotification。我很奇怪为什么我直接运行的时候可以截获到DBT_DEVICEARRIVAL和DBT_DEVICEREMOVECOMPLETE。于是我在OnDeviceChange函数末尾加了一个消息框显示nEventType的值,

sstya的专栏 5078

publisher与subscriber话题的消息类型md5sum不一致问题

[ERROR] [1604235557.591296096]: Client [/range_vision_fusion_01] wants topic /detection/vision_objects to have datatype/md5sum [autoware_msgs/DetectedObjectArray/13415342e539aa36ea9a6f04ffaf39b4], but our version has [autoware_msgs/DetectedObjectArray/c16a

cxhmike的博客 6620

检测移动设备 OnDeviceChange(ON_WM_DEVICECHANGE)

  1.添加消息消息映射BEGIN_MESSAGE_MAP(CAFT_1394Dlg, CDialog)//{{AFX_MSG_MAP(CAFT_1394Dlg)ON_WM_PAINT()ON_WM_QUERYDRAGICON()...ON_WM_DEVICECHANGE()//}}AFX_MSG_MAP声明消息响应函数:afx_msg BOOL OnDeviceC

我为编程狂,我为外语狂 1万+

Kettle 连接 Oracle 数据库全流程指南

例如:C:\Oracle\product\19.0.0\dbhome_1\jdbc\lib\ojdbc8.jar 2. 替换 Kettle 驱动文件 将驱动文件复制到 Kettle 的 目录: 删除旧版本驱动:如 ojdbc14.jar 只能保留一个oracle驱动 重启 Kettle 以加载新驱动 二、配置数据库连接 1. 启动 Kettle 并新建转换 运行 (Windows)或 (Linux)。 新建转换(Transformation),添加 “表输入” 步骤,双击进入配置。 2.

qq_44724453的博客 3482

uniapp | vue2 | vue3 - 解决调用天地图功能服务时 http 网络请求报错 net::ERR ABORTED 503(Service Temporarily Unavailabl)

vue,uni-app,天地图,请求报错,503,请求失败,map.tianditu,天地图503,天地图请求503,接口503错误怎么办,vue天地图,uniAPP天地图,获取定位接口服务器报错503,获取当前定位,定位功能,IP属地定位,天地图服务器报错,如何解决报错,net::ERRABORTED503(ServiceTemporarilyUnavailabl),GET,POST,服务暂时不可用,react天地图,一直等待吗,报错怎么办,定位报错,轨迹,经纬度,天地图服务器503,在vue2

🏆 前端领域优质创作者 4438

如何与HID设备通讯(二)

(2010-07-09 10:53:57) 转载▼ 标签:  usb   hid   it 分类: 技术类 //来自百合电子工作室:http://www.baiheee.com 想学习usb开发的可以去看看。是个开源的,挺详细的。我只是转载了一部分。 首页 > 开源项目 > USB开源项目:Easy

2107

秋招突击——笔试整理——8/25——拼多多笔试整理

继续加油! 转变思维,有简单到复杂,由直观到抽象,这种贪心模拟的题目一直是这样的!

Blackoutdragon的博客 2400

[转]C++ MFC界面读写USB HID设备数据程序

C++ MFC界面读写USB HID设备数据程序跟大家分享一个最近开发的,用来测试USB HID设备的通用程序,程序还有很多可以继续优化的地方,比如说interupt的周期,读取字节的多少等。我遇到的问题是:开发一个简单易用的界面,用来对USB HID设备(比如说游戏手柄,控制面板等)读写数据,一般情况下面板上有一些LED,可以帮助我们测试读写是否正确。另外,需要可以修改vendorID和prod...

爬行的菜鸟的博客 4057

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

(转载)VS2010/MFC编程入门之九(对话框:为控件添加消息处理函数)

创建对话框类和添加控件变量在上一讲中已经讲过,这一讲的主要内容是如何为控件添加消息处理函数。 MFC为对话框和控件等定义了诸多消息,我们对它们操作时会触发消息,这些消息最终由消息处理函数处理。比如我们点击按钮时就会产生BN_CLICKED消息,修改编辑框内容时会产生EN_CHANGE消息等。一般为了让某种操作达到效果,我们只需要实现某个消息的消息处理函数。 一.添...

weixin_30746117的博客 95

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

(转载)VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)...

上一节中鸡啄米讲了为Ribbon Bar添加控件的方法。本节教程鸡啄米将继续完善前面的实例,讲解一些稍复杂的控件的添加方法,及如何为它们添加消息处理函数。 一、为Ribbon Bar添加更多Ribbon控件 鸡啄米将在上一节实例的基础上,继续添加下拉菜单、Check Box、Combo Box等Ribbon控件。 1、首先把“Small Button...

weixin_30535913的博客 120

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

MFC ON_WM_DEVICECHANGE消息响应异常,无法读取usb插入硬件的名称信息

最近碰到一个怪异的问题,其实问题的起源在于最近使用上位机时,发现插入USB设备后,软件无法自动打开该USB设备,但这一块的程序之前已经实现了,并正常跑了。进到软件中,看到可以响应ON_WM_DEVICECHANGE()消息,但在读取dbd->dbcc_name时却返回为空,或“/”。于是新建了一个工程,结果可以正常读取dbd->dbcc_name。于是一点一点调试,最终发现是因为有几个...

动感小麦兜的博客 1180

mfc获取盘符

这几天在做一个关于个人文件清理的项目,由于要对磁盘进行扫描,所以要获取系统的盘符,我网上找了一下,修改后在vs2013里可以通过 ,我是在combox控件里插入盘符,便于用户选择,这里是我的一部分代码,大家可以看一下 TCHAR buf[100];DWORD len = GetLogicalDriveStrings(sizeof(buf) / sizeof(TCHAR), buf);CStrin...

weixin_30932215的博客 201

教程二:windows api(c mfc vs2017)实现U盘插拔检测,获取U盘容量,U盘内容移动,开启和关闭U盘以及获取盘符等

实现功能: 通过使用OS的API编写一个程序,满足下列要求: (1)能够判断U是否存在; (2)能够显示U盘的总容量、使用容量和剩余容量; (3)能够将某个目录上的文件或整个目录复制到U盘上; (4)可以删除U盘上文件; (5)禁止U盘的使用及开启U盘的使用; (6)推荐使用VC,也可以使用其它语言; (7)体会OS的API的作用; (8)尝试读取PCB信息; ...

qq_39861376的博客 5481

windows 弹shell_Windows 网络编程:U盘防御软件

一次性进群,长期免费索取教程,没有付费教程。教程列表见微信公众号底部菜单进微信群回复公众号:微信群;QQ群:460500587微信公众号:计算机与网络安全ID:Computer-network通过U盘来传播病毒通常是使用操作系统的自动运行功能,并配合U盘下的Autorun.inf文件来实现的。如果让操作系统不自动运行移动磁盘,或者保证移动磁盘下不存在Autorun.inf文件,那样通过U...

weixin_39621669的博客 424

枚举可用串口号的动态链接库文件

摘要:     在工业电子产品数据采集系统中经常用到串口进行多台产品数据采集,而普通的Rs422-USB在PC上映射的COM端口号在更换USB口时会随之改变, 有效的串行端口号为 1~255. 当编写上位机时一般都是通过Combox控件来选择串口,一般情况下需要预先程序中写入常用的串口号范围,但当特殊情况下, 当一次采集很多产品时,选择串口号容易超出预制范围,这就变得很麻烦。     本...

weixin_30663471的博客 163

mfc 实现 设备 热插拔功能

开发windows MFC 应用程序时,经常会操作一些硬件设备,那么如何实现设备的热插拔功能呢,下面给出具体操作步骤: 1,给要实现设备热插拔的窗体/界面 添加  ON_WM_DEVICECHANGE() 消息,如下在 BEGIN_MESSAGE_MAP (...) 与END_MESSAGE_MAP() 之间加入 一行“ ON_WM_DEVICECHANGE() ” BEGIN_MESSA...

张十三的博客 2606

MFC-设备插入后获取插入设备的信息

在这种情况下,尽管是网络设备,操作系统并不会通过 GUID_DEVINTERFACE_NET 触发事件,而是触发 USB 设备事件。有一些通过usb插入的设备,如车载摄像头,只能识别成usb设备,如果注册成网络设备,程序识别不出来新插入的设备信息,在。可以识别新设备的插入拔出,但是需要在初始化是注册设备通知,如果不知道要插入的设备类型,就需要注册所有设备,不然在。函数中系统传入的参数会固定,nEventType=7,dwData=NULL。1.定义设备类型的GUID(sdk有的版本没有缺少一些GUID)

weixin_45888658的博客 667

MFC 检测USB接口设备连接变化

添加 WM_DEVICECHANGE 消息 afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD_PTR dwData); BEGIN_MESSAGE_MAP(Cwndclass, Cbaseclass) ON_WM_DEVICECHANGE() END_MESSAGE_MAP() // 获取盘符 LONG

donglinshengan的专栏 5789

OnDeviceChange无法读取设备是接入还是拔掉-----RegisterDeviceNotification注册

OnDeviceChange无法读取设备是接入还是拔掉 平板以MTP方式接入xp电脑 RegisterDeviceNotification注册时DEV_BROADCAST_DEVICEINTERFACE::dbcc_classguid该输入什么 OnDeviceChange(UINT nEventType, DWORD dwData) nEventType = 7 dwData =

2683

OnDeviceChange nEventType总是返回7

USB 每次插入拔出,nEventType总是返回7 staticconstGUIDGUID_DEVINTERFACE_LIST[]= { //GUID_DEVINTERFACE_USB_DEVICE {0xA5DCBF10,0x6530,0x11D2,{0x90,0x1F,0x00,0xC0,0x4F,0xB9,0x51,0xED}}, //GUID_DEVINTERFACE_DISK {0x53f56307,...

lulongbao231的专栏 756
上一篇: uboot下载地址
下一篇: MFC常见错误提示:opened in another editor
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值