MFC
文章平均质量分 67
xiaojun11-
勤能补拙,奋发ing
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用 Libpng 配合 GDI 完成对 png 图片的解析与显示
第一步: 使用 libpng 完成对 png 图像的解析在上一篇 《VC6 下 libpng 库的编译与初步使用》 中我们已经完成了对 libpng 库的编译与配置, 今天就来用它来实现对 png 图片进行解析并且将解析到的图片数据通过 Windows GDI 显示到窗口中。在这之前, 我们先做个假设:1. 所使用的图片确实为 png 格式做假设目的是为了减少演示代码的转载 2015-10-30 10:06:54 · 762 阅读 · 0 评论 -
Win32 API 选择文件和文件夹
1.打开文件TCHAR szPathName[MAX_PATH]; OPENFILENAME ofn = { OPENFILENAME_SIZE_VERSION_400 };//or {sizeof (OPENFILENAME)} // lStructSize // 指定这个结构的大小,以字节为单位。 // Windows 95/98和Windows NT转载 2015-06-11 07:58:12 · 2697 阅读 · 0 评论 -
Win32_API注册表类的编制以及使用
Win32_API注册表类的编制以及使用前置知识:VC APIKeyWords :注册表 函数 类一、问题的提出Windows 已由原来的16位 windows 3.x 升级为现今我们使用的32位windows 95/97/98以其 Windows NT,用户不仅在使用上应逐步适应,对于程序开发人员来说在编程技术上也应紧跟操作系统的技术发展,就如同 在 Li转载 2015-06-13 16:19:51 · 935 阅读 · 0 评论 -
vs2010远程桌面调试
假设现在有A、B两台PC机。VS2010安装在A机器上,也就是说A机器是开发使用的机器。B机器是程序运行部署使用的机器,其IP为:192.168.1.129(局域网IP)说明:如果B机器是外网IP下面方法照样适合,不过在使用的适合可能会出现无法附加到进程的错误。如果出现无法附加到进程的错误、无法连接到设备.请按照步骤13进行设置。 1、根据vs2010安装目录倒找Remot转载 2015-06-15 16:30:21 · 774 阅读 · 0 评论 -
VS2010进行远程调试方法总结
假设现在有A、B两台PC机。VS2010安装在A机器上,也就是说A机器是开发使用的机器。B机器是程序运行部署使用的机器,其IP为:192.168.1.129(局域网IP)说明:如果B机器是外网IP下面方法照样适合,不过在使用的适合可能会出现无法附加到进程的错误。如果出现无法附加到进程的错误、无法连接到设备.请按照步骤13进行设置。 1、根据vs2010安装目录倒找Remot转载 2015-06-15 16:28:51 · 613 阅读 · 0 评论 -
GetLastError错误码中文大全
错误代码中文查询GetLastError返回代码的含义 〖0〗-操作成功完成。 〖1〗-功能错误。 〖2〗-系统找不到指定的文件。 〖3〗-系统找不到指定的路径。 〖4〗-系统无法打开文件。 〖5〗-拒绝访问。 〖6〗-句柄无效。 〖7〗-存储控制块被损坏。 〖8〗-存储空间不足,无法处理此命令。 〖9〗-存储控制块地址无效。 〖10〗-环境错误。转载 2015-06-15 18:35:29 · 7981 阅读 · 0 评论 -
基于Media Foundation获取音频视频输入设备列表
摘自:秦建辉的专栏 个人独立博客:http://www.firstsolver.com/wordpress/开发工具:Visual Studio v2010Windows SDK v7.1版本历史:V1.0 2010年10月09日完成正式版本。功能描述:获取音频视频输入设备列表 接口函数:转载 2015-07-15 10:43:28 · 1106 阅读 · 0 评论 -
基于DirectShow获取音频视频输入设备列表
摘自:秦建辉的专栏个人独立博客:http://www.firstsolver.com/wordpress/开发工具:Visual Studio v2010Windows SDK v7.1版本历史:V1.0 2010年10月09日完成正式版本。功能描述:获取音频视频输入设备列表 接口函数:DS_Get转载 2015-07-15 10:46:16 · 1361 阅读 · 0 评论 -
Ansi,UTF8,Unicode,ASCII编码的区别
近日需要不同的编码,关于上述编码,一直迷迷糊糊,查了些资料,总算大致了解了,下面全是从网上搜来的:1. ASCII和Ansi编码 字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码.转载 2015-07-31 10:41:32 · 463 阅读 · 0 评论 -
常用设备接口类GUID
注意:在VC中使用这些常量名称时,除了包含相应的头文件外,还需要预先包含initguid.h头文件。即:[cpp] view plaincopy#include 常用设备接口类GUIDIdentifierClass GUIDHeaderGUID_DEVINTERFACE_USB_DEVI转载 2015-07-17 17:19:53 · 1863 阅读 · 0 评论 -
Win32打开某个文件所在的文件夹并定位
方法一: 相同的目录会打开多次 string str = "/select, "; str+=m_pFilePath;//同一个目录 str+=m_pFileName; str+=".mp4"; ShellExecute(NULL,"open","explorer.exe",str.c_str(),NULL,SW_SHOWNORMAL);方法二:相原创 2015-09-06 11:50:10 · 2154 阅读 · 0 评论 -
VS2008调试Release程序--Dump文件方式
在Windows平台下用C++开发应用程序,最不想见到的情况恐怕就是程序崩溃,而要想解决引起问题的bug,最困难的应该就是调试release版本了。因为release版本来就少了很多调试信息,更何况一般都是发布出去由用户使用,crash的现场很难保留和重现。目前有一些方法可以解决:崩溃地址 + MAP文件;MAP文件;SetUnhandledExceptionFilter + Mini转载 2015-09-15 11:15:49 · 851 阅读 · 0 评论 -
vc++打开文件夹时,指定初始路径
//回调函数 int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { if (uMsg == BFFM_INITIALIZED ) { ::SendMessage(hwnd,BFFM_SETSELECTION,转载 2015-11-06 19:08:02 · 1720 阅读 · 0 评论 -
VC窗体透明而控件不透明以及Static文本背景透明方法
优点: 1.Dialog窗体完全透明。 2. 窗体上的控件不透明、 DC 绘制的图形不透明。 3. 拖动窗体上用 DC 绘制的图形可以移动窗体。 缺点: 1. 窗体设置透明使用是掩码颜色,所以在窗体上用 DC 绘图的过程当中如果采用了和透明掩码颜色相同的颜色将不会显示出来。转载 2015-09-23 17:49:02 · 1883 阅读 · 0 评论 -
与 DPI 相关的 API 和注册表设置
VisualStudio中有修改DPI功能的设置部分,更新时间: 2013年10月应用到: Windows 8.1如果你需要执行部署自定义,以下部分说明了安装后脚本可能需要访问的注册表项和系统参数。本主题内容: 主显示器原始分辨率主显示器 DPI 比例系数缩放模式Windows 8.1 缩放模式中的缩放覆盖转载 2015-10-14 10:32:03 · 4924 阅读 · 0 评论 -
虚拟机下安装Winxp 安装ghost
1、首先是磁盘需要分区,分完区后需要重启,会遇到一个 NLD is missing,是因为分完区后没有安装系统,解决方法:设置以CDROM启动,2、ctrl+Alt+insert 将设备重启,然后摁F2(出现第一个画面的时候)3、然后就能安装了转载 2015-10-13 16:26:23 · 583 阅读 · 0 评论 -
vc 防止多次运行同一个程序的方法
使用编译器来实现(使用MFC框架):在.cpp文件开头加上以下几行:#pragma data_seg("Shared") int volatile g_lAppInstance =0;#pragma data_seg()我们来看一下上面的内容:第一句 #pragma data_seg("Shared") 创建一个称为Shared 的新节。第二句 int vola转载 2015-06-30 16:22:05 · 2885 阅读 · 0 评论 -
GDI操作PNG图片
这两天在做UI,以前做过一点,但是不太熟悉,于是乎就遇到很多的问题。以前用BITMAP的时候,做的就是像素COPY,再多一点就是像素运算,这一切的东西都是有自己控制的。也就是说不参杂alpha通道。话说今天我用PNG图片,但是用到一个小图片的时候,图片总是不能正常显示。代码如下:CImage image;//CImage类有自己的Dcif (image.Load(image转载 2015-10-30 10:14:00 · 1011 阅读 · 0 评论 -
C++ DLL 创建实例 导出类和函数
起初直接把子__declspec(dllexport) 放在类声明的地方. 发生 warning C4273 DLL 链接不一致错误.想了挺长时间才意识到是生成lib时并头文件和原文件中对函数的名字解析名字不一样而产生的. 才想到要定义一个宏.有点感叹知识不用会也会老的. 下边是代码 //头文件:testClass.h [cpp] view转载 2015-12-12 09:23:33 · 1446 阅读 · 0 评论 -
Windows桌面共享中一些常见的抓屏技术
1. BitBlt我想做Windows开发应该都知道这个API, 它能实现DC间的内容拷贝, 如果我们把源DC指定成Monitor DC或是桌面DC, 它就能实现抓屏功能。对于通过这种方式的抓屏, 有2点需要特别提醒:a. 在XP下我们可以通过最后的拷贝标志来控制是否拷贝layered window, 只有SRCCPY表示拷贝内容不包含layered windo转载 2016-01-18 14:10:25 · 1440 阅读 · 0 评论 -
windows下执行exe ,获得cmd中输出内容
主要原理是:利用管道重定向输出到buffer中BOOL CRecording::GetFileDuration(wstring strFilePath,wstring strDuration){wchar_t exeFullPath[MAX_PATH]={0}; GetModuleFileName(NULL,exeFullPath,MAX_PATH); wstring转载 2016-06-07 10:47:56 · 5990 阅读 · 0 评论 -
VC高精度定时
一、VC实现高精度定时器__基本流程 1、头文件包含 #include 2、类成员中添加变量 UINT m_iTimerId; //定时器句柄 3、创建回调函数,响应定时器事件 void CALLBACK CatchTimer ( UINT IDEvent, U转载 2016-07-11 11:03:13 · 1161 阅读 · 0 评论 -
VC直接打开mp4文件
直接执行程序ShellExecute(NULL,L"open",L"d:/video/11.mp4",NULL,NULL,SW_SHOWNORMAL); 系统就会调用默认的执行程序,打开该视频原创 2016-07-01 16:26:44 · 2089 阅读 · 0 评论 -
【图解】Linux下C程序进程地址空间布局
作者:沧海猎人 出处:http://blog.youkuaiyun.com/embedded_hunter 转载请注明出处 嵌入式技术交流QQ群:179012822我们在学习C程序开发时经常会遇到一些概念:代码段、数据段、BSS段(Block Started by Symbol) 、堆(heap)和栈(stack)。先看一张教材上的示意图(来源,《UNIX环境高级编程》一书),显示了进程转载 2016-07-04 16:34:03 · 477 阅读 · 0 评论 -
vs2015部署---下一代VC运行时库系统:the Universal CRT
转载自:http://www.qingpingshan.com/m/view.php?aid=223329前言其实the Universal CRT(通用C运行时库)已经不能算是“下一代”,因为它已经在前两年伴随着Visual Studio 2015和Windows10发布。但是由于之前使用VS2015开发的应用还较少,关注的人也少,相关的文章更少。所以笔者想干脆用一篇文章转载 2017-04-01 09:20:56 · 3243 阅读 · 0 评论 -
window下使用SetUnhandledExceptionFilter捕获让程序的崩溃
简单使用SetUnhandledExceptionFilter()函数让程序优雅崩溃虽然是大公司的产品,QQ它还是会在我们的折腾下崩溃的,但是它总是崩溃的很优雅,还要弹出自己的对话框来结束。并且发送报告,去掉了系统默认的发送报告的对话框。所以一拍脑袋,想让自己的程序崩溃的体面一点。自己想了大概的思路,觉得可以用一个进程来监控目标程序。的确也可以拿到了目标程序崩溃的信息,知道它什么时候崩溃的,也可以...转载 2018-05-15 18:20:11 · 1043 阅读 · 0 评论 -
_asm int 3 软件中断
int 3机器码0cch,是无数人的最爱,你不见VC++不管是链接还是初始化,都用这个 0CCh来填,你不见所有运行在ring3的debug都使用这个0cc来插入你想中断调试的位置,以至在不去掉断点的情况下写盘,在你的代码中会发现这个莫名其妙的0CCh。int 3不过是一个软件断点中断,你自己就可以任意修改这个中断,在anti-debug中,你可以通过修改这个中断给调试者带来巨大的惊喜,如果你能更...转载 2018-05-16 17:51:49 · 1253 阅读 · 0 评论 -
vs2010错误汇总
1、VS 2010下 打开实例 出现这样的错误:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏解决方法:项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。 ...原创 2014-12-02 13:55:49 · 643 阅读 · 0 评论 -
VS2010创建ATL工程及使用C++测试COM组件
1.创建ATL项目,取名MyCom2. ATL 项目向导,勾选 【支持COM+ 1.0】和【支持部件注册器】,其他默认,点击完成。3.在该项目中添加类4.添加一个ATL简单对象5. ATL 简单对象向导,“简称”中输入类名称MyClass,其他输入框会自动填写,最下面的“ProgID”没有自动填写,最好自己写上一个,如MyCom.math,否则后面无法正确调用...转载 2015-03-30 12:17:47 · 2961 阅读 · 1 评论 -
vs2010工程属性配置--输出目录的配置
1)一个程序,生成的程序名称 不是项目名称命名的EXE名称。但是是属性设置中,目标文件名却是:$(ProjectName)请问如何修改???2)程序修改了输出目录,但生成的时候,还是生成在默认目录, 调试的时候 却提示,无法启动” ..\text.exe“,无法找到相应的指定的文件 --------------------------------------------------...原创 2015-04-16 23:30:52 · 3192 阅读 · 0 评论 -
vs2010 问题 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏问题说明:当安装VS2012之后,原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时,不会恢复.NET 4.0。l 当VS2012安装后,VS2010的cvtres.exe就无法使用了。如果你的PATH环境变量中VS2010的工具路径第一个出现,而且链接器需要将.r...转载 2015-05-08 13:25:07 · 912 阅读 · 0 评论 -
vs2010 程序语句有错,也报错了 却运行了以前的版本,怎么设置它有错就不要运行了呢?
vs2010 程序语句有错,也报错了 却运行了以前的版本,怎么设置它有错就不要运行了呢?求大神指点!谢谢!我写的程序语句有错,编译器也报错了 但它运行了以前没错的EXE,怎么设置它编译有错有错就不要运行了呢?求大神指点!谢谢!解决方法:这个的设置在调试->选项和设置->点“项目和解决方案”前面的白三角->生成并运行->运行...转载 2015-08-14 11:27:11 · 1025 阅读 · 0 评论 -
VC中使用GDI+实现为按钮加载Png图片
一 、在stdafx.h文件中添加头文件,命名空间,库的引用, #include using namespace Gdiplus;#pragma comment( lib, "gdiplus.lib" ) 二、在程序实现文件中添加全局变量ULONG_PTR gdiplusToken; 三、在应用程序初始化时进行GDI+的初始化BOOL CXXXApp:转载 2015-05-28 13:50:25 · 1106 阅读 · 0 评论 -
MFC控件添加变量时,control和value的区别
最近学习vc,又被这个问题搞糊涂了,上网查了下,终于搞清楚了。 control型变量是这个控件所属类的一个实例(对象)可以通过这个变量来对该控件进行一些设置。而value只是用来传递数据,不能对控件进行其它的操作。control型变量可以获得控件的实例,通过这个变量,你可以操纵控件value型变量仅仅可以获得该控件的public型变量如果你添加了一个m_CtrlEdit转载 2015-04-27 14:12:39 · 718 阅读 · 0 评论 -
VC获取屏幕分辨率及大小相关
vc得到屏幕的当前分辨率方法:1.Windows API调用int width = GetSystemMetrics ( SM_CXSCREEN ); int height= GetSystemMetrics ( SM_CYSCREEN ); 如果想动态自适应分辨率的变化,处理WM_DISPLAYCHANGE消息. 2.获得分辨率BOOL EnumDisplaySettin转载 2015-04-27 13:09:34 · 682 阅读 · 0 评论 -
设置Ctatic控件的字体颜色
BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOu转载 2015-04-30 11:20:10 · 834 阅读 · 0 评论 -
请问MFC里CHECKBOX用法
勾选时...做某种算法不勾选时 做另一种算法if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) ){// 勾选}else{勾选时...做某种算法不勾选时 做另一种算法if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) ){// 勾选}els转载 2015-04-30 07:51:32 · 890 阅读 · 0 评论 -
C++ TinyXml操作(含源码下载)
前言TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析,使用简单,容易上手。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及转载 2015-04-27 23:56:44 · 483 阅读 · 0 评论 -
在对话框中加入属性页
当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置。本文针对这种方法来讨论几种可能实现的方案。方案一 本方案的例子请见源代码打包文件中的Property1部分 在对话框上放置一个Tab Control的控件,再在对话框上放置所需的控件(本例放置了2个按钮,试图在每个标签中显示一个)。然后利用Class Wizard来为Tab Control控件创建一个转载 2015-04-28 11:26:13 · 449 阅读 · 0 评论 -
MFC单选控件Radio使用总结
单选钮用来表示一系列的互斥选项,这些互斥项常常被分成若干个组,每组仅允许用户选择一个选项;复选框与单选按钮相象,不同之处是复选框代表多重选择,用户可以选择一个或多个选项。 对话框编辑器中各组控件的对齐 按下Ctrl键并单击要对齐的各个控件,同时选中。最后选中的控件是对齐的基准,仔细观察,它周围的8个小方框是实心的,而其它被选控件周围的小方框是空心的。 在Layout菜单中选转载 2015-05-12 16:32:33 · 5929 阅读 · 0 评论
分享