手机
当前位置:查字典教程网 >编程开发 >C语言 >win32使用openfilename浏览文件窗口示例
win32使用openfilename浏览文件窗口示例
摘要:代码如下:复制代码代码如下: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版中都测试过,可以正常的弹出打开的窗口。

【win32使用openfilename浏览文件窗口示例】相关文章:

C语言 数与串之间转换的方法

基于select、poll、epoll的区别详解

c++中new的三种用法详细解析

深入理解链表的各类操作详解

C++非递归遍历磁盘文件和递归遍历磁盘文件的程序示例

C#中委托的基本用法总结

C语言之free函数以及野指针介绍

c++ dynamic_cast与static_cast使用方法示例

C++获取任务栏打开程序窗口示例

C中的volatile使用方法

精品推荐
分类导航