更新时间:2015-11-13 21:53:30浏览次数:1+次
我们看下该软件的大概框架,项目名为CClearTmpFile:
请选择文件后面是一个组框控件,这是他的type属性:
组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。下面讲讲它们的区别。:
简易组合框中的列表框是一直显示的,效果如下图:
下拉式组合框默认不显示列表框,只有在点击了编辑框右侧的下拉箭头才会弹出列表框,列表框弹出后如下图:
下拉列表式组合框的编辑框是不能编辑的,只能由用户在下拉列表框中选择了某项后,在编辑框中显示其文本。下拉列表式组合框如下图:
接着我们为这个组合框添加控件变量m_Disk,一个控件的变量有两种-控件变量,值变量,请看《控件变量与值变量的区别》。
value只是用来传递数据,不能对控件进行其它的操作。
control型变量可以获得控件的实例,通过这个变量,你可以操纵控件。
value型变量仅仅可以获得该控件的public型变量
如果你添加了一个m_CtrlEdit的control型变量你可以调用控件支持的所有函数,如:
m_CtrlEdit.GetStyle(...)
获得控件的输入内容或者说文本内容:
CString str_name;
m_CtrlEdit.GetWindowText(str_name);
MessageBox(str_name,"提示",0);
而value型变量一般用于向控件传递数据,如:变量为CString 类型的 m_Str m_Str="hustwjz";
UpdateData(FALSE); //可以向控件传递数据
UpdateData(TRUE); //可以从控件获得数据
接着就是获取电脑中磁盘的盘符了。
我们在CClearTmpFileDlg头文件中添加一个函数来实现加载盘符:
BOOL LoadDiskLetter();这是我们自己定义的函数,只需要声明函数,接着写出他的实现就行了:
BOOL CClearTmpFileDlg::LoadDiskLetter() //加载系统盘符
{
DWORD dwLen = GetLogicalDriveStrings(0, NULL); //获取系统盘符字符串的长度
if (dwLen > 0)
{
char *pNameList = new char[dwLen + 1]; //分配一个字符缓冲区
memset(pNameList, 0, dwLen + 1);
GetLogicalDriveStrings(dwLen, pNameList); //获取系统盘符,将其存在pNameList中,格式为"C:\ D:\ E:\ F:\ ..."
char *pItem = pNameList;
while (*pItem != '\0') //各盘符之间有一个空格,需要分解字符串,获取每一个盘符
{
m_Disk.AddString(pItem); //向组合框中添加盘符
pItem += strlen(pItem) + 1;//执行下一个盘符,加1是为过滤掉各盘符间的一个空格
}
delete[] pNameList; //释放字符缓冲区
return TRUE; //操作成功,返回TRUE
}
return FALSE;
}
对于这个函数的实现功能,我在《如何获得磁盘字符串》解释过了,你可以看看,在这里我就不详述了。void CClearTmpFileDlg::OnAllSel()
{
int nItemCount = m_ExtList.GetCount();
for (int i = 0; i<nItemCount; i++) //遍历项目
{
if (m_ExtList.GetCheck(i) != BST_CHECKED) //项目被选中
{
m_ExtList.SetCheck(i, BST_CHECKED);
}
}
}
这仅仅是函数的实现部分,你还需要在对话框类头文件中加上:
相关资讯