【发布时间】:2011-12-05 11:50:42
【问题描述】:
如何使用纯非托管 Win32 API 创建默认的“保存/打开”对话框?
遵循指南here,在主窗口的消息循环中处理WM_CREATE消息时执行以下代码:
我也有included <Commdlg.h>。
OPENFILENAMEA ofn;
char Buffer[300];
fill(Buffer, Buffer + 300, '\0');
ofn.lStructSize = sizeof(OPENFILENAMEA);
ofn.hwndOwner = hWnd;
ofn.lpstrFile = Buffer;
ofn.nMaxFile = 300;
ofn.Flags = OFN_EXPLORER;
ofn.lpstrFilter = NULL;
ofn.lpstrCustomFilter = NULL;
ofn.nFilterIndex = 0;
ofn.lpstrFileTitle = NULL;
ofn.lpstrInitialDir = NULL;
ofn.lpstrTitle = NULL;
out << GetOpenFileNameA(&ofn) << endl;
out << Buffer << (int)CommDlgExtendedError();
然而,这段代码给出了 NO 输出。救命?!
【问题讨论】:
-
你为什么要把返回值流出来!!!
-
嗯,因为项目设置为 Win 32 类型,没有控制台,我不想创建一个标签来显示它。这就是您流式传输返回值的原因。
-
没有,但是我可以看到主程序