win32使用openfilename浏览文件窗口示例
win32使用openfilename浏览文件窗口示例
发布时间:2016-12-28 来源:查字典编辑
摘要:代码如下:复制代码代码如下:OPENFILENAMEofn;WCHAR*szFile=newWCHAR[512];WCHAR*szFileT...

代码如下:

复制代码 代码如下:

OPENFILENAME ofn;

WCHAR* szFile = new WCHAR[512];

WCHAR* szFileTitle = new WCHAR[512];

memset(&ofn, 0, sizeof(ofn));

memset(szFile, 0, sizeof(WCHAR)*512);

memset(szFileTitle, 0, sizeof(WCHAR)*512);

ofn.lStructSize = sizeof(ofn);

ofn.hwndOwner = yMain->m_hWnd;

ofn.hInstance = yMain->m_hInst;

ofn.lpstrFilter = L"All File*.*";

ofn.nFilterIndex = 1;

ofn.lpstrFile = szFile;

ofn.nMaxFile = sizeof(WCHAR)*512;

ofn.lpstrFileTitle = szFileTitle;

ofn.nMaxFileTitle = sizeof(WCHAR)*512;

ofn.Flags = OFN_FILEMUSTEXIST | OFN_EXPLORER;

// 按下确定按钮

BOOL ok = GetOpenFileName(&ofn);

if( ok ){

MessageBox(hWnd, L"23", L"44", MB_OK);

}

delete []szFile;

delete []szFileTitle;

其中,有个地方需要注意一下,要是不使用以下的处理话,会出现无法弹出浏览窗口界面的问题:

复制代码 代码如下:

WCHAR* szFile = new WCHAR[512];

WCHAR* szFileTitle = new WCHAR[512];

关于这两个变量,最好就需要先分配空间,如果直接定义为数组的话,就会导致浏览文件的窗口弹不出来。原因在于,这两个变量是局部变量,定义为数组的话,空间占用太大了,无法自动分配出来,需要专门分配内存才行。

上述代码在debug和release版中都测试过,可以正常的弹出打开的窗口。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类