如何在SDK中实现类CFileDialog的功能!-----------谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!!

baby2003627 2005-03-21 11:07:50
CFileDialog filedlg(TRUE,".mdb",NULL,OFN_HIDEREADONLY,
"MDB Files (*.mdb)|");
if (filedlg.DoModal()==IDOK)
{
m_strPath = filedlg.GetPathName();
UpdateData(FALSE);
GetDlgItem(IDC_CONNECT)->EnableWindow(TRUE);
}

可是现在我在SDK中要实现这个动作,不用CFileDialog 应该怎么办?
初学!!
...全文
224 点赞 收藏 9
写回复
9 条回复
koko1998 2005年03月21日
static OPENFILENAME ofn ;

void PopFileInitialize (HWND hwnd)
{
static TCHAR szFilter[] = TEXT ("Text Files (*.TXT)\0*.txt\0") \
TEXT ("ASCII Files (*.ASC)\0*.asc\0") \
TEXT ("All Files (*.*)\0*.*\0\0") ;

ofn.lStructSize = sizeof (OPENFILENAME) ;
ofn.hwndOwner = hwnd ;
ofn.hInstance = NULL ;
ofn.lpstrFilter = szFilter ;
ofn.lpstrCustomFilter = NULL ;
ofn.nMaxCustFilter = 0 ;
ofn.nFilterIndex = 0 ;
ofn.lpstrFile = NULL ; // Set in Open and Close functions
ofn.nMaxFile = MAX_PATH ;
ofn.lpstrFileTitle = NULL ; // Set in Open and Close functions
ofn.nMaxFileTitle = MAX_PATH ;
ofn.lpstrInitialDir = NULL ;
ofn.lpstrTitle = NULL ;
ofn.Flags = 0 ; // Set in Open and Close functions
ofn.nFileOffset = 0 ;
ofn.nFileExtension = 0 ;
ofn.lpstrDefExt = TEXT ("txt") ;
ofn.lCustData = 0L ;
ofn.lpfnHook = NULL ;
ofn.lpTemplateName = NULL ;
}

BOOL PopFileOpenDlg (HWND hwnd, PTSTR pstrFileName, PTSTR pstrTitleName)
{
ofn.hwndOwner = hwnd ;
ofn.lpstrFile = pstrFileName ;
ofn.lpstrFileTitle = pstrTitleName ;
ofn.Flags = OFN_HIDEREADONLY | OFN_CREATEPROMPT ;

return GetOpenFileName (&ofn) ;
}

BOOL PopFileSaveDlg (HWND hwnd, PTSTR pstrFileName, PTSTR pstrTitleName)
{
ofn.hwndOwner = hwnd ;
ofn.lpstrFile = pstrFileName ;
ofn.lpstrFileTitle = pstrTitleName ;
ofn.Flags = OFN_OVERWRITEPROMPT ;

return GetSaveFileName (&ofn) ;
}
回复 点赞
bestmai 2005年03月21日
还有GetSaveFileName、SHBrowseForFolder。。。
回复 点赞
mynamelj 2005年03月21日
OPENFILENAME ofn; // common dialog box structure
char szFile[260]; // buffer for file name
HWND hwnd; // owner window
HANDLE hf; // file handle

// Initialize OPENFILENAME
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.lpstrFile = szFile;
//
// Set lpstrFile[0] to '\0' so that GetOpenFileName does not
// use the contents of szFile to initialize itself.
//
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

// Display the Open dialog box.

if (GetOpenFileName(&ofn)==TRUE)
hf = CreateFile(ofn.lpstrFile, GENERIC_READ,
0, (LPSECURITY_ATTRIBUTES) NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
(HANDLE) NULL);
回复 点赞
baby2003627 2005年03月21日
求助!!!!!!!!!!1
回复 点赞
baby2003627 2005年03月21日
UP again!

help!help!help!!!
回复 点赞
baby2003627 2005年03月21日
对不起!能给我个更容易点的例子吗?

MSDN里GetSaveFileName的例子我有些看不懂!
怎么使用GetSaveFileName把我选择的文件Name传递给szMyEDIT

谢谢!!
回复 点赞
mynamelj 2005年03月21日
你不清楚可以在MSDN里面查得到的
回复 点赞
mynamelj 2005年03月21日
Commdlg.h
Windows.h
回复 点赞
baby2003627 2005年03月21日
是不是还需要加其他的头文件啊?

为什么提示我 OPENFILENAME ofn 定义错误呢?
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7901

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告