在调用WINDOWS“浏览文件夹”对话框时,如何初始化选择"c:\windows"路径? 在调用WINDOWS“浏览文件夹”对话框时,如何初始化选择"c:\windows"路径? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用写个回调函数。微软例子代码:http://support.microsoft.com/kb/179378#define STRICT#include <windows.h>#include <shlobj.h>INT CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData) { TCHAR szDir[MAX_PATH]; switch(uMsg) { case BFFM_INITIALIZED: if (GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir)) { // WParam is TRUE since you are passing a path. // It would be FALSE if you were passing a pidl. SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)szDir); } break; case BFFM_SELCHANGED: // Set the status window to the currently selected path. if (SHGetPathFromIDList((LPITEMIDLIST) lp ,szDir)) { SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir); } break; } return 0;}int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow){ BROWSEINFO bi; TCHAR szDir[MAX_PATH]; LPITEMIDLIST pidl; LPMALLOC pMalloc; if (SUCCEEDED(SHGetMalloc(&pMalloc))) { ZeroMemory(&bi,sizeof(bi)); bi.hwndOwner = NULL; bi.pszDisplayName = 0; bi.pidlRoot = 0; bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT; bi.lpfn = BrowseCallbackProc; pidl = SHBrowseForFolder(&bi); if (pidl) { // // Other code omited // pMalloc->lpVtbl->Free(pMalloc,pidl); } pMalloc->lpVtbl->Release(pMalloc); } return 0;} TCHAR szDir[100];GetWindowsDirectory(szDir, 100); 多线程单链表 CListCtrl的风格改成Owner Data,再运行就什么也不显示了 怎样判断是否一个窗口是否属于某个进程呢? vector 指针问题 寻HOOK代码 请问白平衡 算法? 关于访问有密码的数据库,应该怎么连接数据库阿 怪怪怪:CListCtrl 怎么不能添加列? 请问大家一个关于VC使用上的问题,请进! 怎样实现数组到CArray或者CArray到数组的快速转换亚? 绘制缩略图形 CSocket对象在线程中如何接收数据!!!!
#include <windows.h>
#include <shlobj.h>INT CALLBACK BrowseCallbackProc(HWND hwnd,
UINT uMsg,
LPARAM lp,
LPARAM pData)
{
TCHAR szDir[MAX_PATH]; switch(uMsg)
{
case BFFM_INITIALIZED:
if (GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir))
{
// WParam is TRUE since you are passing a path.
// It would be FALSE if you were passing a pidl.
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)szDir);
}
break; case BFFM_SELCHANGED:
// Set the status window to the currently selected path.
if (SHGetPathFromIDList((LPITEMIDLIST) lp ,szDir))
{
SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir);
}
break;
}
return 0;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
{
BROWSEINFO bi;
TCHAR szDir[MAX_PATH];
LPITEMIDLIST pidl;
LPMALLOC pMalloc; if (SUCCEEDED(SHGetMalloc(&pMalloc)))
{
ZeroMemory(&bi,sizeof(bi));
bi.hwndOwner = NULL;
bi.pszDisplayName = 0;
bi.pidlRoot = 0;
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
bi.lpfn = BrowseCallbackProc; pidl = SHBrowseForFolder(&bi);
if (pidl)
{
//
// Other code omited
//
pMalloc->lpVtbl->Free(pMalloc,pidl);
}
pMalloc->lpVtbl->Release(pMalloc);
}
return 0;
}
TCHAR szDir[100];
GetWindowsDirectory(szDir, 100);