folder.cpp

来自「一个国人自己实现图像库的程序(有参考价值)」· C++ 代码 · 共 52 行

CPP
52
字号
#include "stdafx.h"
#include "..\Include\Folder.h"

//===================================================================
int CALLBACK __fooBrowseCallbackProc (HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
	FCSelectFolder	* folder = (FCSelectFolder *) lpData ; // this
	folder->BrowseDispatchMsg (hWnd, uMsg, lParam) ;
	return 0 ;
}
//===================================================================
int  FCSelectFolder::Select ()
{
	int			iReturn = IDCANCEL ;
	ITEMIDLIST	* piidl = NULL ;

	if ((piidl = ::SHBrowseForFolder (&m_bi)) != NULL)
	{
		::SHGetPathFromIDList (piidl, m_szPath) ;
		iReturn = IDOK ;
	}
	else
		m_szPath[0] = TEXT('\0') ;

	if (piidl != NULL)
	{
		LPMALLOC	lpMalloc ;
		::SHGetMalloc (&lpMalloc) ;
		lpMalloc->Free (piidl) ;
		lpMalloc->Release () ;
	}
	return iReturn ;
}
//===================================================================
void  FCSelectFolder::BrowseDispatchMsg (HWND hWnd, UINT uMsg, LPARAM lParam)
{
	m_hSelectDlg = hWnd ;
	switch (uMsg)
	{
		case BFFM_SELCHANGED :
			OnSelChange ((ITEMIDLIST*) lParam) ;
			break ;
	}
}
//===================================================================
void  FCSelectFolder::OnSelChange (ITEMIDLIST * pIdl)
{
	::SHGetPathFromIDList (pIdl, m_szPath) ;
	this->SetStatusText ("cvasdvdsvsdvsdvsdavsda") ;
}
//===================================================================

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?