Qt中调用windows系统api在QComboBox中显示系统当前没有挂载的虚拟磁盘驱动器编号
2012-05-16 10:02:22 来源:WEB开发网核心提示: 因为GetLogicalDrives返回值转化成2进制从低到高位分别是A:、B:、....是1表示已被挂载,0表示未用,Qt中调用windows系统api在QComboBox中显示系统当前没有挂载的虚拟磁盘驱动器编号,所以把此值与0x0001作&位运算,,所以循环25次,再把得到的结果转化成QString,结果是0表
因为GetLogicalDrives返回值转化成2进制从低到高位分别是A:、B:、....是1表示已被挂载,0表示未用,所以把此值与0x0001作&位运算。。结果是0表示A:未用,1表示已用。接下来把0x0001每次左移一位,再相&,因为字母表一共26位,A已判断,所以循环25次。再把得到的结果转化成QString。显示到combobox中。
//设置combobox中显示未用的驱动盘号 DWORD drives=GetLogicalDrives(); int count ; unsigned int a=0x0001; if((drives&a)==0){ ui->comboBox->addItem("A:",""); } for(count=0;count<25;count++){ if((drives&(a<<=1))==0){ QString num=QString(char(66+count)); num.operator +=(":"); const QString num1=num; ui->comboBox->addItem(num1,""); } }
更多精彩
赞助商链接