Hyman的博客

你想要什么样的生活,并真正为之努力,你一定会得到它!

MFC中利用序列化技术实现撤销功能

一、 CUndo类接口说明 1.1 virtual void Serialize(CArchive& ar)=0; 作用:纯虚函数,序列化从CUndo继承的子类,主要作用是对该子类各个成员变量进行序列化,程序中完成一步操作时,保存各个成员变量的值。 1.2 virtual v...

2016-02-28 16:49:10

阅读数:2196

评论数:0

MFC对话框程序加载菜单、加速键、工具栏

MFC中程序分为三种:多文档程序、单文档程序和对话框程序,其中多文档和单文档程序默认带有菜单、加速键以及工具栏,下面介绍对话框程序中加载菜单、加速键和工具栏的方法。 首先,新建一个对话框的程序,名称叫做DlgTest,如下图: 一、加载菜单 首先,新建一个菜单,如下图所示,主菜单名称...

2016-02-28 16:30:46

阅读数:1529

评论数:0

vs2010如何检测内存泄漏

原文地址:http://blog.csdn.net/hxh129/article/details/7992519 摘要 本文分析了Windows环境使用MFC调试内存泄露的技术,介绍了在Windows环境下用VC++查找,定位和消除内存泄露的方法技巧。 关键词:VC++;CRT ...

2016-02-28 16:09:12

阅读数:815

评论数:0

MFC中实现缩放画图的另一种方式

在前面的一篇文章中,作者详细介绍了利用GDI+的API实现缩放图像的方法。下面介绍另外一种可以实现图形缩放的方法。 在windows的绘图中,绘图的逻辑单位和视图的物理单位之间的对应关系是可以改变的,通过 CDC::SetMapMode可以改变这种关系。而本次实现图形缩放的功能原理就是通过改变这种...

2015-12-14 09:47:46

阅读数:4030

评论数:0

Windows GDI+坐标系统详解(二)

在上一篇中,作者详细介绍了GDI+中坐标系的概念,并以示例的方式进行了解释。 以下代码,是根据作者的示例,编写的VC++代码: 1.首先新建一个基于对话框的MFC程序项目名称GDIMan,在其app的头文件中声明Gdiplus的令牌,用于Gdiplus的初始化 ULONG_PTR m_gdi...

2015-12-02 22:08:02

阅读数:1282

评论数:2

Windows GDI+坐标系统详解(一)

原文出自http://blog.csdn.net/smstong/article/details/6405482 GDI+中的坐标系 1 什么是坐标系        坐标系就是确定一组数据位置的标尺。按按照维数分为2维平面坐标系和3维空间坐标系。其实2维坐标系也是z=0的3维坐标系的特例。  ...

2015-12-02 21:30:39

阅读数:1127

评论数:0

MFC GDI+实现以鼠标为中心缩放图片(并且可以拖动)

原文点击打开链接 在开始之前我们先了解一下GDI+中的坐标系统: 世界坐标(World Coordinate) 是用来制作特定绘图自然模型的坐标。 页面坐标(Page Coordinate) 则是指绘图接口(例如窗体或控件) 使用的坐标系统。 设备坐标(Device Coordinate) 是在其...

2015-12-02 19:37:37

阅读数:3853

评论数:0

MFC的序列化技术(二)

上面介绍了在函数中对int、float等基本数据类型的序列化,下面介绍在MFC中怎么定义支持序列化的类 一、定义一个类CStudent,从CObject公有派生,从CObject公有派生是我们自己定义的类支持序列化的一个必要条件。 class CStudent:public CObject { ...

2015-11-23 19:02:23

阅读数:571

评论数:0

MFC的序列化技术(一)

一、函数中运用序列化向本地文件存储和下载数据 序列化函数,将数据转换成二进制流,存储到本地文件: void save() { CFile file("d:\\1.dat",CFile::modeCreate|CFile::modeWrite); CArchive ar...

2015-11-23 18:53:01

阅读数:659

评论数:0

VS2010每次编译都重新编译整个工程的解决方案

在使用VS2010编译C++程序的时候,每次修改工程中的某一个文件,点击“生成-仅用于项目-仅生成**”时,往往都是整个工程都需要重新编译一遍。由于这个工程代码量太大,每次编译完成都需要将近10分钟左右的时间编译。最烦人的时候是当编译完了出错,修改了错误再次编译,浪费很多时间。 那么怎么配置VS...

2015-11-20 19:24:07

阅读数:1355

评论数:0

VC静态库的创建和使用

一、静态库项目的创建和生成。 打开VS2010,文件->新建->项目->windows应用程序,选择静态库项目(项目名称Cpplib)。 在项目中新建如下CMath类: class CMath { public: int add(int a,int b) { ret...

2015-11-13 19:18:35

阅读数:1135

评论数:0

VC中调用dll类的方法

使用dll中导出的类,需要提供dll,lib和头文件。 使用dll导出的类只有隐式导入一种方法, 如有包含导出类CMath的dll----classDll.dll,使用如下代码进行导入: #include "stdafx.h" #include "windows.h&...

2015-11-09 20:26:23

阅读数:691

评论数:0

VC中调用dll函数的两种方法

一、显式调用 1、定义函数指针 typedef int (*dll_mul)(int a,int b); 2、加载dll,并获取其程序实例句柄 HINSTANCE hdll=loadlibrary("c:/cppDll.dll"); 3、从dll实例句柄中获取函数指针 dll...

2015-11-05 09:11:19

阅读数:2278

评论数:0

DLL中的main函数

用VS2010生成的dll函数中,有默认主函数,如果我们想在进入dll之间进行一些程序的初始化操作或者 在程序结束后,进行资源回收等操作,在cpp文件中可进行如下DllMain函数的定义: BOOL CALLBACK DllMain(HINSTANCE hDll,DWORD fdwReason...

2015-10-28 21:00:46

阅读数:852

评论数:0

VC中导出类生成动态链接库的方式

利用dll导出类时,相比利用dll导出函数比较特殊。 导出时可在.h文件中,利用下面的代码进行导出: class _declspec(dllexport) CMatch { public: int Add(int add1,int add2); int Sub(int sub1,int su...

2015-10-28 20:59:13

阅读数:914

评论数:0

VC中生成动态链接库的三种方式(导出函数)

开发环境:VS2010 一 创建动态链接库项目 文件->新建->项目,选择建立Win32项目  点击确认后,点击下一步,看大如下界面,选择dll,再点击完成。   生成如下图所示的文件结构:   二 导出动态链接库 方法一 声明导出: 1、以C++的方式声明导出,在Cppd...

2015-10-28 20:55:42

阅读数:2037

评论数:0

VC中进行ActiveX控件的开发

开发环境:VS2010 开发步骤: 一、ActiveX控件项目的新建 1、 文件->新建->项目,选择MFC ActiveX控件,项目名称叫做MCDocx。     2、 新建完成后,默认生成如图所示的类视图结构: 其中CMCDocxApp类用于控制整个控件的程序执行流程,默认生...

2015-10-23 17:26:01

阅读数:1233

评论数:0

VC中三种获取本地时间的方式

一、利用GetLocalTime()函数实现        #include //需要包含windows.h的头文件,可在Win32 MFC环境下使用       SYSTEMTIME time;       GetLocalTime(&time); //获取本地时间,将时间存入到结构体t...

2015-04-21 15:39:03

阅读数:675

评论数:0

VC开发中三种调试技术

一、调试信息输出到本地文件 (1) 实现思路是定义一个变参函数 TraceLog(char * lpszFormat,...),作用是将传入的格式话字符串写入到本地文件TraceLog.txt中,在程序开发中能够随时调用并写入调试信息。     如: int number=123; Tra...

2015-04-21 13:57:18

阅读数:649

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭