tôi đang cố gắng để tạo ra một trình duyệt thư mục MFC đơn giản và tìm kiếm câu trả lời trong MSDN và đây cũng như: đây là mã của tôi cho đến nay:MFC trình duyệt thư mục IFileOpenDialog
void CAddFilterDlg::OnBnClickedAddDll()
{
CFileDialog dlg(TRUE/*bOpenFileDialog*/, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , NULL, NULL, 0, TRUE/*bVistaStyle*/);
CString folderPath = dlg.GetFolderPath();
IFileOpenDialog * openDlg = dlg.GetIFileOpenDialog();
if (openDlg != NULL)
{
openDlg->SetOptions(FOS_PICKFOLDERS);
openDlg->Release();
}
dlg.DoModal();
}
các lỗi tôi nhận được là:
- con trỏ đến kiểu lớp không đầy đủ là không được phép (điều này là dành cho openDlg)
- định danh "FOS_PICKFOLDERS" là undefined
tôi đang làm việc trên visual studio 2010, win7
openDlgPtr ở đâu? Tôi không thể nhìn thấy trong đoạn mã. "FOS_PICKFOLDERS" được định nghĩa trong ShObjIdl.h, hãy chắc chắn rằng bạn có nó bao gồm – stamhaney
tôi sẽ sửa lỗi đó xin lỗi openDlg thay vì openDlgPtr. i thêm #include "ShObjIdl.h" nó vẫn không được nhận dạng –
Bạn không đặt macro phiên bản cửa sổ đích (_WIN32_WINNT) đúng cách. IFileOpenDialog chỉ có sẵn trong 0x600 trở lên. –