- 博客(25)
- 收藏
- 关注
原创 C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显
2007-09-24 09:56:00
566
原创 VC 常见问题百问
VC 常见问题百问 (1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行
2007-09-21 21:49:00
716
原创 自定义鼠标加载
有三个方法: 1、在CWnd::OnSetCursor()中调用API函数SetCursor()改变光标。 BOOL CMyView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { if
2007-09-21 21:47:00
685
原创 关于WM_PAINT,窗口重绘invalidate、onidle
一、WM_PAINT 系统会在多个不同的时机发送WM_PAINT消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由 系统管理的,应用只是被动地接收该消息,在消息处理函数中进行绘制操作;大多数的时候应用也需要能够主动引发窗口中的绘制操作,比如当窗口显示的数据改变的时候,这一般是通过InvalidateRect和 Inv
2007-09-18 16:55:00
2175
原创 CWinApp 应用程序类
CWinApp 应用程序类共63个成员(由Cobject-CCmdTarget-CWinThread派生)#include CWinApp类是你派生Windows应用程序对象的基类。应用程序对象提供初始化你的应用程序(及其每个实例)的成员函数,并运行该应用程序。每个使用MFC类的应用程序只能包含一个CWinApp派生类对象。当Windows调用由MFC库提供的WinMain函数时,其它C++全局对
2007-09-17 17:00:00
4115
原创 [转] MFC中自定义消息使用
MFC中自定义消息使用 消息映射、循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息,所以我们必须在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。通常的做法是采取以下步骤: 第一步:定义消息。
2007-09-17 10:05:00
763
1
原创 [转]MFC学习总结(五)
http://www.cnblogs.com/cy163/archive/2007/06/27/532871.html51. 如何获得其他程序的图标,并显示在View中 [问题提出] 有的时候,如:类资源管理器会遇到获得程序图标并显示的操作,如何实现呢? [解决方法] SDK函数SHGetFileInfo来获得有关文件的很多信息:如大小图标,属性,类型等. [程序实现] 建立名为My的SDI
2007-09-10 15:03:00
1789
原创 [转]MFC学习总结(三)
31. 如何在编辑控件中以追加的方式添入字符? [问题提出] SetDlgItemText可以向Edit控件中输入字符,发送更新的消息也可是Edit控件显示与其关联的变量的值,但若是向已有的Edit字符后追加字符,该如何做? [程序实现] 建立名为My的对话框工程,添加一个Edit和一个Button控件.Edit的ID=IDC_EDIT1,Button的ID=IDC_BUTTON1.建立和ID
2007-09-10 15:00:00
901
原创 [转]MFC学习总结(四)
41.如何禁止对话框关闭按钮和浮动工具条上的系统菜单1、禁止对话框中的关闭按钮有二种方法。第一种方法,用ModiftMenu()涵数来实现:CMenu* pMenu = this->GetSystemMenu(FALSE);pMenu->ModifyMenu(SC_CLOSE,MF_BYCOMMAND | MF_GRAYED );第二种方法,用EnableMenuItem()涵数来实现:CMenu
2007-09-10 15:00:00
843
原创 [转]MFC学习总结(二)
21. 介绍函数过程中一种任意键退出同时能处理消息的实现方法1. 设置定时器,用于使::GetMessage(...)函数总能快速取到消息.2. 在函数处理中加入:函数每执行完一步后执行下面的代码.if (::GetMessage(&msg, 0, 0, 0)){ if (msg.message >= WM_KEYFIRST && msg.message ::TranslateMessage
2007-09-10 14:59:00
785
原创 [转]MFC学习总结(一)
http://www.cnblogs.com/cy163/archive/2007/06/27/532871.html1."属性页的添加:创建对话框的类,该类要从CpropertyPage继承;然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch;最后,在.cpp文件里的OnInitDialog()
2007-09-10 14:58:00
1027
原创 进程与线程
1. 进程与线程有那些区别和联系? 每个进程至少需要一个线程。 进程由两部分构成:进程内核对象,地址空间。线程也由两部分组成:线程内核对象,操作系统用它来对线程实施管理。线程堆栈,用于维护线程在执行代码时需要的所有函数参数和局部变量。 进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而
2007-09-10 12:43:00
526
原创 [转]关于windows 的窗口消息和WM_PAINT
http://blog.youkuaiyun.com/keldon/archive/2007/08/10/1736338.aspx 关于WM_PAINT消息响应小结 WM_PAINT消息小结WM_PAINT是Windows窗口系统中一条重要的消息,应用程序通过处理该消息实现在窗口上的绘制工作。1. 系统何时发送WM_PAINT消息?系统会在多个不同的时机发送WM_PAINT消息:当第一次创建一个窗
2007-09-09 13:09:00
689
原创 Callback函数详解
http://shiwawa.blog.hexun.com/9925417_d.html 一,回调函数我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢?使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(
2007-09-07 18:05:00
3204
原创 VC++API函数小全
VC++API小查窗口处理 2.1 窗口简介 2.2.1 创建普通窗口(CreateWindow、CreateWindowEx) 2.2.2 关闭窗口(CloseWindow) 2.2.3 销毁窗口(DestroyWindow) 2.3 窗口之间的关系 2.3.1 父子关系(SetParent、GetParent、IsChild) 2.3.2 遍历窗口(EnumWindow、EnumWindo
2007-09-07 17:18:00
1409
原创 [msdn]Top-Down vs. Bottom-Up DIBs
http://msdn2.microsoft.com/en-us/library/ms787796.aspxTop-Down vs. Bottom-Up DIBs Microsoft DirectShow 9.0
2007-09-06 17:37:00
924
原创 [转]BMP图像格式分析
BMP图像格式分析 BMP图像文件格式是微软公司为其Windows环境设置的标准图像格式,而且 Windows系统软件中还同时内含了一系列支持BMP图像处理的API函数,随着Windows 在世界范围内的不断普及,BMP文件格式无疑也已经成为PC机上的流行图像文件格
2007-09-06 17:32:00
1361
原创 [转]VC设计分割视图通用创建框架
【简 介】目前基于分割视图的应用开发十分流行,分割视图技术是在同一个框架窗口下同时显示多个视图的一项技术。运用分割视图,可以在较短时间内给用户更多的信息量,从而使得用户界面更加的友好,增强了软件的可操作性。本文提出一个分割视图的通用创建框架。 1.分割视图创建框
2007-09-06 12:40:00
515
原创 [转]一步一步学习STL标准模板库
http://www.sqlsky.com/vc/070802/20828/ list 的使用 在使用list必须包括头文件#include <list>, 1)、如何定义一个list对象#include <list> int main (void){ list<char > cList; //声明了list<char>模板类
2007-09-05 22:54:00
561
原创 [转]C++重读三:泛型函数简表
http://blog.youkuaiyun.com/alvachien/archive/2005/08/05/446324.aspx0. accumlate:iterator对标志的序列中的元素之和,加到一个由init指定的初始值上。重载的版本不再做加法,而是传进来的二元操作符被应用到元素上。adjacent_different:创建一个新序列,该序列的每个新值都代表了当前元素与上一个元素的
2007-09-05 22:32:00
499
原创 [转]C++重读一:C++基本语言
http://dev.youkuaiyun.com/article/70/70460.shtm0. 编译C++程序时,编译器自动定义了一个预处理名字__cplusplus,而编译标准C时,自动定义名字__STDC__。另外几个比较有用的预定义名字是__LINE__(文件的当前编译行数),__FILE__(当前被编译的文件名字),__DATE__(编译日期)和__TIME__(编译时间)。
2007-09-05 22:30:00
506
原创 [转] C++重读二:C++基本语言(下)
http://dev.youkuaiyun.com/article/70/70672.shtm0. 转换掉表达式的常量性以及volatile对象的volatile性;如const_castptr;编译器隐式执行的任何类型转换都可以由static_cast显式完成。reinterpret_cast通常对操作数的位模式执行一个比较低层次的重新解释。dynamic_cast支持在运行时刻识别由指针
2007-09-05 22:26:00
477
原创 [转]C++重读二:C++基本语法(下)
http://blog.youkuaiyun.com/alvachien/archive/2005/08/05/446759.aspx0. 类型转换中的提示实际上就是内置数据类型的提升,如char转换为int,bool转换为int,float转换为double等。 1. 类型转换中的标准转换有五种类型:(1)整值类型转换(不包括提升);(2)浮点转换;(3)浮点-整值转换;(4)指针转换和(5)boo
2007-09-05 22:20:00
655
原创 [转]VC++的链接错误
http://pengxzh.bokee.com/viewdiary.11923681.htmlLNK2001 学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误
2007-09-05 16:14:00
917
1
原创 [转]VC的若干实用小技巧
转自http://1orange.bokee.com/Visual C++6.0(5.0)开发工具功能非常强大,但是对于初学者来说,却有很多细节的问题需要注意。作者搜集整理了以下一些实用小技巧,希望对初学者有所帮助。 1:使用vc开发项目时,常会遇到这种情况: 即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示重新编译连接一次,非常讨厌。这是因为
2007-09-05 15:27:00
487
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人