Windows API getOpenFilename مع قالب وربط
-
02-10-2019 - |
سؤال
أحاول استخدام قالب مع getOpenFilename دون نجاح. لقد وجدت القليل جدًا في هذا الموضوع في MSDN أو على الويب. لقد استندت إلى محاولتي على ما رأيته هنا
http://visual-c.itags.org/visual-c-c++/77687/
يتبع الكود الخاص بي. تُظهر تعليقات القالب المكان الذي قمت فيه بإجراء تغييرات على الكود B4 محاولة القالب ؛ أساسا لإزالة خطوط معينة. يتم عرض نوع Windows Explorer العادي المفتوح Windows ولكن بدون الإضافات التي أرغب في صنعها باستخدام القالب. لست متأكدًا على الإطلاق مما يجب أن يكون في وظيفة الخطاف ولكني أعلم أنه لا يتم استدعاؤه منذ أن قمت بتعيين نقطة استراحة هناك.
// Global variable
OPENFILENAME IFN;
// In WndProc
case WM_CREATE:
IFN.hInstance = ((LPCREATESTRUCT)lParam)->hInstance; // TEMPLATE
IFN.hwndOwner = hWnd; // TEMPLATE
break;
// In WndProc menu processing
case IDM_INPUT_FILE:
{
// OPENFILENAME IFN; // TEMPLATE
strcpy (szFile,"NEWEXPORT.GED");
IFN.lStructSize = sizeof(IFN);
// IFN.hwndOwner = hWnd; // TEMPLATE
// IFN.hInstance = NULL; // TEMPLATE
IFN.lpstrFilter = "All\0*.*\0GEDCOM\0*.GED\0";
IFN.nFilterIndex = 2;
IFN.lpstrCustomFilter = NULL;
IFN.lpstrFile = szFile;
IFN.nMaxFile = 510;
IFN.lpstrFileTitle = NULL;
IFN.lpstrInitialDir = NULL;
IFN.lpstrTitle = NULL;
IFN.Flags = OFN_FILEMUSTEXIST || OFN_PATHMUSTEXIST || OFN_EXPLORER || OFN_ENABLETEMPLATE || OFN_ENABLEHOOK ; // TEMPLATE
IFN.lpstrDefExt = NULL;
IFN.lpfnHook = FileAddOn; // TEMPLATE NULL;
IFN.lpTemplateName = MAKEINTRESOURCE(IDD_FILEADDON); // TEMPLATE
if (!GetOpenFileName(&IFN))
{
Beep (1000,500);
break;
}
// **************** Hook function
UINT_PTR CALLBACK FileAddOn (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return TRUE;
}
// IDD_FILEADDON was made with the visual C dialog editor and has the following properties
// Style=Child, Border=none,clip siblings,3D look
المحلول
يجب عليك أن أو أعلام الاسم المفتوح مع |
, ، ليس ||
لا تنتمي إلى StackOverflow