【发布时间】:2009-09-15 19:45:43
【问题描述】:
我正在尝试使用GetSaveFileName 保存文件,并希望在我的保存文件对话框底部有几个额外的弹出窗口,以允许用户指定更多选项。我正在尝试关注该主题的MSDN documentation(特别是Explorer-style customization),但似乎无法让我的自定义项目出现。我相信我正确设置了OPENFILENAME 结构,因为我正在接到我的OFNHookProc 的电话。据我所知,在WM_INITDIALOG 消息期间,我应该创建我的子控件,这就是我正在做的事情:
HWND settings_popup =
::CreateWindowExW(WS_EX_CLIENTEDGE | WS_EX_NOPARENTNOTIFY,
L"COMBOBOX",
L"Settings:",
WS_CHILD | WS_CLIPSIBLINGS | WS_VSCROLL | WS_BORDER | CBS_DROPDOWNLIST,
10,
10,
150,
30,
dialog, // the window parameter from the OFNHookProc
NULL,
::GetModuleHandle(NULL),
NULL);
if (settings_popup)
{
HWND parent = ::GetParent(settings_popup); // for verification
::ShowWindow(settings_popup, SW_SHOW);
::EnableWindow(settings_popup, true);
}
我还从我的 OFNHookProc 返回 1 用于 WM_INITDIALOG 消息,0 用于其他所有内容。
在我试图让组合框显示在对话框中的所有尝试中,它都没有出现。我的代码中缺少什么以使组合框成为我的保存文件对话框自定义的一部分?
【问题讨论】:
-
你为什么不也使用自定义对话框模板?
标签: c++ winapi customization savefiledialog ofnhookproc