MFC函数——CWnd::OnEraseBkgnd

CWnd::OnEraseBkgnd

afx_msg BOOL OnEraseBkgnd( CDC* pDC );

返回值:

如果它擦除了背景,则返回非零值;否则返回0。

参数:

pDC 指定了设备环境对象。

说明:

当CWnd对象的背景需要被擦除时(例如,当窗口大小被改变时),框架就调用这个函数。它被调用以便为绘图准备无效区域。

缺省的实现使用窗口类结构中hbrBackground成员指定的窗口类背景刷子擦除窗口背景。

如果hbrBackground成员为NULL,你重载的OnEraseBkgnd必须擦除背景色。你的重载函数也可以为刷子调用UnrealizeObject函数,将目标刷子的原点与CWnd的坐标对齐,然后选择该刷子。

如果重载的OnEraseBkgnd在响应WM_ERASEBKGND时处理了这个消息并擦除了背景,则应当返回非零值,表明不需要进一步擦除。如果它返回0,则窗口依然被标记为需要擦除(通常,这意味着AINTSTRUCT结构的fErase成员将为TRUE)。

Windows假定背景是用MM_TEXT映射模式计算的。如果设备环境使用了其它映射模式,则擦除的区域可能不在客户区的可见部分之内。

注意:

框架调用这个成员函数以允许你的应用程序处理一个Windows消息。

传递给你的成员函数的参数反映了接收到消息时框架接收到的参数。

如果你调用了这个函数的基类实现,则该实现将使用最初传递给消息的参数(而不是你提供给这个函数的参数)。

时间: 2024-11-04 19:49:51

MFC函数——CWnd::OnEraseBkgnd的相关文章

MFC函数—— CWnd::PreCreateWindow

 CWnd::PreCreateWindow virtual BOOL PreCreateWindow( CREATESTRUCT& cs ); 返回值: 如果要继续窗口的创建过程,则返回非零值:返回0则表明创建过程失败. 参数: cs一个CREATESTRUCT结构 说明: 框架在与CWnd对象相连接的Windows窗口被创建之前调用这个成员函数.永远不要直接调用这个函数. 这个函数的缺省实现检验窗口类名是否为NULL,如是,则用适当的缺省值来代替.重载这个函数以在窗口被创建之前修改CREAT

MFC函数——CWnd::OnCreate

CWnd::OnCreate afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct ); 返回值: OnCreate必须返回0以继续CWnd对象的创建过程.如果应用程序返回-1,窗口将被销毁. 参数: lpCreateStruct指向一个CREATESTRUCT结构,其中包含了与要创建的CWnd对象有关的信息. 说明: 当应用程序通过调用成员函数Create或CreateEx请求创建Windows的窗口时,框架调用这个成员函数.CWnd对象在窗口

破解 Rith's CrackMe #1(对比IDA查看动态分析中的MFC函数名)

系统 : Windows xp 程序 : Rith's CrackMe #1 程序下载地址 :http://pan.baidu.com/s/1gecW9Qr 要求 : 注册机编写 使用工具 : IDA Pro & OD 可在“PEDIY CrackMe 2007”中查找关于此程序的破文,标题为“WAKU的第二个破文----Rith's CrackMe #1(非常简单)”. 使用IDA载入程序,在字串表中找出正确注册的提示“Well done cracker!”,并双击交叉参考来到关键代码处: 0

MFC函数之BitBlt

MFC函数之BitBlt // Cgame123View 绘制 void Cgame123View::OnDraw(CDC* pDC) { Cgame123Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 CRect Rect; GetClientRect(&Rect); //屏幕宽度 width = Rect.right - Rect.left; //屏幕高度 he

MFC函数—— CFrameWnd::OnCreateClient

CFrameWnd::OnCreateClient virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs,CCreateContext*pContext); 返回值:如果成功,则返回非零值,否则为0. 参数: lpcs             指向Windows CREATESTRUCT结构对象的指针. pContext     指向CCreateContext结构的指针. 说明: 执行OnCreate时由框架调用.不用调用此成员函数. 缺省实现是从pC

【转】对话框的OnPaint()和OnEraseBkgnd()消息的理解

对话框的OnPaint()和OnEraseBkgnd()消息的理解 一个对话框重写OnPaint()和OnEraseBkgnd(),执行发现OnEraseBkgnd()比OnPaint()执行的次数多很多,但是执行OnPaint()前一定会执行OnEraseBkgnd().项目中用GDI双缓冲,绘制对话框背景图片的时候,放在OnEraseBkgnd()会出现闪烁,放在OnPaint()里面就不会闪烁. 这种问题关系到这两个消息函数的的理解:特定找了一些资料,以作备查. 个人理解: OnErase

VC/MFC 编程技巧大总结

1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3 Java学习书推荐:<java编程思想> 4 在VC下执行DOS命令 a. system("md c:\\12"); b. WinExec("Cmd.exe /C md c:\\12", SW_HIDE); c. ShellExecute ShellExecute(NULL,

继承CWnd自绘按钮

头文件: //头文件 #pragma once // CLhsButton #define MYWM_BTN_CLICK WM_USER+3001 //关闭按钮单击响应 //tab按钮的状态 enum ButtonState { BTN_STATE_NOR = 0, BTN_STATE_DOWN = 1, }; class CLhsButton : public CWnd { DECLARE_DYNAMIC(CLhsButton) public: CLhsButton(); virtual ~C

MFC程序执行顺序

原文链接:http://www.cnblogs.com/lidabo/archive/2012/10/23/2735622.html 1.创建Application object对象theApp 程序一开始生产一个(且只有一个)Application object对象theApp,也即一个CWinApp对象,这个全局对象一产生,便执行其构造函数,因为并没有定义CMyWinApp构造函数,所以即执行CWinApp类的构造函数.该函数定义于APPCORE.CPP第75行,你可以自己搜出来啃一啃,因此