
MFC
汪小哥
有多少时光可以挥洒~人生短短几十年~
展开
-
PreTranslateMessage作用和使用方法
PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息控制流程,甚至可以作一转载 2015-09-13 21:15:27 · 946 阅读 · 0 评论 -
Subclassdlgitem
subclassdlgitem Call this member function to "dynamically subclass" a control created from a dialog template and attach it to thisCWnd object.该函数用来子类化一个控件.Subclass(子类化)是MFC中最常用的窗体技术之一。子类原创 2015-09-14 21:35:08 · 1025 阅读 · 0 评论 -
MFC六大关键技术
这一篇主要讲解一下MFC中的6个主要的关键技术,整个Application Framework其实从本质上来说都是建立在这6个关键技术上的。所以能够了解它们的原理对理解MFC整个框架和程序设计有非常大的好处。 1、MFC程序的初始化工作在MFC中所有的类都来源于一个基类:CObject。MFC程序初始化过程中,其实就是虚函数的调用的过程,分清调用执行的到底是哪一个具体的虚函转载 2015-09-15 22:30:58 · 663 阅读 · 0 评论 -
子类化
子类化允许你接管被子类化的窗口,使你对它有绝对的控制权。举个例子了来阐明一下:例如你需要一个只接受十六进制数字输入的文本编辑框,如果使用一个简单的 Edit控件,当用户输入十六进制以外的字符时,你既不知道也无计可施。也就是说,当用户进文本框中输入字符串 "zb+q*" 时,如果除了拒绝接受整个字符串以外几乎什么也不能做,至少这显得特别不专业。重要的是,你需要具有输入检测的能力,即每当用户输入一转载 2015-09-16 13:29:01 · 496 阅读 · 0 评论 -
CComboBox::SetItemData,以及自绘我们的CComBox
1.这个函数有什么用呢?我们如果自己绘制 控件的时候呢,我们可能会比如一个CComboBox中,一个文字和一个图像的索引号保存起来,在我们需要使用的时候使用,这个的功能有点类似于Android中我们SetTag的属性!我们建立一个结构体就可以把两样东西保存起来了,这样就可以收获一个简单的模式,非常的棒,获得自己想要的图片图片列表的索引!Sets the 32-bit value a原创 2015-09-16 09:25:45 · 2146 阅读 · 0 评论 -
CDC::SelectStockObject 与CDC::SelectObject
查一下MSDN吧,上面枚举出所有SelectStockObject能选入的对象,以下是原文BLACK_BRUSH Black brush. DKGRAY_BRUSH Dark gray brush. GRAY_BRUSH Gray brush. HOLLOW_BRUSH Hollow brush. LTGRAY_BRUSH Light gray brus转载 2015-09-16 09:02:38 · 1089 阅读 · 0 评论 -
CDC之CreateCompatibleDC与BitBlt
CreateCompatibleDC of the compatible device.When a memory device context is created, GDI automatically selects a 1-by-1 monochrome stock bitmap for it. GDI output functions can be used with a m翻译 2015-09-16 08:49:35 · 1033 阅读 · 0 评论 -
inflaterect和deflaterect
DeflateRect deflates CRect by moving its sides toward its center. void DeflateRect( int x, int y ) throw( );void DeflateRect( SIZE size ) throw( );void DeflateRec翻译 2015-09-16 08:32:15 · 750 阅读 · 0 评论 -
SubClassWindow详解
多Windows程序员都是跳过SDK直接进行RAD开发工具[或VC,我想VC应不属于RAD]的学习,有些人可能对子类化机制比较陌生。 我们先看看什么是Windows的子类化。Windows给我们或是说给它自己定义了许多丰富的通用控件,如:Edit、ComboBox 、ListBox……等,这些控件功能丰富,能为我们开发工作带来极大方面,试想:我们单单是自己实现一个EDIT控件是多么的艰难!转载 2015-09-16 13:18:26 · 559 阅读 · 0 评论 -
自绘控件之DrawItem(LPDRAWITEMSTRUCT )
1.自绘函数:virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );ParameterslpDrawItemStructA long pointer to a DRAWITEMSTRUCT structure. The structure contains infor原创 2015-09-16 09:13:24 · 5745 阅读 · 0 评论 -
Invalidate()和UpdateWindow()的区别
Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post就是将该消息放入消息队列。当执行到WM_PAINT消息时才会对敞口进行重绘;UpdateWindow只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)原创 2015-09-13 20:23:27 · 811 阅读 · 0 评论 -
WM_NOTIFY Message
WM_NOTIFY 是容器器行消息,我们发送消息的时候其实是大消息NOTIFY 中的一种小的消息而已NMHDR StructureContains information about a notification message.Syntaxtypedef struct tagNMHDR { HWND hwndFrom; UINT_PTR idFro原创 2015-09-13 16:26:46 · 948 阅读 · 0 评论 -
SendMessage 与Postmessage区别
SendMessage 与Postmessage有什么区别,MSDN 是提到The SendMessage member function calls the window procedure directly and does not return until that window procedure has processed the message. This is in cont原创 2015-09-13 16:02:56 · 765 阅读 · 0 评论 -
OnMouseMove中的nFlags的意义何在呢?检测当前我们说产生的动作是如何
The framework calls this member function when the mouse cursor moves. afx_msg void OnMouseMove( UINT nFlags, CPoint point );ParametersnFlags Indicates wh原创 2015-09-13 20:36:01 · 1938 阅读 · 0 评论