// FavoritesTryDlg.cpp : implementation file
// GDGF 编写于2001年11月13日
////////////////////////////////////////////
#include "stdafx.h"
#include "FavoritesTry.h"
#include "FavoritesTryDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
LPBYTE favpath = new BYTE[80];
CString StrPath;
CString url;
CFileFind finder;
BOOL bWorking;
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFavoritesTryDlg dialog
CFavoritesTryDlg::CFavoritesTryDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFavoritesTryDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFavoritesTryDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CFavoritesTryDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFavoritesTryDlg)
DDX_Control(pDX, IDC_EDIT_URL, m_EDIT_URL);
DDX_Control(pDX, IDC_TREE_FAV, m_TREE_FAV);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFavoritesTryDlg, CDialog)
//{{AFX_MSG_MAP(CFavoritesTryDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_NOTIFY(TVN_SELCHANGING, IDC_TREE_FAV, OnSelchangingTreeFav)
ON_NOTIFY(NM_DBLCLK, IDC_TREE_FAV, OnDblclkTreeFav)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_FAV, OnSelchangedTreeFav)
ON_BN_CLICKED(IDC_GOURL, OnGourl)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFavoritesTryDlg message handlers
BOOL CFavoritesTryDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
GetDlgItem(IDC_GOURL)->ShowWindow(false);
// 设置树控件图标
CImageList* pInfoImages = new CImageList;
pInfoImages->Create(16, 16, ILC_COLOR8 | ILC_MASK, 2, 0);
pInfoImages->Add(AfxGetApp()->LoadIcon(IDI_ICON1));
pInfoImages->Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_TREE_FAV.SetImageList(pInfoImages, TVSIL_NORMAL);
// 从注册表获取收藏夹所在位置
HKEY hKEY;
DWORD type=REG_SZ;
LPCTSTR path="Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
DWORD cbData=80;
::RegOpenKeyEx(HKEY_CURRENT_USER,path,0,KEY_READ,&hKEY);
::RegQueryValueEx(hKEY,"Favorites",NULL,&type,favpath,&cbData);
::RegCloseKey(hKEY);
OnLoad();
return TRUE; // return TRUE unless you set the focus to a control
}
void CFavoritesTryDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CFavoritesTryDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CFavoritesTryDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CFavoritesTryDlg::OnLoad()
{
StrPath = (CString)favpath + "\\*.*";
bWorking = finder.FindFile(StrPath);
while(bWorking)
{
bWorking = finder.FindNextFile();
if (!finder.IsDots() && finder.IsDirectory())
{
HandleDirectory();
}
}
StrPath = (CString)favpath + "\\*.url";
HandleFile(StrPath);
finder.Close();
}
void CFavoritesTryDlg::HandleDirectory()
{
HTREEITEM hTreeItem = m_TREE_FAV.InsertItem(finder.GetFileName(), 0, 1, TVI_ROOT, TVI_LAST);
CString msg;
msg = (CString)favpath + "\\" + finder.GetFileName() + "\\*.url";
CFileFind finder2;
BOOL bWorking2 = finder2.FindFile(msg);
while(bWorking2)
{
bWorking2 = finder2.FindNextFile();
m_TREE_FAV.InsertItem(finder2.GetFileName(), 0, 1, hTreeItem, TVI_LAST);
}
}
void CFavoritesTryDlg::HandleFile(CString FilePath)
{
bWorking = finder.FindFile(FilePath);
while(bWorking)
{
bWorking = finder.FindNextFile();
m_TREE_FAV.InsertItem(finder.GetFileName(), 0, 1, TVI_ROOT, TVI_LAST);
}
}
void CFavoritesTryDlg::OnSelchangingTreeFav(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hTreeItem = m_TREE_FAV.GetSelectedItem();
CString msg = m_TREE_FAV.GetItemText(hTreeItem);
HTREEITEM hParent = m_TREE_FAV.GetParentItem(hTreeItem);
if(hParent != NULL)
{
StrPath = (CString)favpath + "\\" +
m_TREE_FAV.GetItemText(hParent) + "\\" + msg;
}
else
StrPath = (CString)favpath + "\\" + msg;
FILE* file;
if(file = fopen(StrPath,"rb"))
{
int seek = 1;
char check[1];
check[0]='\0';
check[1]='\0';
while(check[0] != '=')
{
seek++;
fseek(file,seek,0);
fread(check,1,1,file);
}
seek = ftell(file);
fclose(file);
CStdioFile stdiofile;
stdiofile.Open(StrPath,CFile::modeRead);
stdiofile.Seek(seek ,0);
stdiofile.ReadString(url);
m_EDIT_URL.SetSel(0,-1);
m_EDIT_URL.ReplaceSel(url);
}
*pResult = 0;
}
void CFavoritesTryDlg::OnSelchangedTreeFav(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hCurrent = m_TREE_FAV.GetSelectedItem();
CString msg = m_TREE_FAV.GetItemText(hCurrent);
HTREEITEM hParent = m_TREE_FAV.GetParentItem(hCurrent);
if(hParent != NULL)
{
StrPath = (CString)favpath + "\\" +
m_TREE_FAV.GetItemText(hParent) + "\\" + msg;
}
else
StrPath = (CString)favpath + "\\" + msg;
FILE* file;
if(file = fopen(StrPath,"rb"))
{
int seek = 1;
char check[1];
check[0]='\0';
check[1]='\0';
while(check[0]
收藏夹管理(启示例子)
需积分: 50 29 浏览量
2003-02-25
00:00:00
上传
评论 8
收藏 15KB ZIP 举报
普通网友
- 粉丝: 882
- 资源: 2万+
最新资源
- 基于python实现的基于PyQt5和爬虫的小说阅读系统.zip
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈