谁能告诉我怎样做出象Windows资源管理哭那样的界面来?重分相送!急!

thisgameiscool 2004-01-26 01:55:15
谁能告诉我怎样做出象Windows资源管理哭那样的界面来?重分相送!急!
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
thisgameiscool 2004-01-26
  • 打赏
  • 举报
回复
谢谢各位,祝各位新年好!
WindWay 2004-01-26
  • 打赏
  • 举报
回复
http://www.vckbase.com/code/downcode.asp?id=2229

这里有一个例子,可以下载看一下,
编译的时候可能要在ExplorerTreeView.cpp里加一句
#define INVALID_FILE_ATTRIBUTES 0xFFFFFFFF
才能通过
你试试吧
zhangcrony 2004-01-26
  • 打赏
  • 举报
回复
To "lovenoend(有容乃大)﹕稍后能否把你的代碼也帖上來參考一下啊?
zhangcrony 2004-01-26
  • 打赏
  • 举报
回复
源代碼﹕http://www.vckbase.com/code/downcode.asp?id=2111
zhangcrony 2004-01-26
  • 打赏
  • 举报
回复
VC控件 TreeCtrl 与 ListCtrl 演示


作者:兰州大学现物系 王景生

下载源代码


这个例子类似于 Windows 的资源管理器,程序运行界面如图一所示:


图一

主要用到的类有:
CListCtrl,CTreeCtrl,CImageList,CFileFind 和函数SHGetFileInfo()

简述步骤如下:
1、增加 TreeCtrl 的 TVS_HASBUTTONS,TVS_HASLINES、TVS_LINESATROOT Style,代码如下:

DWORD dwStyle = GetWindowLong(m_tree.m_hWnd,GWL_STYLE);
dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;
SetWindowLong(m_tree.m_hWnd,GWL_STYLE,dwStyle);
2、为TreeCtrl添加Root项:
m_hRoot = m_tree.InsertItem("我的电脑");
InsertItem()的函数原形为
HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST );

3、获取本地逻辑驱动器,并添加: void CTreeViewDlg::GetLogicalDrives(HTREEITEM hParent)
{
size_t szAllDriveStrings = GetLogicalDriveStrings(0,NULL);
char *pDriveStrings = new char[szAllDriveStrings + sizeof(_T(""))];
GetLogicalDriveStrings(szAllDriveStrings,pDriveStrings);
size_t szDriveString = strlen(pDriveStrings);
while(szDriveString > 0)
{
m_tree.InsertItem(pDriveStrings,hParent);
pDriveStrings += szDriveString + 1;
szDriveString = strlen(pDriveStrings);
}
}

4、添加TVN_EXPANDED消息处理函数,当一项展开时,为其子项添加下一级目录: void CTreeViewDlg::OnItemexpandedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
TVITEM item = pNMTreeView->itemNew;
if(item.hItem == m_hRoot)
return;
HTREEITEM hChild = m_tree.GetChildItem(item.hItem);
while(hChild)
{
AddSubDir(hChild);
hChild = m_tree.GetNextItem(hChild,TVGN_NEXT);
}
*pResult = 0;
}
AddSubDir函数功能添加子项,具体代码见示例。

5、添加TVN_SELCHANGED消息处理函数,在这个函数里,用GetFullPath()取得选中项的绝 路径(GetFullPath()具体代码看示例),在ListCtrl中添加文件而非文件夹的图标: void CTreeViewDlg::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
m_list.DeleteAllItems();
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
TVITEM item = pNMTreeView->itemNew;
if(item.hItem == m_hRoot)
return;
CString str = GetFullPath(item.hItem);
if(str.Right(1) != "\\")
str += "\\";
str += "*.*";
CFileFind file;
BOOL bContinue = file.FindFile(str);
while(bContinue)
{
bContinue = file.FindNextFile();
if(!file.IsDirectory() && !file.IsDots())
{
SHFILEINFO info;
CString temp = str;
int index = temp.Find("*.*");
temp.Delete(index,3);
SHGetFileInfo(temp + file.GetFileName(),
0,
&info,sizeof(&info),
SHGFI_DISPLAYNAME | SHGFI_ICON);
int i = m_ImageList.Add(info.hIcon);
m_list.InsertItem(i,info.szDisplayName,i);
}
}
*pResult = 0;
}
这只是一个简单的例子,你可以在 ListCtrl 中添加鼠标双击消息的处理函数,用 Process 打开该选中的文件; 该示例在VC6,xp下编译通过。
lovenoend 2004-01-26
  • 打赏
  • 举报
回复
vc就有该框架,我有类似代码,不过现在不在身边
thisgameiscool 2004-01-26
  • 打赏
  • 举报
回复
再顶!
thisgameiscool 2004-01-26
  • 打赏
  • 举报
回复
自已顶先!
下载代码方式:https://pan.quark.cn/s/d72653a49f33 ### SQL随机选取数据核心要点#### 一、SQL Server随机选取数据途径在SQL Server数据库环境中,若需从某个数据表中随机选取固定数量的数据行,可以利用`NEWID()`函数与`ORDER BY`子句相结合的方法来达成这一目标。接下来将系统性地阐述这一操作流程。#### 二、`NEWID()`函数的原理说明`NEWID()`函数是SQL Server平台内建的一个函数,其主要功能是生成一个全新的唯一标识符(Unique Identifier),其数据类型为`uniqueidentifier`。该函数的特性在于每次被调用时产生的值均不相同,并且在整个数据库系统中具有唯一性。这一特性使得`NEWID()`函数成为执行随机排序的理想选择。#### 三、完成随机选取数据的具体操作步骤##### 1. 运用通过`NEWID()`实现随机排序为了达成随机选取数据的目的,可以通过以下方式来进行操作:```sqlSELECT TOP (数量) * FROM 表名 ORDER BY NEWID();```公式中的`数量`代表期望获取的数据行数,`表名`是指定从中选取数据的表名称。例如,若计划从`ywle`数据表中随机选取10条数据记录,则可以执行以下SQL指令:```sqlSELECT TOP 10 * FROM ywle ORDER BY NEWID();```该段代码的作用是从`ywle`表中随机选择10条数据记录并返回。##### 2. 结合WHERE子句进行条件过滤如果需要在满足特定条件后再执行随机选取操作,可以在`WHERE`子句中增加相应的过滤条件。例如,要从`...

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧