C++采用openfilename打开文件对话框用法实例
本文实例讲述了C++采用openfilename打开文件对话框用法,分享给大家供大家参考。具体方法如下:
这里需要注意,有的时候会因为没设置nMaxFile,而一直不出现对话框。
具体功能代码如下:
char szFileName[MAX_PATH]={0};
OPENFILENAME openFileName = {0};
openFileName.lStructSize = sizeof(OPENFILENAME);
openFileName.nMaxFile = MAX_PATH; //这个必须设置,不设置的话不会出现打开文件对话框
openFileName.lpstrFilter = "文本文件(*.txt)\0*.txt\0所有文件(*.*)\0*.*\0\0";
openFileName.lpstrFile = szFileName;
openFileName.nFilterIndex = 1;
openFileName.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
if (::GetOpenFileName(&openFileName))
{
::MessageBoxA(hwndDlg, openFileName.lpstrFile, "", MB_OK);
}
希望本文所述对大家的C++程序设计有所帮助。
相关推荐
-
C++之Boost::array用法简介
本文实例讲述了c++里支持静态数组的容器:boost.array.分享给大家供大家参考.具体分析如下: 很多C++程序员都认为boost.array很有可能出现在下一代标准库里.对于boost.array的用法有一个基本的了解是很有必要的. 1. 为什么我们需要固定大小的数组的容器 首先,固定大小的数组还是很常见的,虽然stl提供了vector,但是vector作为动态可增长的数组,比静态数组多了一点开销,这在一些人看来是无法忍受的.c++里也需要提供固定大小容量的数组容器,当然,性能可以和普通
-
c++ map,mutimap删除问题分析
这样删除会导致程序内存覆盖等一系列不可预知的bug 复制代码 代码如下: map<string, string>::iterator iter; for ( iter = mm.begin();iter != mm.end(); iter ++ ) { if ( iter->second == something ) { mm.erase( iter ); } } 原因:当erase掉iter后,继续执行iter++,这个时候就乱套了 正确方法: 复制代码 代码如下: for (iter
-
海量数据处理系列之:用C++实现Bitmap算法
bitmap是一个十分有用的结构.所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素.由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省. 适用范围:可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下基本原理及要点:使用bit数组来表示某些元素是否存在,比如8位电话号码扩展:bloom filter可以看做是对bit-map的扩展问题实例:1)已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数.8位最
-
C++模板类的用法
本文实例讲述了C++模板类的用法,分享给大家供大家参考.具体实现方法如下: main.h头文件如下: 复制代码 代码如下: template <class T> class actioncontainer { public: //构造函数 actioncontainer() { m_nRedoPos = 0; m_nUndoPos = 0; } //容器的接口函数 void add(T val
-
浅析C/C++中sort函数的用法
sort是STL中提供的算法,头文件为#include<algorithm>以及using namespace std; 函数原型如下: template <class RandomAccessIterator> void sort ( RandomAccessIterator first, RandomAccessIterator last ); template <class RandomAccessIterator, class Compare> void sor
-
基于C++ map中key使用指针问题的详解
C++实际开发的过程会经常使用到map.map是一个key-value值对,key唯一,可以用find进行快速的查找.其时间复杂度为O(logN),如果采用for循环进行遍历数据时间复杂度为O(N).如果map中的数据量比较少时,采用find和for循环遍历的效率基本没有太大的区别,但是在实际的开发过程中,存储在map中的数据往往是大量的,这个时候map采用find方式效率比遍历效率高的多. 确定采用find方式查找数据后,我们需要考虑存储map的空间复杂度,对于基础数据类型的数据(int ch
-
C++模板类的用法实例
本文实例讲述了C++中模板类的用法,分享给大家供大家参考.具体方法如下: //#include "StdAfx.h #ifndef __AFXTLS_H__ #define __AFXTLS_H__ #include <Windows.h> class CSimpleList { public: CSimpleList(int nNextOffset=0); void Construct(int nNextOffset); //接口 BOOL IsEmpty() const; voi
-
c++中map的基本用法和嵌套用法实例分析
本文实例讲述了c++中map的基本用法和嵌套用法.分享给大家供大家参考.具体分析如下: C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值.本文主要总结一下map基本用法和嵌套用法示例. 一.map基本用法 1. 头文件 复制代码 代码如下: #include <map> 2. 定义 复制代码 代码如下: map<int,int> my_Map; //注意这里的int和int可以是其他类型 或者是 复制代码 代码如下: t
-
CISBitmap派生的VC++位图透明类实例
本文所述为一个由CISBitmap派生的VC++位图透明类,可以方便实现BMP图像的透明处理,主要包含两个文件,使用时主需要将其引入到你的C++工程中即可,具体的类代码如下: CISBitmap.cpp文件代码如下: #include <stdafx.h> #include "CISBitmap.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW
-
C++中Semaphore内核对象用法实例
本文实例讲述了C++中Semaphore内核对象的用法,分享给大家供大家参考.具体方法如下: 复制代码 代码如下: // Semaphore.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include <process.h> HANDLE g_hSemaphore; DWORD g_nConut1 = 0; DWORD g_nConut2 = 0;
-
C++中DeviceIoCteatol的用法实例
本文是一篇译文,主要以实例形式讲述了C++中DeviceIoCteatol的用法.分享给大家供大家参考.具体方法如下: 应用程序代码如下: 复制代码 代码如下: DWORD dwBytesReturned = 0; BYTE bytBuffer_1[512]; BYTE bytBuffer_2[512]; CHAR string[2048]; HANDLE hDevice, hDriver; BOOL bRet; bRet = DeviceIo
随机推荐
- 如何防范PowerShell代码注入漏洞绕过受限语言模式
- angularJS 发起$http.post和$http.get请求的实现方法
- javascript xml xsl取值及数据修改第1/2页
- SQL创建的几种存储过程
- Redis简介
- js+css实现的简单易用兼容好的分页
- Java JVM虚拟机运行机制
- Java 线程池详解
- ASP.NET中Label控件用法详解
- 探讨JavaScript语句的执行过程
- JavaSript中变量的作用域闭包的深入理解
- php下实现农历日历的代码
- Android Touch事件分发过程详解
- joomla组件开发入门教程
- php+mysqli数据库连接的两种方式
- 用Jena将本体文件存入MySQL数据库的实现方法
- php register_shutdown_function函数详解
- Jquery Ajax请求文件下载操作失败的原因分析及解决办法
- Android利用软引用和弱引用避免OOM的方法
- javascript动态创建及删除元素的方法