win32使用openfilename浏览文件窗口示例

 更新时间:2014年02月19日 10:21:31   作者:  
这篇文章主要介绍了使用win32 API打开浏览文件窗口,使用OPENFILENAME结构体来实现这个功能,需要的朋友可以参考下

代码如下:

复制代码 代码如下:

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\0*.*\0";
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++ 实战开发一个猜单词的小游戏

    众所周知纸上得来终觉浅,我们要在实战中才能真正的掌握技术,小编为大家带来一份用C++编写的猜单词小游戏,给大家练练手,快来看看吧
    2021-11-11
  • C语言数据结构进阶之栈和队列的实现

    C语言数据结构进阶之栈和队列的实现

    栈和队列,严格意义上来说,也属于线性表,因为它们也都用于存储逻辑关系为 "一对一" 的数据,但由于它们比较特殊,因此将其单独作为一章,做重点讲解
    2021-11-11
  • C语言进阶:指针的进阶(3)

    C语言进阶:指针的进阶(3)

    这篇文章主要介绍了C语言指针详解及用法示例,介绍了其相关概念,然后分享了几种用法,具有一定参考价值。需要的朋友可以了解下
    2021-09-09
  • C++深入探究类与对象之友元与运算符重载

    C++深入探究类与对象之友元与运算符重载

    友元就是让一个函数或者类,访问另一个类中的私有成员;打个比方,这相当于是说:朋友是值得信任的,所以可以对他们公开一些自己的隐私,运算符重载的实质就是函数重载或函数多态,运算符重载是一种形式的C++多态,目的在于让人能够用同名的函数来完成不同的基本操作
    2022-04-04
  • C/C++ extern关键字用法示例全面解析

    C/C++ extern关键字用法示例全面解析

    这篇文章主要为大家介绍了C/C++ extern关键字用法示例全面解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • C++实现的分布式游戏服务端引擎KBEngine详解

    C++实现的分布式游戏服务端引擎KBEngine详解

    这篇文章主要详细介绍了C++实现的分布式游戏服务端引擎KBEngine的概念以及使用方法,非常的实用,有需要的小伙伴可以参考下
    2015-03-03
  • C++利用静态成员或类模板构建链表的方法讲解

    C++利用静态成员或类模板构建链表的方法讲解

    这篇文章主要介绍了C++利用静态成员或类模板构建链表的方法讲解,链表是基础的数据结构,而在C++中构件单链表还是稍显复杂,需要的朋友可以参考下
    2016-04-04
  • 实例讲解C++编程中的虚函数与虚基类

    实例讲解C++编程中的虚函数与虚基类

    这篇文章主要介绍了C++编程中的虚函数与虚基类的实例讲解,虚函数与虚基类的使用是C++入门学习中的基础知识,需要的朋友可以参考下
    2016-02-02
  • C语言实现经典24点算法

    C语言实现经典24点算法

    这篇文章主要为大家详细介绍了C语言实现经典24点算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • 基于Qt实现视频播放器的制作

    基于Qt实现视频播放器的制作

    本文主要为大家介绍了如何利用Qt中的qMediaPlayer和qvideowidget实现视频文件(avi,mp4….)的播放,并且提供进度显示,还可以通过拖动进度条来变换播放位置,感兴趣的可以尝试一下
    2022-12-12

最新评论