熟悉CListCtrl控件的使用。

来源:互联网 发布:软件企业认证证书 编辑:程序博客网 时间:2024/06/05 09:07
 

熟悉CListCtrl控件的使用。

1.       如何添加标题栏。

参考代码:

void CDownloadToolDlg::InitUsbDeviceListCtrl()

{

     //设置列表的样式

m_lst_UsbDevice.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_TRACKSELECT|LVS_EX_FLATSB|LVS_EX_UNDERLINEHOT|LVS_EX_GRIDLINES);

     m_lst_UsbDevice.ModifyStyle(LVS_TYPEMASK,LVS_REPORT);

 

     //设置标题栏

     m_lst_UsbDevice.InsertColumn(0,_T("设备名称"),LVCFMT_IMAGE|LVCFMT_LEFT,80,80); //增加列

     m_lst_UsbDevice.InsertColumn(1,_T("符号连接"),LVCFMT_LEFT,80);

     m_lst_UsbDevice.InsertColumn(2,_T("容量"),LVCFMT_LEFT,80);

     m_lst_UsbDevice.InsertColumn(3,_T("盘符"),LVCFMT_LEFT,80);

     m_lst_UsbDevice.InsertColumn(4,_T("InstanceID"),LVCFMT_LEFT,80);

 

     m_lst_UsbDevice.SetColumnWidth(0,220);

     m_lst_UsbDevice.SetColumnWidth(1,120);

     m_lst_UsbDevice.SetColumnWidth(2,90);

     m_lst_UsbDevice.SetColumnWidth(3,40);

     m_lst_UsbDevice.SetColumnWidth(4,450);

}

添加成员变量:打开【MFC Class Wizard】窗口,为列表视图控件添加成员变量m_lst_UsbDevice,控件类型为Control。对话框的主要功能是输入和输出数据,对话框需要有一组成员变量来存储数据,与控件相对应,成员变量可能是数据也可能是控件对象。

2.       如何添加数据到列表框中。

void CDownloadToolDlg::UpdateUsbDeviceList()

{

     m_lst_UsbDevice.DeleteAllItems();

 

     CUsbDeviceScanner::USBStorageDeviceInfoList::iterator UsbDeviceIter;

     CCDRomDeviceScanner::CDRomDeviceInfoList::iterator cdromDeviceIter;

 

     m_UsbDeviceScanner.GetUSBDevicesInSystem(m_CurrUsbStorageList);

     m_usbCdromScanner.GetCDRomDevicesInSystem(m_curUsbCdromList);

 

     CString szName;

     CString szDesc;

     int index = 0;

     for(UsbDeviceIter = m_CurrUsbStorageList.begin();

         UsbDeviceIter != m_CurrUsbStorageList.end();

         UsbDeviceIter ++)

          

     {

         szName.Format(_T("%s"),UsbDeviceIter->szDeviceName.c_str());

         m_lst_UsbDevice.InsertItem(index,szName);//增加一个新的条目

          m_lst_UsbDevice.SetItemText(index, 1, (LPCTSTR)UsbDeviceIter->szDevicePhysicalName.c_str());

         CCommUtil::ConvertStorageCapacity2CString(szDesc,UsbDeviceIter->nSize);

         m_lst_UsbDevice.SetItemText(index, 2, szDesc);

         CCommUtil::ConvertDriveStringList2CString(szDesc,UsbDeviceIter->szDriveLetterList);

         m_lst_UsbDevice.SetItemText(index, 3, szDesc);

         m_lst_UsbDevice.SetItemText(index, 4, UsbDeviceIter->szDeviceInstanceID.c_str());

 

         index ++;

     }

     m_lst_UsbDevice.SetItemState( 0, LVIS_SELECTED | LVIS_FOCUSED,

         LVIS_SELECTED | LVIS_FOCUSED);      //设置第一个条目的状态

     m_lst_UsbDevice.EnsureVisible( 0, FALSE);

}

3.       熟悉MessageBox的使用。

int CWnd::MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType)

lpszText:需要显示的内容

lpszCaption :用于指向该消息串口标题的字符串的指针,一般设置为NULL

ntype:表示该消息窗口的风格。由图标和按钮类型组成,两个类型的参数之间用->分割。

按钮风格

MB_ABORTRETRYIGNORE       消息框中显示Abort、Retry、Ignore按钮
MB_OK                     显示OK按钮
MB_OKCANCEL              显示OK、Cancel按钮
MB_RETRYCANCEL            显示Retry、Cancel按钮
MB_YESNO                 显示Yes、No按钮
MB_YESNOCANCEL            显示Yes、No、Cancel按钮
图标风格
MB_ICONINFORMATION       显示一个i图标,表示提示
MB_ICONEXCLAMATION       显示一个惊叹号,表示警告
MB_ICONSTOP              显示手形图标,表示警告或严重错误
MB_ICONQUESTION               显示问号图标,表示疑问

 

需要实现的功能:

1.       可以显示插入系统中的USB设备。

     UpdateUsbDeviceList():在OnInitDialog(),OnDeviceChange(),OnBnClickedBtnRefresh()(刷新按钮)中调用。

UpdateUsbDeviceList()

{

     获得设备列表,扫描设备;

     符合条件的设备显示出来;

}

2.       按一个按钮可以显示选中的设备信息。

a)         获得列表对话框中,选中条目:

POSITION pos = pList->GetFirstSelectedItemPosition();

int nItem = pList->GetNextSelectedItem(pos);

b)         将得到的条目显示

 

问题:1、找不到头文件,绝对地址写入#include "./UsbComm/UsbDevice.h"

                             加入路径属性->C/C++->general-》additional include directories

       2、afx_msg:消息标志,向系统申明:有消息映射到函数实现体。

如:afx_msg void OnStnClickedSeleusb();

原创粉丝点击