幽灵教头吧 关注:21贴子:364
  • 4回复贴,共1

【开发手记】WindowProc用法 系统消息捕获

只看楼主收藏回复

LRESULT CUSBViewDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (WM_DEVICECHANGE == message&&DBT_DEVICEARRIVAL == wParam)
{
for(char i='A';i<'Z';i++)
{
char dir[20]={i,':'};
char path[20]={i,':'},dir2[2] = {'\\'} , str[20] = {"您的U盘盘符为:"};
UINT Type = GetDriveType(dir);
if (Type == DRIVE_REMOVABLE)
{
strcat(path,dir2);
strcat(str,path);
m_state.SetWindowText(str);
}
}
}
else if (WM_DEVICECHANGE == message&&DBT_DEVICEREMOVECOMPLETE == wParam)
{
m_state.SetWindowText("U盘已经移除!");
}
return CDialog::WindowProc(message, wParam, lParam);
}
补充:
1.需在*Dlg.h中加入LRESULT CUsbKillDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
2. 宏定义:
#define DBT_DEVICEREMOVECOMPLETE 0x8004
#define DBT_DEVICEARRIVAL 0x8000
#define DBT_DEVICEQUERYREMOVEFAILED 0x8002


IP属地:加拿大1楼2014-04-09 19:38回复
    留名。。不明觉厉啊


    来自手机贴吧2楼2014-04-09 20:25
    收起回复