
VC MFC
文章平均质量分 74
Joseph-Growth
这个作者很懒,什么都没留下…
展开
-
实现只运行单个应用程序
本文转自:http://blog.youkuaiyun.com/primer_programer/article/details/2050750#plain在百度百科中对GetProp和SetProp的解释如下:GetProp函数功能:该函数从给定窗口的属性列表中检索数据句柄。给定的字符串标识了要检索的句柄。该字符串和句柄必须在前一次调用SetProp函数时已经加到属性表中。转载 2013-11-29 11:59:02 · 1042 阅读 · 0 评论 -
分治法之我见
算法这东西博大精深,又最能引人入胜。现在自己手头上的工作能用到算法的东西很少,慢慢淡忘了一些,今天来重温一下分治法。分治法讲究分而治之,将一个复杂的大问题拆解成小的子问题。如果子问题还是很复杂,则继续拆解为更小的子问题。问题到最终肯定会转换为类似于1+1的问题。最明显的应用是在汉诺塔问题上。分治法最先提出来是在2分查找上,在一个已排序序列中查找某个值。不妨就先来看看2分查找的应用:原创 2012-08-13 11:53:06 · 1049 阅读 · 3 评论 -
Visual Leak Detector 2.2.3 Visual C++内存检测工具
本文转自:http://www.cppblog.com/ming81/archive/2013/06/14/201004.htmlVisual Leak Detector是一款免费的、健全的、开源的Visual C++内存泄露检测系统。相比Visual C++自带的内存检测机制,Visual Leak Detector可以显示导致内存泄露的完整内存分配调用堆栈。主页地址:http://vl转载 2013-06-14 16:21:17 · 956 阅读 · 0 评论 -
【总结】CMFCRibbonStatusBar的用法-创建及响应
本文转自:http://czy.t.blog.163.com/blog/static/1169115482012215112312422/2012-03-15 11:23:12| 分类: vc记录 | 标签:mfc vc vs vs2010 |字号 订阅1.创建见vs2008 fp的例子 创建过程\BOOL CM转载 2013-06-14 00:23:01 · 2500 阅读 · 0 评论 -
二叉查找树
转自:http://cheney-mydream.iteye.com/blog/1867300二叉查找树一般用的不是很多,但是它是平衡二叉树和红黑树的基础,所以还是要好好了解一下的。首先说一下什么是二叉查找树:二叉查找树是一种特殊的二叉树,特殊在哪呢?1.对于树中的任意节点X,如果它的左子树不为空,则左子树中的所有节点的值均小于X的值。2.对于树中的任意节点X,如果它的右子转载 2013-05-15 09:26:45 · 872 阅读 · 0 评论 -
单片机与嵌入式浅析
转载请保留本文原址出处,以便大家方便修正正文中的错误。 一直记得上单片机的第一节课上,老师介绍单片机时,是这样说的:“单片机姓单”。为什么要强调这一点呢?方便容易分不清的童鞋,以后每次想问这个问题的时候都想想这句话。 了解的人其实很容易分开它们,实际上他们也没有什么可比性。 首先,见过单片机的人,都知道,其实单片机只是一块芯片,里原创 2013-04-09 14:54:13 · 1663 阅读 · 1 评论 -
windows 环境变量
Visual Studio 2008 和 Windows 环境变量对设置 相对路径很重要,这样便于代码的移植,即使换一台计算机,代码不用更改配置,直接就能用。可以在项目的“工具”“属性页”对话框中任何接受字符串的位置使用这些宏。这些宏不区分大小写。 关于如何自己定义环境变量详见我的另一文章:http://blog.youkuaiyun.com/jtop0/article/details/75转载 2013-04-09 16:25:22 · 3352 阅读 · 0 评论 -
转学C#
沉睡了太久了。开始搞搞C#、windowsphone的东西了!首先抄一段入门级的C#语法:(停留的风)“方法”是包含一系列语句的代码块。 程序通过“调用”方法并指定所需的任何方法参数来执行语句。 在 C# 中,每个执行指令 都是在方法的上下文中执行的。最近在写一个反射调用时,需要通过反射来调用方法。想写一个通用的方法调用的通用函数,这就需要将方法各种形式考虑在内。转载 2013-04-08 17:44:51 · 844 阅读 · 0 评论 -
VC在线程中操作界面
本文转自tingsking18。 做界面业务处理的人员,经常会遇到的一个问题,在数据处理过程中需要更新界面。但是这时候如果用户同时在操作界面的话,就会产生莫名其妙的异常了。这就是由于windows用户控件不是线程安全的造成,拥有同样问题的另一个问题是在微软提供的GDI+,在使用IMage对象时,也会经常出现莫名其妙的异常。该异常也是由于GDI+的内核对象不是线程安全所导致。我们转载 2013-04-08 15:58:20 · 2052 阅读 · 0 评论 -
冒泡排序篇
许久未用csdn,继续更新。从简单的算法-排序算法开始。反反复复写了很多冒泡排序,却从来都没有总结过。冒泡1:简单的冒泡法,将一组数中的每个数与该组数中的其他数进行对比、排序。// 冒泡方法1BobbleSort1(int *array[],int N){ for (int i = 0; i < N; i++) { for (int j = 1; j < N - i;原创 2012-12-17 11:27:57 · 646 阅读 · 0 评论 -
GOOGLE PROTOCOL BUFFERS
试用GOOGLE PROTOCOL BUFFERS( 比XML快20~100倍, 支持序列化数据 )本文转自:http://www.cppblog.com/liquidx/archive/2009/06/23/88366.html使用指南可以看这篇文章介绍:http://www.cppblog.com/liquidx/下载Protocol Buffers:http:转载 2012-12-28 15:38:18 · 579 阅读 · 0 评论 -
C++ 的静态成员和静态变量
原文地址:http://hi.baidu.com/quanhaili/blog/item/5a40ba86b37e1b22c65cc38f.html类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不再被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上s转载 2013-06-25 09:07:10 · 884 阅读 · 0 评论 -
透明对话框背景
应用中,经常我们需要一些特别的需求,来满足我们的项目需要。比如,最近Joseph就遇到的一个问题。需要制作的一个登陆界面,登陆界面后面需要一个大背景图片。登陆界面实际只用到了中间的一小块空间。 如果整个一起做的话,当登陆界面大小发生变化的时候。那么上面填入登陆信息的部分就需要维护做相应的移动操作。而且现在还不确定这个登陆界面是放在哪个页面中,既项目的哪个页面上。是放在view上,原创 2013-08-08 14:21:32 · 1534 阅读 · 0 评论 -
为list控件增加排序功能,并添加header排序图标
内容摘要列表排序功能在很多报表功能的软件中应用很多,本文只介绍如何快速的实现简单的列表排序功能。后续又添加了如何在列表头添加排序图标。列表排序实现列表排序功能的方法很多,网上搜索了一下,每个人的理解不同,实现方法也各不相同。大部分人的实现是基于CListCtrl控件提供的SortItems方法,本文中也将介绍该方法实现。首先,想谈一个C++程序员的弊端,C++程序员非常喜欢将功能封原创 2013-11-29 09:54:51 · 2229 阅读 · 0 评论 -
轻松制作ToolBar和Ribbon控件的图标
ToolBar和Ribbon控件都有个共同的特性,就是支持图标集,即将一堆小图标按照固定间距组合成一张图片,对合成图片上某个图标的使用,只需要根据所在位置索引。当然也可以选择添加一堆小图标,分别对每个界面控件进行设置。但毕竟用图片集的方式只需要一张图片,而且更方便的是,无需编码,只需要在界面上选择所需图片的索引就制作好了我们的界面图标,无疑是种提高工作效率的大大提升。闲话少说,立马向大家推荐我原创 2013-11-29 09:38:40 · 3590 阅读 · 2 评论 -
字符串格式化操作 目前见过最全的
(转)CString转int _ttoi() _tcstoul() Format ASSERT() Format的用法CString 型转化成 int 型 把 CString 类型的数据转化成整数类型最简单的方法就是使用标准的字符串到整数转换例程。 虽然通常你怀疑使用_atoi()函数是一个好的选择,它也很少会是一个正确的选择。如果你准备使用 Unicode 字转载 2013-10-23 11:58:43 · 2520 阅读 · 0 评论 -
系统自带的文件拷贝、移动、删除和重命名操作
前言 经常随手花上个半到一个小时,自己手写一个拷贝系统文件的代码,里面用上个几重递归,然后判断下文件属性,看是文件夹还是文件。然后自己根据文件的大小来控制进度条的显示进度。是否真的需要付出这么多了? 最近,研究了一下windows shell编程,发现其实很多系统有的功能,系统早就做好,并且完完全全的提供给我们了,只是我们比较喜欢一步步的自己来维护每一个流程。最原创 2013-09-27 14:03:06 · 2205 阅读 · 2 评论 -
图片格式转换自己轻松搞定
之前上传过一个资源,关于任意格式转换为Bmp格式的。今天发现很多反馈都是代码看不明白。先在专门详细给大家讲解一下。 BMP, ICON, GIF, JPEG, Exif, PNG, TIFF, WMF, and EMF这里面的任何两种格式都可以用介绍的方法任意转换。 该转换方案要得益于GDI+的Image类,提供的按照图片编码方式保存图片的功能。原创 2013-09-25 15:43:55 · 1247 阅读 · 0 评论 -
不得不引起注意的引用类型
今天检查软件bug时,发现两个使用引用时产生的问题。我在递归调用函数中,轮询数据,对于已经获取的数据在列表中删除,否则循环查找。createtree(CNode &node,vector &reverseVals){ vector::iterator it; it = reverseVals.begin(); while(it原创 2013-08-29 18:47:57 · 788 阅读 · 0 评论 -
双缓冲绘图
最近做了一个自绘的视图,觉得效果还不错。特来与大家分享。双缓冲技术现在已经充斥整个自绘界,熟练的人,随手拿来就可以用。这里我介绍一些需要注意的地方吧。应用场合:实时需要更新数据界面的场合。想象着自己在绘画,要更换画笔,要调颜色,然后在画板上进行绘画,绘画的时候,往往不是一笔、两笔一幅画就绘制完了,有时候先要绘制整个框架,然后再完成细节。如果我们不是在表达艺术效果,往往用户需要实时的查看原创 2013-09-13 18:10:01 · 1734 阅读 · 0 评论 -
提供两个字符串与时间格式COleDateTime的转换
也是无意中看到别人的转换代码,这里贴出来,分享出来,已备用。///BOOL ParseDateTimeISO8601(COleDateTime& rDT, LPCTSTR pcszDateTime){ SYSTEMTIME st; ZeroMemory(&st, sizeof(SYSTEMTIME)); int nResult = SCANF_S(pcszDateTime,原创 2013-09-22 10:29:35 · 2556 阅读 · 1 评论 -
CImageList使用指南
1.综述在MFC中CImageList类封装了图像列表控件的功能,图像列表是一个具有相同大小的图像(可以是不同类型)的集合,其主要用于应用程序中大规模图标的存储。该控件是不可见的,通常与其它如CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl一起使用,为他们提供图标资源。图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存转载 2013-09-17 15:33:14 · 845 阅读 · 0 评论 -
为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符
条款11: 为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符class String {public: String(const char *value); ~String();..转载 2013-09-29 14:26:48 · 1228 阅读 · 0 评论 -
MFC实现打开、保存文件对话框和浏览文件夹对话框
MFC实现打开、保存文件对话框和浏览文件夹对话框一、打开文件夹:1、CFileDialog实现CFileDialog hFileDlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_READONLY, TEXT("支持的图像文件 (*.jpg;*.gif;*.bmp;...)|*.jpg转载 2012-11-22 18:06:44 · 1278 阅读 · 0 评论 -
pragma指令简介
在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作.下面介绍了一下该指令的一些常用参数,希望对大家有所帮助!一. message 参数。message 它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #pragma message(“消息文本”) 当编译转载 2012-09-03 14:32:30 · 890 阅读 · 0 评论 -
DLL的概念、dll导出类(转贴)
转贴 dll导出类 1、 DLL的概念DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数、变量或类。这些可以直接拿来使用。静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码转载 2011-10-11 14:14:26 · 676 阅读 · 0 评论 -
dll技术
dll是windows编程非常常用的技术之一;通过孙鑫教程学习和windows核心编程学习;由浅入深简单总结一下:隐式链接:(1)最简单的dll 在vs环境下,新建dll工程,然后新建对应的“dll1.cpp”;编辑最简单一个函数//dll1.cpp in转载 2011-10-11 14:05:45 · 797 阅读 · 0 评论 -
DLL入门浅析(5)——使用DLL在进程间共享数据
DLL入门浅析(5)——使用DLL在进程间共享数据 在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的,因为所有的进程用的都收同一块地址空间;而在Win32环境中,情况却发生了变化,每个进程都有了它自己的地址空间,DLL函数中的代码所创建转载 2011-10-11 14:00:06 · 692 阅读 · 0 评论 -
DLL入门浅析(4)——从DLL中导出类
DLL入门浅析(4)——从DLL中导出类 前面介绍了怎么从DLL中导出函数和变量,实际上导出类的方法也是大同小异,废话就不多说了,下面给个简单例子示范一下,也就不多做解释了。DLL头文件:#ifndef _DLL_SAMPLE_H#define _DLL_转载 2011-10-11 13:59:42 · 568 阅读 · 0 评论 -
DLL入门浅析(3)——从DLL中导出变量
前面介绍了怎么从DLL中导出函数,下面我们来看一下如何从DLL中导出变量来。 声明为导出变量时,同样有两种方法: 第一种是用__declspec进行导出声明#ifndef _DLL_SAMPLE_H#define _DLL_SAMPLE_H//转载 2011-10-11 13:59:01 · 518 阅读 · 0 评论 -
DLL入门浅析(2)——如何使用DLL
上文我简单的介绍了如何建立一个简单DLL,下面再我简单的介绍一下如何使用一个DLL。当一个DLL被生成后,它创建了一个.dll文件和一个.lib文件;这两个都是你需要的。要使用DLL,就需要载入这个DLL。隐式链接这里有两个方法来载入一个DLL;一个方法是捷径另一个则相比转载 2011-10-11 13:58:28 · 617 阅读 · 0 评论 -
DLL入门浅析(1)——如何建立DLL
初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮助。 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数转载 2011-10-11 13:57:49 · 659 阅读 · 0 评论 -
文字的纵向显示的问题
中国人自古就有自右至左、从上到下书写汉字的习惯。而当我们在自己所编写的应用程序中使用输出函数输出的总是自左至右的横排文字。有没有可能在我们的应用程序中实现竖写汉字的效果呢?笔者偶然发现了一种利用VC实现竖写汉字效果的方法,现在就把它介绍给大家。 W转载 2011-10-11 13:56:33 · 1175 阅读 · 0 评论 -
MFC中的Dll教程(转来研究)
一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。 D转载 2011-10-13 11:09:24 · 1264 阅读 · 0 评论 -
Windows消息机制概述
Windows消息机制概述消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸转载 2011-10-11 13:43:37 · 622 阅读 · 0 评论 -
recv函数接收数据问题(诡异)--调试正确,全速出错
今天,测试代码时,发现使用recv函数接收数据时,当全速运行时,出现接收数据不全问题,当调试运行的时候,一切正常。调整接收数据缓冲大小,发现太小时,重复接收过程会出现数据交叉问题。 一切都显的那么诡异,问题肯定是出在recv函数,没错!通过查找接收数据正常部分大小,大概在1256左右,莫非说底层的缓冲区大小在这个范围左右。而且每次当调试到recv函数后面设置断点时,完全没有错误原创 2012-02-09 19:15:11 · 10219 阅读 · 9 评论 -
自绘色彩标识,并可以采用布局
应用背景经常性的会需要对一个界面上的某些色彩线或者是图标进行标注说明,这时候便需要本文档模块部分了。文档说明本文档部分只是自己随便写的,没有经过严格测试。供大家参考。模块使用说明 CRect rect; GetClientRect(&rect); CColorLayout layout; layout.Layout原创 2012-02-22 10:11:58 · 812 阅读 · 0 评论 -
宏定义中的#、##含义
今天被一个朋友问到"#define DEVICESTATE_MUX_NAME(devId) &_MuxTbl_##devId"这么一句宏定义是什么意思?一时间我也忘记了,但是映像中曾今见过类似的代码。于是google一下找到了答案。#:它是一个指示符,指示其及后面的变量名替代一个字符串;##:它是一个连接符,表示它和他后面的变量名合并在一起。如:#def原创 2012-08-16 14:38:17 · 2519 阅读 · 0 评论 -
分治法之快速排序
昨天写完归并排序后,我又想到了快速排序算法,冥思想了很久最终发现确实是忘的一干二净了。现在来回顾一下:既然也是采用分治的方法,那必定会将问题分解为子问题,归并算法是每次取中点进行重排合并。对比快排则是随机找到一个基准值,然后将基准值的左右两边以基准值分开来放置,这样解决到最小子问题情况,就会有1个数据,必定已经排好序了。void _swap(int *x, int *y){ int t原创 2012-08-14 11:11:22 · 1263 阅读 · 0 评论 -
strtok函数
微软提供的关于字符串处理的api真多,今天又发现一个,挺好玩的。char string[] = "A string\tof ,,tokens\nand some more tokens";char seps[] = " ,\t\n";char *tokens;cout tokens = strtok( string, seps);while(tokens != NULL)原创 2012-08-08 09:41:51 · 854 阅读 · 0 评论