日期时间拾取控件和月历控件
摘要:在Visual C++6.0 中增加了日期时间拾取控件(Date Time Picker简称DTP控件)和月历控件,对应的类为CDateTimeCtrl,CMonthCalCtrl.这两个控件允许用户选择日期、时间和月份并可对其进行操作。 两者区别: CDateTimeCtrl 拥有一个子月历控件,可通过CMonthCalCtrl* GetMonthCalCtrl() const;获取. 再DTP控件中,用户可调整现实的日期。缺省时,用户可单击控件的右边的下拉按钮,即可弹出月历控件以供用户选择日期,通过风格的改变还可在DTP控件内显示时间。 在月历控件中,用户可按击控件左右两边的箭头按钮,可前
阅读全文
posted @
2011-03-31 14:04
maxweii
阅读(6510)
推荐(0)
在Dialog中嵌入View的方法
摘要:在MFC的SDI和MDI文档结构中能很方便的嵌入多视图,而有时候则要在对 话框中嵌入多视图,下面是方法。 插入三个对话框,ID分别为IDD_VIEW1_FORM,IDD_VIEW2_FORM,IDD_VIEW3_FORM 把三个对话框的属性Style设为Child,Border设为None,映射 CView1,CView2,CView3分别对应三个对话框,CView1,CView2,CView3都派生自CFormView。在对话框中加入三个成员变量:1 CView1 *m_pView1; 2 CView2 *m_pView2; 3 CView3 *m_pView3;映射对话框WM_INITDI
阅读全文
posted @
2011-03-24 11:11
maxweii
阅读(6253)
推荐(0)
CToolTipCtrl使用详细解说
摘要:很多的界面设计都需要有Tip提示,下面描述一下Tip的简单使用方法: 1. 首先要New一个CToolTipCtrl的对象m_pContentTip 2. 调用CToolTipCtrl的create函数,指定其父窗口。可以为某个控件,也可以为this。一般设为this。 m_pContentTip->Create( this, TTS_ALWAYSTIP );3. AddTool。此函数是设置与某个控件关联的Tip文本。此处可以为多个控件添加不同的提示信息。 m_pButtonTip->AddTool( GetDlgItem( 控件ID ), 文本 ); //#add 一定要用Ad
阅读全文
posted @
2011-03-23 15:20
maxweii
阅读(1771)
推荐(0)
控制台窗口界面的编程控制
摘要:文本界面的控制台应用程序开发是深入学习C++、掌握交互系统的实现方法的最简单的一种手段。然而,Visual C++的C++专用库却没有TC所支持的文本(字符)屏幕控制函数,为此本系列文章从一般控制步骤、控制台窗口操作、文本(字符)控制、滚动和移动、光标、键盘和鼠标等几个方面讨论控制台窗口界面的编程控制方法。 在众多C++开发工具中,由于Microsoft本身的独特优势,选用Visual C++已越来越被众多学习者所接受。显然,现今如果还再把TC作为开发环境的话,不仅没有必要,而且也不利于向Windows应用程序开发的过渡。然而,Visual C++的C++专用库却没有TC所支持的文本屏幕(控制
阅读全文
posted @
2011-03-22 15:14
maxweii
阅读(819)
推荐(0)
浅谈HOOK
摘要:摘要: 本文针对HOOK技术在VC编程中的应用进行讨论,并着重对应用比较广泛的全局HOOK做了阐述。 一、引言 Windows操作系统是建立在事件驱动机制之上的,系统各部分之间的沟通也都是通过消息的相互传递而实现的。但在通常情况下,应用程序只能处理来自进程内部的消息或是从其他进程发过来的消息,如果需要对在进程外传递的消息进行拦截处理就必须采取一种被称为HOOK(钩子)的技术。钩子是Windows操作系统中非常重要的一种系统接口,用它可以轻松截获并处理在其他应用程序之间传递的消息,并由此可以完成一些普通应用程序难以实现的特殊功能。基于钩子在消息拦截处理中的强大功能,本文即以VC++ 6.0为编程
阅读全文
posted @
2011-03-22 13:25
maxweii
阅读(3565)
推荐(0)
GDI编程重要经验谈
摘要:本文由冯学礼上传,本站所提供的文章、照片、插画、设计作品,如需使用,请与原作者联系,版权归原作者所有。本站所转载文章的描述和观点并不意味着本站已经证实或赞同,如有侵权,请与本站联系,我们将尽快处理.一、 基础 GDI的绘图函数基本上都是有状态的,所有的函数都要求一个HDC类型的句柄。这个HDC的获得有几个途径BeginPaint,GetWindowDC, GetDC.他们的参数都只需要一个HWND就差不多了。记得调用了BeginPaint后要调用EndPaint进行清理,调用GetWindowDC和GetDC后要调ReleaseDC进行清理。在MFC代码中常常遇到的CDC CPaintDC C
阅读全文
posted @
2011-03-19 22:20
maxweii
阅读(664)
推荐(0)
VC++编程实现修改EXE文件图标
摘要:刚才发现论坛上面有网友问:如何通过编程实现修改EXE文件的图标,类似于 熊猫烧香 的效果!自己也对这个比较感兴趣网上找了找,找到了两种方法,可以满足大家都要求了,这里面收集转载过来,大家可以实践下,看看好不好用,起码有代码可以参考:方法一:通过API编程实现:这个问题以前在CSDN上解答过,但是当时只是提了提几个要用到的函数,自己并没有去动手写实现。前几天和某人讨论这个问题,他认为只有通过PE内部的资源偏移才好改,熊猫烧香就是这么搞的,而我坚持API也可以的观点。后来我想了想觉得这个问题值得记住,并自己亲手把它写出来并试验成功。贴出代码来给大家分享: EnableDebugPrivilge(S
阅读全文
posted @
2011-03-15 14:33
maxweii
阅读(7398)
推荐(1)
如何使用VC中的Custom Control?
摘要:如果一个Custom Control控件没有和一个自定义的窗口类进行关联,这将导致你的对话框创建失败,无法现实出来。要使用Custom Control,我们必须先写一个自定义的窗口类,例如CPieChartCtrl,派生自CWnd,然后,在程序开始对这个窗口类进行注册,BOOL CPieChartCtrl::RegisterWindowClass(){WNDCLASS wndcls;HINSTANCE hInst = AfxGetInstanceHandle();if (!(::GetClassInfo(hInst, BITMAPVIEWER_CLASSNAME, &wndcl
阅读全文
posted @
2011-03-15 12:56
maxweii
阅读(801)
推荐(0)
MFC下让控件具有XP风格
摘要:如果你想让VS6, VS2003,的MFC程序拥有XP风格(#add VS2005自动为xp风格)那么就学习下面的方法吧注:此方法必须是用VC6编译,vs2005转换编译vc6.0的会报错, 自动是xp风格(那么2005如何使用vc6风格呢?)微软同学永远是个把简单问题复杂化的孩子,这不,当年为了在 Windows XP 中同时支持两套控件风格(新的 XP 风格和旧的 95/98 风格),“发明”了 .manifest 这么个玩意,使以前的老程序也能自动使用上新的控件风格。然而在 VS 里,微软并不是总是默认帮我们自动生成这个破玩意儿。最早的办法就是手写一个 .manifest XML 文件,
阅读全文
posted @
2011-03-14 17:28
maxweii
阅读(848)
推荐(0)
pragma预处理指令详解
摘要:在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数。 (1)message 参数。 Message 参数是我最喜欢的一个参数,它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #Pragma message.
阅读全文
posted @
2011-02-28 16:55
maxweii
阅读(309)
推荐(0)
IPicture使用总结
摘要:1、IPicture接口对象的创建 方法1:直接通过文件创建LPCSTR szFileUrl;IPicture *pIPicture;OleLoadPicturePath(CComBSTR(szFileUrl), (LPUNKNOWN)NULL, 0, 0, IID_IPicture, (LPVOID*)&pIPicture)) 方法2:通过IStream来创建// 加载电子地图LPCSTR szFileUrl;IStream *pStream = NULL;IPicture *pIPicture = NULL;;CFileStatus fstatus;CFile fi
阅读全文
posted @
2011-02-12 14:06
maxweii
阅读(3959)
推荐(0)
使用CFindReplaceDialog
摘要:效果图:查找和替换 对话框也是非模态对话框,所以创建过程和MFC下创建非模态对话框的过程有点类似.先Create出一个窗口,设置好相关参数然后在显示出来使用就OK.Create原型:virtual BOOL Create(BOOL bFindDialogOnly, // TRUE for Find, FALSE for FindReplaceLPCTSTR lpszFindWhat, //默认被查找的字符串LPCTSTR lpszReplaceWith = NULL, //默认被查找替换的字符串DWORD dwFlags = FR_DOWN, //设置对话框里面的一些属性啦,下面说明了相关标志
阅读全文
posted @
2011-02-10 11:14
maxweii
阅读(1564)
推荐(0)
CFileDialog的应用
摘要:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );参数意义如下: bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。 lp
阅读全文
posted @
2011-01-11 20:34
maxweii
阅读(331)
推荐(0)
VC中TabCtrl用法实例
摘要:在Delphi中TabCtrl的使用是比较方面的,但在VC中并不是怎么的好用;VC中的CtabCtrl类只提供了一些基本的控制与消息,而TabCtrl上的页面呈现还需我们用对话框来处理。下面我们就以例子的形式来讲述VC中CtabCtrl的相关用法,希望对你有一定的帮助。在VC中使用CtabCtrl主要经历如下步骤:1、建立一个基于对话框的应用程序 2、画CTabCtrl控件,类向导中关联变量名为m_rTabCtrl,新建三个对话框属性设为Child,None,用ClassWizard生成新的类,基类为CDialog,分别为CTestpage0,CTestpage1,CTestpage2,ID号
阅读全文
posted @
2010-12-27 14:31
maxweii
阅读(3905)
推荐(0)
DLL基础理论
摘要:DLL的优点简单的说,dll有以下几个优点:1) 节省内存。同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中。如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,像dll中的全局变量这种东西是会被每个进程复制一份的)。2) 便于不需编译的软件系统升级,若一个软件系统使用了dll,则该dll被改变(函数名不变)时,系统升级只需要更换此dll即可,不需要重新编译整个系统。事实上,很多软件都是以这种方式升级的。例如我们经常玩的星际、魔兽等游戏也是这样进行版本升级的。3) Dll库可以供多种
阅读全文
posted @
2010-12-26 17:50
maxweii
阅读(327)
推荐(0)
如何实现最小化后出现右下角图标
摘要:(目前只能用在基于对话框的程序,SDI测试失败,待解决,在SDI中响应OnSize消息则可)1、最小化的原理:首先要将窗口隐藏,然后 在右下角绘制图标。2、恢复的原理:将窗口显示,再将托盘中的图片删除。(二)程序实现1、自定义消息WM_SHOWTASK: #define WM_SHOWTASK (WM_USER +1)2、在MFC的(的dlg类中)OnSysCommand(UINT nID, LPARAM lParam)函数体中增加一个命令响应 if(nID==SC_MINIMIZE) ToTray(); //最小化到托盘的函数3、在消息映射中添加 ON_MESSAGE(WM_SHOWTA
阅读全文
posted @
2010-12-25 23:50
maxweii
阅读(3145)
推荐(0)
轻松实现类VC界面(窗口停靠)
摘要:下图是一个类似VC的界面,左边、底下有两个可浮动、可变大小的控制窗口。许多朋友都希望在自己的程序中实现类似的界面,因为此种类型的界面用途很广、通用性很强,所以笔者总结了一下实现的步骤,辑此一文,并提供源代码供大家参考!一、实现原理图中两个窗口的实现类是从CControlBar派生出来的,我们并不需要从头到尾实现该类,因为Cristi Posea先生已经为我们实现了一个称为CSizingControlBar的类,而且做得相当完美!我们所要做的便是好好地利用该类,为了尽可能地简洁,笔者将CSizingControlBar类修改了一下并命名为CCoolBar,接下来我们将详细介绍如何利用该类实现我们
阅读全文
posted @
2010-12-24 18:09
maxweii
阅读(4617)
推荐(0)
VC编程实现IE风格的界面
摘要:使用过IE浏览器的朋友都知道IE界面上的扁平工具条、地址栏,扁平工具栏上的按钮正常状态下为扁平态,按钮上的图像为灰色,当鼠标放在按钮上时,按钮突起(这种状态称为手柄),并且其上的图像变得鲜艳醒目,一些按钮上还有汉字说明或标有小黑三角的下拉按钮,单击时显示下拉菜单,这些技术是怎么实现的呢,本文针对这些问题介绍了如何利用VC编程来实现它们。 IE风格的实现主要在主框架类的CMainFrame::OnCreate()实现,它的主要思想如下:首先定义一个CReBar对象,用以作工具条、地址栏的容器,然后分别声明图像列表对象img用于存储工具栏上按钮的热点图像和正常状态下显示的图像。为了显示扁平工具栏
阅读全文
posted @
2010-12-24 18:03
maxweii
阅读(474)
推荐(0)
动窗口的制作暨CSizingControlBar类的使用说明
摘要:本文在实现过程中,为了方便起见,参照VC 知识库《轻松实现类VC界面》。一、实现原理图中右侧浮动窗口的实现类是从CControlBar派生出来的,我们并不需要从头到尾实现该类,因为Cristi Posea先生已经为我们实现了一个称为CSizingControlBar的类,而且做得相当完美!我们所要做的便是好好地利用该类,为了尽可能地简洁,将CSizingControlBar类修改了一下并命名为CCoolBar,接下来我们将详细介绍如何利用该类实现我们所需的界面。二、实现步骤示例[1]前期准备已知一个单文档的MFC工程TESS,其它选项默认。将本文示例代码中的CSizingControlBar类
阅读全文
posted @
2010-12-24 16:43
maxweii
阅读(639)
推荐(0)
DECLARE_DYNAMIC IMPLEMENT_DYNAMIC
摘要:IMPLEMENT_DYNAMIC是实现“运行时类型识别”宏,与之相对应的是DECLARE_DYNAMIC(声明“运行时类型识别”宏)。也就是说你在.CPP文件中如果看见有IMPLEMENT_DYNAMIC,则在.H文件中必定有DECLARE_DYNAMIC的声明。 DECLARE_DYNAMIC/DEClARE_DYNAMIC是为了确定运行时对象属于哪一个类而定义的宏。 DEClARE_DYNCREATE/IMPLEMENT_DYNCREATE是为了“动态创建"类的实例而定义的宏。new可以用来创建对象,但不是动态的。比如说,你要在程序中实现根据拥护输入的类名来创建类的实例,下面的做法是通不
阅读全文
posted @
2010-12-24 11:54
maxweii
阅读(1465)
推荐(0)