
MFC动态添加复选框 5
MFC当打开一个文件夹时可以读取此文件下的全部文件并且使他与复选框相关,一个文件对应一个复选框,并且把文件的名字赋给复选框应该怎么做啊,请高手指点迷津,急用!...
MFC 当打开一个文件夹时可以读取此文件下的全部文件并且使他与复选框相关,一个文件对应一个复选框,并且把文件的名字赋给复选框应该怎么做啊,请高手指点迷津,急用!
展开
2个回答
展开全部
这个一般会用CTreeCtrl啊...tree前面也好加复选框的, 还可以有层次结构...
按你的要求写了个, 随便建个mfc,然后拖个button进去, 添加事件, 写以下代码
TCHAR szFilters[]= _T("Files (*.*)|*.*");
CString strFileName;
CString strFilePath;
CFileDialog fileDlg(TRUE, 0, 0, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);
if(fileDlg.DoModal() == IDOK)
{
strFileName = fileDlg.GetPathName();
CFileFind finder;
int path_num = strFileName.ReverseFind('\\');
strFilePath = strFileName.Left(path_num);
strFilePath += _T("\\*.*");
BOOL bWorking = finder.FindFile(strFilePath);
for(int i = 0; i < 1000; i++)
{
m_myButton[i].ShowWindow(SW_HIDE);
}
int m = 0;
while (bWorking)
{
bWorking = finder.FindNextFile();
if (finder.IsDots())
continue;
CString str = finder.GetFileName();
m_myButton[m].SetWindowTextW(str);
m_myButton[m].ShowWindow(SW_SHOW);
m++;
}
finder.Close();
}
在dlg的头文件里面加CButton m_myButton[1000];
在dlg的InitDialog函数里加
for(int i = 0; i < 1000; i++)
{
m_myButton[i].Create(L" ", WS_CHILD|BS_AUTO3STATE,
CRect(10,10 + i * 25,300,25 + i*25), this, i+23423);
}
PS:要源代码的留邮箱
按你的要求写了个, 随便建个mfc,然后拖个button进去, 添加事件, 写以下代码
TCHAR szFilters[]= _T("Files (*.*)|*.*");
CString strFileName;
CString strFilePath;
CFileDialog fileDlg(TRUE, 0, 0, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);
if(fileDlg.DoModal() == IDOK)
{
strFileName = fileDlg.GetPathName();
CFileFind finder;
int path_num = strFileName.ReverseFind('\\');
strFilePath = strFileName.Left(path_num);
strFilePath += _T("\\*.*");
BOOL bWorking = finder.FindFile(strFilePath);
for(int i = 0; i < 1000; i++)
{
m_myButton[i].ShowWindow(SW_HIDE);
}
int m = 0;
while (bWorking)
{
bWorking = finder.FindNextFile();
if (finder.IsDots())
continue;
CString str = finder.GetFileName();
m_myButton[m].SetWindowTextW(str);
m_myButton[m].ShowWindow(SW_SHOW);
m++;
}
finder.Close();
}
在dlg的头文件里面加CButton m_myButton[1000];
在dlg的InitDialog函数里加
for(int i = 0; i < 1000; i++)
{
m_myButton[i].Create(L" ", WS_CHILD|BS_AUTO3STATE,
CRect(10,10 + i * 25,300,25 + i*25), this, i+23423);
}
PS:要源代码的留邮箱
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询