相关推荐
-
MFC消息反射
什么是消息反射? 在windows里面,子控件经常向父控件发送消息,例如很多子控件要绘制自己的背景,就可能向父窗口发送消息WM_CTLCOLOR。对于从子控件发来的消息,父控件有可能在处理之前,把消息返还给子控件处理,这样消息看起来就像是从父窗口反射回来一样,故此得名:消息反射。
-
MFC消息机制
MFC消息机制涉及许多知识,比如消息分类,消息映射等。 知识先了解一下,马上动手实践才是硬道理。 我建了个SDI项目,把常用的消息试验了一遍。 如果像我一样初学的,可以留下邮箱索取源码。 // MainFrm.h afx_msg void OnMenuMsg(); // 菜单命令消息 afx_msg void OnMenuItem(UINT uId); // 范围消息,不限菜单 ...
-
修改CEdit的字体和颜色
本文转载自:http://blog.sina.com.cn/s/blog_4ac0eb8101010szr.html 更改对话框中控件的外观可以在其所在对话框中,响应WM_CTLCOLOR事件(表示控件即将刷新),然后在OnCtlColor中判断出需要改变的控件,然后更改其颜色或画刷。 为了更一般、更方便的改变CEdit的字体和颜色,则可以继承MFC的CEdit类,重写自己的CMyEdit
-
MFC框架下自绘CEdit控件
以上就是对MFC框架下CEdit的控件的风格设置啦,与重绘OnPaint相比较来说,比较简单,理解起来也很是容易,只要掌握了反射机制,也就轻而易举了。今天的更新就到这里了~
-
C++自定义ClistCtrl控件响应数据项的点击事件&&消息反射的原理
ON_NOTIFY不反射消息.如果自己处理不了,就传给上级窗口,如果再处理不了,在往上传.实在处理不了,由框架默认处理. ON_NOTIFY_REFLECT 反射消息.把消息传给上级窗口处理,如果上级都处理不了,再反射回来,自己处理. 这就是MFC强大的消息反射机制.如果上级窗口处理,则子窗口不处理; 为了项目的需要,往往需要编写自定义控件。当然,很多时候都是在现
-
MFC 自绘入门
<wbr>使用MFC画点的方法很简单,只需要调用COLORREF CDC::SetPixel( int x, int y, COLORREF crColor )就可以在指定点画上指定颜色,同时返回原来的颜色。COLORREF CDC::GetPixel( int x, int y)可以得到指定点的颜色。在Windows中应该少使用MFC的画点函数,因为这样做的执行效率比较低。&l...
-
【MFC】Button控件美化(自绘)
在MFC中Button控件不能通过OnCtlColor()函数对外观做太多的改变。欲设置按钮的背景为紫色,文字为红色,但是通过OnCtlColor()函数并不能实现预期的结果为了能够修改Button控件字体、字体大小、背景色、背景图片,需要对Button控件进行自绘。
-
刷背景色ON_WM_CTLCOLOR(),OnCtlColor
首先定义消息宏 BEGIN_MESSAGE_MAP(CMyDialog, CBCGPDialog) ON_WM_CTLCOLOR() END_MESSAGE_MAP() 实现刷新函数 // 静态函数方便别的类调用 static void CMyDialog SetDrawColor(CDC* pDC, CWnd* pWnd, HBRUSH& hBrush); void CMyDialog SetDrawColor(CDC* pDC, CWnd* pWnd, HBRUSH& hBru.
-
转贴:VC++中对于处理消息的学习总结
Message Mapstruct AFX_MSGMAP //消息映射表{AFX_MSGMAP* pBaseMessageMap; //基类消息映射表的指针;AFX_MSGMAP_ENTRY* lpEntries; //消息入口表的指针;};struct AFX_MSGMAP_ENTRY //消息映射入口表{UINT nMessage; //消息;UINT nCode; //控件的通知
-
MFC教程(4)-- 消息映射的实现(2)
但是在当前例子中,当前对象的类CTview没有覆盖该函数,所以CWnd的WindowProc被调用。 这个函数把下一步的工作交给OnWndMsg函数来处理。如果OnWndMsg没有处理,则交给DefWindowProc来处理。 OnWndMsg和DefWindowProc都是CWnd类的虚拟函数。 OnWndMsg的原型如下: BOOL CWnd::OnWndMsg( U
-
Windows 消息反射
<br />Windows控件消息反射<br />TN062: Message Reflection for Windows Controls<br />本技术文档解释了消息反射,MFC 4.0的新特性,并指导读者创建一个简单的、可重用的、使用了消息反射的控件。<br />本文并不讨论适用于ActiveX控件(通常称为OLE控件)的消息反射。请参看Visual C++ Programmer's Guide的ActiveX Controls: Subclassing a Windows Control一文。<
-
消息反射
关于ON_WM_CTLCOLOR_REFLECTafx_msg HBRUSH CtlColor ( CDC* pDC, UINT nCtlColor );Message Reflection for Windows ControlsNote The following technical note has not been updated since it was first
-
Windows 控件的消息反射
<br />本技术注意讲述了消息反射,一个 MFC4.0 中的新特色。同时讲述了使用消息反射建立一个简单可重用控件的指导。 <br /> 本文并没有就 ActiveX 控件(以前称为 OLE 控件)如何进行消息反射的。有关这方面的资料请参见《ActiveX <br /> 什么是消息反射? <br /> 窗口不断地频繁地发送通知消息给其父窗口。 例如:许多控件会发送控件颜色通知消息(WM_CTLCOLOR 或它的一个变体)给其父窗口以允许其父窗口来提供一个绘制控件背景的刷子
-
MFC的消息反射机制
MFC的消息反射机制
-
深度剖析消息反射机制
<br /><br />摘要:在前面我们分析了控件通知消息WM_NOTIFY,和WM_NOTIFY紧密联系的还有一个MFC新特性:消息反射。本文中,我想就这个问题作一个全面的论述,如果有错误,还望各路大虾批评指正。<br /> 什么是消息反射?<br /> 在windows里面,子控件经常向父控件发送消息,例如很多子控件要绘制自己的背景,就可能向父窗口发送消息WM_CTLCOLOR。对于从子控件发来的消息,父控件有可能在处理之前,把消息返还给子控件处理,这样消息看起来就想是从父窗口反射回来一
-
为CEdit设置背景图片
以CSkinEdit( public CEdit )为例:设置Edit的属性:Multiline, 无Border1.映射消息: ON_WM_CTLCOLOR_REFLECT()HBRUSH CSkinEdit::CtlColor(CDC* pDC, UINT nCtlColor) { // TODO: Change any attributes of the DC here C
-
透明的CEdit控件
透明的CEdit控件动手做了一个透明的CEdit控件,发现远没有网上所说的那么复杂,很奇怪的说!思路很简单,就是让控件处理以下反射消息CtlColo就可以了。代码如下:TransparentEdit.h#pragma once// CTransparentEditclass CTransparentEdit : public CRichEditCtrl{ DECLARE_DYNAMIC(CTran
2 楼 pgy20032000 2011-01-07 09:44
1 楼 coolspeed 2011-01-07 01:06