Welcome 微信登录

首页 / 软件开发 / C++

自绘按钮的实现

自绘按钮的实现

自绘按钮的实现2008-01-19如果你希望能够在自己的程序中表现出新意,那么你一定不会仅仅满足于MFC提供那些标准控件。这时,我们就必须自己另外多做些工作了。就改变控件外观这一点来说,主要是利用控件的自绘功能(Owner Draw)实现的。本篇将和各位一起定义一个XP风格的CXPButton按钮类,目的不在于介绍CXPButton类的使用技巧,而在于向各位阐述实现自绘按钮的方法。当然如果你觉得CXPButton有用的话,也可以把它的源文件保存下来,直接加...
在名字空间中声明类和成员函数

在名字空间中声明类和成员函数

在名字空间中声明类和成员函数2010-07-14赵湘宁虽然很多程序员都熟悉名字空间的概念,但他们常常都是被动地使用名字空间。也就是说他们使用的是第三方定义的成员(如标准库的类和函数),而不是在名字空间中声明自己的类和函数。本文拟讨论如何在名字空间中声明自己的类和函数,以及如何在程序中使用它们。名字空间是一个范畴,它包含类声明,函数声明,常量声明和模板声明等名字空间成员。例如:namespace proj_alpha{//下面是名字空间 proj_alpha...
按钮控件的使用

按钮控件的使用

按钮控件的使用2008-01-19最近有不少朋友发信到我的邮箱,其中有高手也有菜鸟,也许他们问的问题我还不能一一解答,但是他们的来信的确让我感受到极大的鼓舞。今天忙里偷闲,翻译了一片外国的文章,献给那些摸索中的菜鸟们。下面将通过一个最简单的程序来说明Windows的消息机制。程序主要是使用两个按钮控件,它要求用户输入两个数字,当你按下其中一个按钮的时候,会根据进行相应的计算并输出结果。例如如果你输入1和2,然后按下""Plus"" 按钮,就会输出结果。由于...
C++中的废料收集

C++中的废料收集

C++中的废料收集2010-07-14死猫Java的爱好者们经常批评C++中没有提供与Java类似的废料收集(Gabage Collector)机制(这很正常,正如C++的爱好者有时也攻击Java没有这个没有那个,或者这个不行那个不够好),导致C++中对动态存储的官吏称为程序员的噩梦,不是吗?你经常听到的是内存遗失(memory leak)和非法指针存取,这一定令你很头疼,而且你又不能抛弃指针带来的灵活性。在本文中,我并不想揭露Java提供的废料收集机制的...
自绘按钮补遗

自绘按钮补遗

自绘按钮补遗2008-01-19(包括:改进后的CXPButton类、练习程序、练习程序答案)在《自绘按钮的实现》一文中所示范的CXPButton按钮从形状上看可以说是一个不规则按钮。我们把MFC中提供的控件成为标准控件,而其中的按钮控件则可称为规则按钮,因为它是的形状是一个规则的矩形。但是随着流线型设计在界面设计中被广泛采用,越来越多的程序设计者都乐意在自己的作品中加入一些非规则形状的控件。以按钮为例,最简单的就到有圆形按钮,三角按钮等。下图是一组定义好...
让CButtonST 类支持鼠标掠过时发声

让CButtonST 类支持鼠标掠过时发声

让CButtonST 类支持鼠标掠过时发声2008-01-19介绍了一个功能强大的CButton派生类CButtonST,但在使用时我觉得这个类有一点小小的功能“缺陷”。我想大家都有这样的经验,有的软件当鼠标划过按钮时,会发出声音。我对CButtonnST进行了一点改造,使它有了此功能。好了,现在就Follow me,Step by step do it。首先,建立一个基于对话框的工程 test,然后把原BCMenu.cpp, BC...
C++多态技术

C++多态技术

C++多态技术2010-07-14荣耀摘要本文描述了C++中的各种多态性。重点阐述了面向对象的动态多态和基于模板的静态多态,并初步探讨了两种技术的结合使用。关键词多态 继承 虚函数 模板 宏 函数重载 泛型编程 泛型模式导言多态(polymorphism)一词最初来源于希腊语polumorphos,含义是具有多种形式或形态的情形。在程序设计领域,一个广泛认可的定义是“一种将不同的特殊行为和单个泛化记号相关联的能力”。和纯粹的面向对象...
怎样实现XP风格按钮

怎样实现XP风格按钮

怎样实现XP风格按钮2008-01-19示例代码运行效果图在vc6下面怎样实现具有xp风格的按钮?我这里介绍一种简单的方法。 我们需要用到两个类,一个是CButtonST,另一个是CWinXpButtonST.这两个类一个是按钮类,另一个是Xp风格按钮类,大家可以从我的例子原代码中得到相关的4个文件(BtnST.h、BtnST.cpp、WinXPButtonST.h、WinXPButtonST.cpp)。下面开始制作这个示例程序1、使用vc的向导制作一个工...
使用::std::vector<>作为管理动态数组的优先选择

使用::std::vector&lt;&gt;作为管理动态数组的优先选择

使用::std::vector<>作为管理动态数组的优先选择2010-07-14wangtianxing摘要: 本文介绍了C++标准库中的容器类vector,分析了它的优点,并且建议在应用程序中使用它作为动态数组的优先选择,而不是MFC的CArray<>等其他类模板。最后介绍了vector的接口和使用时的注意事项。在一些使用 MFC 的程序中,经常看到许多程序使用 CArray<>,由于 CArray<>的设...
COM应用软件开发技术

COM应用软件开发技术

COM应用软件开发技术2010-07-141.COM技术概述COM表示Component Object Model(组件对象模型),它是Microsoft大力推广的软件开发技术。采用COM规范开发的应用软件具有强大的功能,主要有如下几点:◆COM是二进制编程规范,可以编写被多种语言使用的代码。◆用于创建ActiveX控件。◆通过OLE Automation 控制其它的程序。◆与其它机器上的对象或程序进行对话,构成分布式应用程序。Microsoft推出Win...
如何enable/disable菜单项

如何enable/disable菜单项

如何enable/disable菜单项2008-01-19这个问题在以前的知识库中出现过多次,许多人问及在MFC应用程序中enable或disable菜单的问题,在主菜单中调用 CMenu::EnableMenuItem不起作用......如何disable菜单项? 根据以往的经验,要解决这种问题,似乎应该有一个象EnableMenuItem之类的API函数,它的功能就是enable或disable菜单项。Windows中确实有这样的函数-但不是在MFC的...
Office2000风格的停泊、智能型菜单

Office2000风格的停泊、智能型菜单

Office2000风格的停泊、智能型菜单2008-01-19Office2000风格的停泊、智能型菜单例子运行时图像:译者注:由于原文作者所提供例子代码需使用附带RC资源,经本人使用后觉得不够通用,故将部分源码修改并将文章翻译。文中现在所附例子为我最近所作一抓图程序的界面部分。不光Office 2000智能菜单噢!还包括多文档视图的TAB页显示,自绘制菜单等,详情请参看附带实例代码。...
一种漂亮的自绘菜单

一种漂亮的自绘菜单

一种漂亮的自绘菜单2008-01-19以前还是菜鸟时就觉得QQ的菜单做得很漂亮,想着自已的程序如果有那种菜单多好。现在积累了一定的知识,就自已设计了一个类似的菜单控件类。并把它发表出来供大家使用和参考,难免有不足的地方请高手不吝赐教!菜单效果如下:一、CMenuEx菜单类主要接口函数:1、void InitMenu(CMenu *pMenu,UINT uToolBar,CToolBar *pToolBar);说明:这是最主要的一个接口。如果要改变主窗口的菜...
C++指针使用方法解惑

C++指针使用方法解惑

C++指针使用方法解惑2010-07-14hangwire在下列函数声明中,为什么要同时使用*和&符号?以及什么场合使用这种声明方式?void func1( MYCLASS *&pBuildingElement );论坛中经常有人问到这样的问题。本文试图通过一些实际的指针使用经验来解释这个问题。仔细看一下这种声明方式,确实有点让人迷惑。在某种意义上,"*"和"&"是意思相对的两个东西,把它们放...
VC中多语言菜单的实现

VC中多语言菜单的实现

VC中多语言菜单的实现2008-01-19软件的国际化不可避免。一种软件可能被很多国家的人使用,如给您的软件加上多种语言的菜单,不但给使用者带来很多方便,也为您的软件的推广带来很多便利。比如给您开发的中文软件,加上一个英语或日语菜单,对母语为英语和日语的朋友将会带来很多便利。VC中实现多语菜单非常容易,下面以英汉对照菜单为例说明多语菜单实现的方法。一、建立工程项目文件选择语言为中文,其余采用默认,添加中英文切换菜单IDD_MENU_CHANGE二、用文本形...
利用钩子实现菜单阴影效果

利用钩子实现菜单阴影效果

利用钩子实现菜单阴影效果2008-01-19也许有很多人曾和我一样, 对Office XP里面的菜单的阴影效果羡慕不已,它不需要在Windows XP 中就可以在菜单后面显示阴影, 当然在Windows XP中, 已经完全支持菜单阴影了。虽然我们不一定很有必要自己来实现这个较难实现的效果。但是正如有很多人想实现那种IE风格的菜单栏一样,尽管它 们并不能为我们带来更多实用的功能, 却可以使我们的程序看起来与众不同。:)菜单也是一个窗口, 假如我们能得到它的窗...
<< 211 212 213 214 215 216 217 218 219 220 >>