一开始框里显示c:\,当我选择d:\的时候,为什么要选2次才是正确的信息???
高手来改下吧。
OnSelchangeDriver()
{
// TODO: Add your control notification handler code here
//UpdateData(TRUE); //获得选择的驱动器
CString Driver;
CComboBox* pDriver = (CComboBox*)GetDlgItem(IDC_DRIVER);
pDriver->GetWindowText(Driver); //获得磁盘空间信息
ULARGE_INTEGER FreeAv,TotalBytes,FreeBytes;
if(GetDiskFreeSpaceEx(Driver,&FreeAv,&TotalBytes,&FreeBytes))
{
//格式化信息,并显示出来
CString strTotalBytes,strFreeBytes;
strTotalBytes.Format("%uGB",TotalBytes.QuadPart/1024/1024/1024);
strFreeBytes.Format("%uGB",FreeBytes.QuadPart/1024/1024/1024);
CStatic* pTotalStatic = (CStatic*)GetDlgItem(IDC_TOTAL);
CStatic* pFreeStatic = (CStatic*)GetDlgItem(IDC_FREE);
pTotalStatic->SetWindowText(strTotalBytes);
pFreeStatic->SetWindowText(strFreeBytes);
}
}
高手来改下吧。
OnSelchangeDriver()
{
// TODO: Add your control notification handler code here
//UpdateData(TRUE); //获得选择的驱动器
CString Driver;
CComboBox* pDriver = (CComboBox*)GetDlgItem(IDC_DRIVER);
pDriver->GetWindowText(Driver); //获得磁盘空间信息
ULARGE_INTEGER FreeAv,TotalBytes,FreeBytes;
if(GetDiskFreeSpaceEx(Driver,&FreeAv,&TotalBytes,&FreeBytes))
{
//格式化信息,并显示出来
CString strTotalBytes,strFreeBytes;
strTotalBytes.Format("%uGB",TotalBytes.QuadPart/1024/1024/1024);
strFreeBytes.Format("%uGB",FreeBytes.QuadPart/1024/1024/1024);
CStatic* pTotalStatic = (CStatic*)GetDlgItem(IDC_TOTAL);
CStatic* pFreeStatic = (CStatic*)GetDlgItem(IDC_FREE);
pTotalStatic->SetWindowText(strTotalBytes);
pFreeStatic->SetWindowText(strFreeBytes);
}
}
解决方案 »
- MFC中如何为一个单文档应用程序初始化列表框?
- 如何删除浏览网页产生的Cookies和历史记录?
- 有关处定义类的问题
- CString 类中重载 +=,-的问题
- 实现短信报警,什么方案好呢??
- 请问,在VAssistX助手里,这个自动缩进的细节是否能调或者设置?在哪个位置设?
- 在CListCtrl中能够使其中一行变灰,让该行无法被选中?
- 对象不支持的属性或方法
- 用MFC实现显示并控制飞行航迹
- 如何将子窗口嵌入到父窗口中,父窗口移动,子窗口跟着移动,父窗口隐藏,子窗口隐藏
- 高分求助! Visual Assist X(即VC助手)的使用问题
- Visual Studio 6.0环境中运行时的DOS窗口一闪而过
==这个获取组合框选中的内容不好。用GetCurSel(),然后用GetLBText()来获取选中项信息。
CComboBox* pDriver = (CComboBox*)GetDlgItem(IDC_DRIVER);
pDriver->GetWindowText(Driver);改成:CString Driver;
CComboBox* pDriver = (CComboBox*)GetDlgItem(IDC_DRIVER);
pDriver->GetLBText(pDriver.GetCurSel(), Driver);
改成
m_select.GetLBText(m_select.GetCurSel(),Driver);
结果还那样!!怎么办??
pDriver->GetCurSel()
笔误
left of '.GetCurSel' must have class/struct/union type
不可能这样改
是个指针啊
pDriver->GetCurSel()
笔误
但还是要选择2次才是正确的值。。
问题是要解决只选择一次就是正确的~~
pDriver->SetCurSel(index);
int length = pDriver->GetLBTextLen(index);
m_clottyGradeCmb.GetLBText(index, Driver.GetBuffer(length));