大家好,请问easyx怎么弹出“打开”窗口,返回路径

0

大家好,请问easyx怎么弹出“打开”窗口,返回路径,版本:easyx2020,vc2019,win10谢谢!

类似这样:

打开


windows(C:)|

xxxxxxx(G:)|

                       文件名:                                    

                                                                      打开(O)


谢谢!!!

ava
Forest

2020-2-14

0

这个功能可以使用 Windows API 实现。我在 VC2010 下实现了以下代码:

// 显示“打开文件对话框”
// 编译环境:VC2010 + EasyX_20200109(beta)
//
#include <graphics.h>
#include <conio.h>

int main()
{
	HWND hwnd = initgraph(640, 480);					// 创建绘图窗口(打开文件对话框的父窗口)

	wchar_t szFile[260] = { 0 };						// 文件名

	// 初始化结构体 OPENFILENAME(具体成员含义,请按 F1 参考 MSDN)
	OPENFILENAME ofn;									// 对话框结构体
	ZeroMemory(&ofn, sizeof(ofn));						// 结构体用 0 填充
	ofn.lStructSize = sizeof(ofn);						// 结构体大小
	ofn.hwndOwner = hwnd;								// 父窗口
	ofn.lpstrFile = szFile;								// 文件名
	ofn.nMaxFile = sizeof(szFile);						// 文件名缓冲区大小
	ofn.lpstrFilter = L"All\0*.*\0Text\0*.TXT\0";		// 文件类型筛选列表(详见 msdn)
	ofn.nFilterIndex = 1;								// 默认的文件类型筛选项编号(详见 msdn)
	ofn.lpstrFileTitle = NULL;							// 选中文件的文件名和扩展名(不带路径)
	ofn.nMaxFileTitle = 0;								// lpstrFileTitle 指向的缓冲区大小
	ofn.lpstrInitialDir = NULL;							// 初始路径
	ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;	// 对话框的标志位设置

	// 显示“打开文件对话框”
	if (GetOpenFileName(&ofn) == TRUE)
		outtextxy(0, 0, ofn.lpstrFile);					// 输出用户选择的文件名
	else
		outtextxy(0, 0, L"(没有选择文件)");

	// 按任意键退出
	_getch();
	closegraph();

	return 0;
}
ava
慢羊羊

2020-2-14

技术讨论社区