vc知识集锦
文章平均质量分 88
heary29
这个作者很懒,什么都没留下…
展开
-
vc快捷键
F1: 帮助Ctrl+O :OpenCtrl+P :PrintCtrl+N :NewCtrl+Shift+F2 :清除所有书签F2 :上一个书签Shift+F2 :上一个书签Alt+F2 :编辑书签Ctrl+F2 :添加/删除一个书签F12 :Goto definitionShift+F12 :Goto reference转载 2014-12-17 11:49:29 · 319 阅读 · 0 评论 -
CObject类学习
CObject类 CObject是大多数MFC类的根类或基类。CObject类有很多有用的特性:对运行时类信息的支持,对动态创建的支持,对串行化的支持,对象诊断输出,等等。MFC从CObject派生出许多类,具备其中的一个或者多个特性。程序员也可以从CObject类派生出自己的类,利用CObject类的这些特性。本章将讨论MFC如何设计CObject类的这些特性。首先,考察CObjec转载 2014-12-17 11:48:26 · 719 阅读 · 0 评论 -
【vc】DECLARE_SERIAL / IMPLEMENT_SERIAL 宏的技术详解
本文来自CSDN博客,转载出处:http://blog.csdn.net/jianxiong8814/archive/2007/05/31/1632724.aspxDECLARE_DYNAMIC表明的是支持类型信息, 有了这个宏,我们就可以判断一个类究竟是什么类,比如class A;class B:public A;A a;B b;现在有一个指针 class *pA 它转载 2014-12-17 11:51:33 · 464 阅读 · 0 评论 -
SetROP2
Windows API SetROP2(int nDrawMode)主要用于设定当前前景色的混合模式。R2_NOT就是取反的意思,即前景色为背景色的反色,经常用R2_NOT来画橡皮线,因为两次取反可以还原背景色。函数原型:int SetROP2( HDC hdc, int fnDrawMode);返回值:函数调用成功后返回调用前的模式,调用失败则返回零。转载 2015-01-08 09:34:17 · 5617 阅读 · 0 评论 -
CArray<int,int>& tmpArray
CArray TmpArray;是模板数组。int 是存储类型,int&是访问类型。CArray是个模板类,其中成员变量、函数可用到模板形参表中的任一类型 templateclass CArray {public: FirType elem1; SecType elem2;};则声明CArray就相当于class CArray{public:原创 2015-01-08 09:14:31 · 1573 阅读 · 0 评论 -
一步一步写算法(之双向链表)
前面的博客我们介绍了单向链表。那么我们今天介绍的双向链表,顾名思义,就是数据本身具备了左边和右边的双向指针。双向链表相比较单向链表,主要有下面几个特点: (1)在数据结构中具有双向指针 (2)插入数据的时候需要考虑前后的方向的操作 (3)同样,删除数据的是有也需要考虑前后方向的操作 那么,一个非循环的双向链表操作应该是怎么样的呢?我们可以自己转载 2015-01-08 09:42:24 · 331 阅读 · 0 评论 -
CListCtrl
CListCtrl CListCtrl CObject└CCmdTarget└CWnd└CListCtrl CListCtrl类封装“列表视图控件”功能,显示每个包含图标(列表视图中)和标签的收集。除图标和标签外,每一项还能有显示在图标和标签的右边的列中的信息。此控件(以及CListCtrl类)只适用于运转载 2015-01-08 14:32:45 · 816 阅读 · 0 评论 -
BitBlt
该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。如果函数成功,那么返回值非零;如果函数失败,则返回值为零。 10本词条 无基本信息模块, 欢迎各位 编辑词条,额外获取10个积分。目录1函数原型2函数功能3函数参数4相关信息转载 2015-01-08 09:02:38 · 418 阅读 · 0 评论 -
trackpopupmenu
函数功能:该函数在指定位置显示快捷菜单,并跟踪菜单项的选择。快捷菜单可出现在屏幕上的任何位置。函数原型:BOOL TrackPopupMenu(HMENU hMenu, UINT uFlags, int x, int y, int nReserved, HWND hWnd, CONST RECT* prcRect)参数一览hMenu:被显示的快捷菜单的句转载 2015-01-07 17:37:11 · 925 阅读 · 0 评论 -
一步一步写算法(之链表逆转)
链表逆转是面试环境中经常遇到的一道题目,也是我们在实际开发中可能会遇到的开发需求。和线性逆转不一样,单向链表的节点需要一个一个进行处理。为了显示两者之间的区别,我们分别对线性内存和链表进行逆转: (1)普通连续内存数据的反转分析[cpp] view plaincopySTATUS normal_revert(int array[转载 2015-01-08 09:45:48 · 447 阅读 · 0 评论 -
一步一步写算法(之单向链表)
有的时候,处于内存中的数据并不是连续的。那么这时候,我们就需要在数据结构中添加一个属性,这个属性会记录下面一个数据的地址。有了这个地址之后,所有的数据就像一条链子一样串起来了,那么这个地址属性就起到了穿线连结的作用。 相比较普通的线性结构,链表结构的优势是什么呢?我们可以总结一下: (1)单个节点创建非常方便,普通的线性内存通常在创建的时候就需要设定数据的大小转载 2015-01-08 09:40:29 · 406 阅读 · 0 评论 -
assert()函数用法总结
转自:http://www.cnblogs.com/ggzss/archive/2011/08/18/2145017assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression转载 2014-12-19 09:47:55 · 393 阅读 · 0 评论 -
一步一步写算法(之循环单向链表)
前面的博客中,我们曾经有一篇专门讲到单向链表的内容。那么今天讨论的链表和上次讨论的链表有什么不同呢?重点就在这个"循环"上面。有了循环,意味着我们可以从任何一个链表节点开始工作,可以把root定在任何链表节点上面,可以从任意一个链表节点访问数据,这就是循环的优势。 那么在实现过程中,循环单向链表有什么不同? 1)打印链表数据[cpp] view转载 2015-01-08 09:43:12 · 372 阅读 · 0 评论 -
DrawText的使用
DrawText函数简单介绍 这个函数的作用很简单,就是在指定的区域内输出格式化的文本。 函数原型:int DrawText( HDC hDC, LPCTSTR lpString, int nCount, LPRECT lpRect, UNIT uFormat); hDC是设备上下文句柄。l转载 2015-01-08 14:05:56 · 2770 阅读 · 0 评论 -
csliderctrl详解
CSliderCtrl 类表示滑块控件 (Slider Control),也称为跟踪条。滑块控件 (Slider Control) 是一个包含一个滑块和可选刻度线的窗口。当用户使用鼠标或者箭头键移动滑块时,滑块控件 (Slider Control) 发送通知消息以指示此更改。当希望用户选择一个不连续的值或者某个范围中一组连续值时,滑块控件 (Slider Control) 很有用。例如转载 2015-01-08 14:20:05 · 2645 阅读 · 0 评论 -
ClientToScreen 和ScreenToClient 用法
ClientToScreen( )是把窗口坐标转换为屏幕坐标pWnd->GetWindowRect(&rc);是获取整个窗体的大小pWnd->GetClientRect(&rc1);是获取窗体中客户区的大小ScreenToClient( )是把屏幕坐标转换为窗口坐标屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的VC下,有些函数使用转载 2015-01-08 14:38:14 · 1050 阅读 · 0 评论 -
CImageList
图像列表控制(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式。可以利用WINDOWS32位应用程序接口函数API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像等操作。图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95及以后版本才能实现。(一)图像控制的对象结构1、图像转载 2014-12-19 11:22:04 · 472 阅读 · 0 评论 -
OnCreate()和PreCreateWindow()函数的区别
在窗口的CWnd::Create()/CreateEx()调用返回前,要调用PreCreateWindow(),对Create()/CreateEx()中的风格参数进行预处理设置.之后调用OnCreate进行实际的窗口创建,返回后,Create()/CreateEx()也返回,窗口创建结束.参看:MFC的窗口创建函数源代码: PreCreateWindow()顾名思义就是转载 2014-12-19 15:29:34 · 867 阅读 · 0 评论 -
浅谈FromHandle
例如,你的程序中必然对你的主窗口Attach(这是由Framework完成的),这样的话,假如你又得到了你程序的主窗口句柄hwndMain,你如果再调用FromHandle(hwndMain),它返回的将是你的App中的m_pMainWnd,原因就是FromHandle会维持一个内部的列表,纪录每个hwnd与CWnd的关联情况,如果一旦一个hwnd早已与某个CWnd对象相关连,它会返回该CWnd对转载 2014-12-19 13:55:04 · 6435 阅读 · 0 评论 -
C++ map的基本操作和使用
Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数; mapmapstring; mapmapint; mapmapstring; mapmapchar; mapmapchar; mapmapint转载 2014-12-20 11:01:14 · 276 阅读 · 0 评论 -
C++与Java比较
C++与Java比较“作为一名C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且Java的语法无疑是非常熟悉的。事实上,Java本来就是从C++衍生出来的。” 然而,C++和Java之间仍存在一些显著的差异。可以这样说,这些差异代表着技术的极大进步。一旦我们弄清楚了这些差异,就会理解为什么说Java是一种优秀的程序设计语言。本附录将引导大家认识用于区分Java和转载 2014-12-19 15:37:31 · 334 阅读 · 0 评论 -
窗口刷新问题(WM_PAINT)
在Windows API编程中,WM_PAINT是Windows窗口的一个重要消息,应用程序就是通过响应这个消息来完成窗口的绘制。 The WM_PAINT message is generated by the system and should not be sent by an application.The system sends this message when there a转载 2014-12-20 10:53:49 · 1290 阅读 · 0 评论 -
CreateFile函数详解
CreateFileThe CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object: files pipes mailslots communications resources disk de转载 2014-12-20 10:49:34 · 536 阅读 · 0 评论 -
C++中引用(&)的用法和应用实例
引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅 是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖 引玉的作用。 一、引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。转载 2014-12-23 12:00:45 · 335 阅读 · 0 评论 -
MFC(窗口,菜单栏,状态等的风格,孙鑫C++第九讲笔记整理)
1.修改外观和图标可以在MainFrm中进行,而修改背景和光标只能在View中进行。为什么?因为view的显示挡在了MainFrame的前面。a.在MainFrame中 PreCreateWindow()中,在窗口创建之前,用重新注册窗口类的方法,比较麻烦。在PreCreateWindow()中修改 也可以用简单的方法,用全局函数//cs.lpszClass=Afx转载 2014-12-23 10:43:57 · 1016 阅读 · 0 评论 -
谈谈GetSafeHwnd()和GetSafeHandle()的主要区别
GetSafeHwnd()和GetSafeHandle()的主要区别:1.使用者不同:(1)窗体使用:GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的对HWND指向的窗体进行所需的操作了;(2)GDI对象使用:GetSafeHandle(),用于获取GDI对象的句柄。注意:在使用指针时强烈建议这么做:// pSomeW转载 2014-12-23 15:52:07 · 356 阅读 · 0 评论 -
GetSystemMetrics详解
1概述编辑GetSystemMetrics ()用于得到被定义的系统数据或者系统配置信息.2语法编辑int WINAPI GetSystemMetrics( __in intnIndex);下面是GetSystemMetrics函数参数nIndex的定义:SM_ARRANGE 标志用于说明系统如何安排最小化窗口..详细请参看下方备注.:根据显示器显示的不同,系统数据转载 2014-12-23 17:17:48 · 1292 阅读 · 0 评论 -
OffsetRect函数
OffsetRect函数将指定的矩形移动到指定的位置BOOL OffsetRect( LPRECT lprc, // 矩形 int dx, // 横向偏移 int dy // 纵向偏移);参数:Lprc:[输入输出]指向一个RECT结构,其中包含了被移动矩形的逻辑坐标Dx:[输入]指定的矩形左右移动的量。当向左移动的时候,这个参数必须转载 2015-01-13 13:26:06 · 2805 阅读 · 0 评论 -
MFC的运行机制 以及 MFC中的DC、CDC、HDC、句柄、设备上下文(整理) .
在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API.你说你喜欢C++而MFC换一种说法就是一个用C++写的一个函数库 然后你来调用 只不过这个类不是你写的MFC提供数百个类,最重要的、也是编写任何VC++应用程序都必不可少的两个类CWinApp和CFrameWnd,这两个类是编写复杂庞大转载 2015-01-30 14:45:43 · 665 阅读 · 0 评论 -
LRESULT理解 .
在windows应用程序中经常能够看到LRESULT CALLBACK WndProc(HWND,UIINT, WPARAM,LPARAM)这句话,我们来详细讲讲。(1)首先是对于LRESULT的理解LRESULT是一个数据类型, MSDN: 32-bit value returned from a window procedure or callback function 指转载 2015-01-30 11:14:21 · 10247 阅读 · 0 评论 -
GetSafeHwnd概述
当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,通过下面的例子来看其理由:CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器HWND hwnd = pwnd->m_hwnd; //得到它的HWND这样的代码当开始得到的pwnd为空的时候就会出现一个转载 2014-12-23 15:50:32 · 474 阅读 · 0 评论 -
CALLBACK
1CallBack函数编辑定义回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。实现的机制[1]定义一个回调函数;[2]提供函数实现的一方在初始化的时候,将回调函数转载 2014-12-23 14:43:42 · 363 阅读 · 0 评论 -
CCommandLineInfo的作用
在我们用向导创建MFC应用程序时,在App::InitInstance()中总会出现下面这样的代码到底是什么意思呢,我查了很多资料终于使其漏出庐山真面目。CCommandLineInfo cmdInfo;//定义命令行ParseCommandLine(cmdInfo);//解析命令行// 调度在命令行中指定的命令。如果// 用 /RegServer、/Register、/Unreg转载 2014-12-23 16:54:42 · 403 阅读 · 0 评论 -
CWnd::UpdateDialogControls 与DialogBar的创建
调用该成员函数的更新对话框按钮状态和在使用 ON_UPDATE_COMMAND_UI 回调结构的对话框或窗口的其他控件。 复制void UpdateDialogControls( CCmdTarget* pTarget, BOOL bDisableIfNoHndler );参数原创 2015-01-31 15:38:26 · 1072 阅读 · 0 评论 -
wsprintf swprintf sprintf
wsprintf要求的第一个参数是LPTSTR,假设环境是UNICODE的,那么LPTSTR相当于就是wchar_t* 就是宽字符指针,在非Unicode环境下就是char*有关格式化字符串的函数还有如下,详细用法各位可以查看MSDN,和上面所介绍的都差不多sprintf 单字节版本的C/C++库函数swprintf 宽字节版本的C/C++库函数 而我们上面的wsprintf和转载 2015-01-31 13:31:59 · 872 阅读 · 0 评论 -
关于SetRect
CRect::SetRect This method sets the dimensions of a CRect object to the specified coordinates. void SetRect( int x1, int y1, int x2, int y2 ); void SetRect( Point topLeft, POINT原创 2015-01-13 13:21:14 · 2622 阅读 · 0 评论 -
AFXWIN.H 源码
// This is a part of the Microsoft Foundation Classes C++ library.// Copyright (C) 1992-1998 Microsoft Corporation// All rights reserved.//// This source code is only intended转载 2015-01-14 14:29:44 · 4255 阅读 · 0 评论 -
c/c++中内存区域划分大总结
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放转载 2015-01-14 11:53:07 · 471 阅读 · 0 评论 -
AfxGetApp()和GetSafeHwnd()
AfxGetApp()这个函数在VC当中很常见,主要是用来获取当前App的CWinApp类指针。一般情况下将其强制类型转换成你自己写的App类就可以调用里面的方法了。我通常把一些重要的工程一开始就需要初始化的并且在其它地方类中都要用到的变量或函数定义在C***App类中,然通过此函数获得这些变量或函数。如果你定义为取全局变量,只需在需要的地方用extern声名即可。如果把变量在你的转载 2014-12-25 11:31:34 · 433 阅读 · 0 评论 -
线程中 CloseHandle()函数的使用
很多程序在创建线程都这样写的:............ThreadHandle = CreateThread(NULL,0,.....);CloseHandel(ThreadHandle );。。。。。这不是刚好创建又关闭了吗?线程怎么运行呢?================================================Closing a th转载 2014-12-25 16:17:41 · 435 阅读 · 0 评论