- 博客(7)
- 收藏
- 关注
原创 在 Visual C++ 中开发自定义的绘图控件(二)
MFC中定制自定义控件的3种方法: 拥有者绘制控件(Owner Drawing Control and Menu) 自绘制控件(self drawing control and menu) 和子集化(subclass)1 使用MFC方法定制控件必备的几个基本概念:控制定制风格的控件的几个标准Windows消息: WM_MEASUREITEM WM_COMPAREITEM
2012-03-03 16:24:42 855
原创 在 Visual C++ 中开发自定义的绘图控件(一)
主宰绘图操作即使“只”进行绘制,您仍然有至少四种选项可用,它们都具有鲜明的优缺点:处理 WM_PAINT所有者绘制自定义绘制处理 WM_CTLCOLOR处理 WM_PAINT最极端的选择是执行一个 WM_PAINT 处理程序,并且自己完成所有的绘制。这意味着,您的代码将需要进行一些与呈现控件相关的琐事 — 创建适当的设备上下文(一个或多个),决定
2012-03-03 16:04:41 2492
原创 windows消息
1、NM_CUSTOMDRAW进入进入OnPaint之前,必须要知道用什么样的背景,什么样的字体等等一些重绘的参数特性,而这些有的是在OnCustomDraw中赋予的,例如鼠标点击以后会出现高亮的效果,那么背景的颜色就会变化,而这个是在OnCustomDram中赋予NM_CUSTOMDRAW2、 WM_MEASUREITEM当自绘制风格(owner draw)的控件(owner-dra
2012-03-03 14:27:46 332
转载 WM_DRAWITEM与DrawItem()的讨论
我在学习中经常遇到要重写DrawItem()的情况,但又有一个WM_DRAWITEM消息,它们是什么样的关系呢。如果我们要重写一个CButton取名为CMyButton,我们可以重写CMyButton的DrawItem()函数来实现我们的需求,但CMyButton::DrawItem()是在什么时候调用呢?它是在它的宿主类的OnDrawItem()中被调用,OnDrawItem(int
2012-02-29 23:49:13 277
转载 OnCreate PreCreateWindow PreSubclassWindow
PreCreateWindow和PreSubclassWindow是虚函数,而OnCreate是一个消息响应函数。对比对话框的2种创建方式下,这3个函数的是否调用的状态:OnCreatePreCreateWindowPreSubclassWindowCDialog::Create是否是CDialog::DoModal是
2012-02-29 23:10:07 791
原创 VC++窗口关闭全过程
窗口关闭全过程 一、对于非模态窗口,必须重载OnCancel函数,在函数中调用DestroyWindows()方法,且不能调用基类的函数。因为基类函数中调用的是 EndDialog()方法。而OnClose()也会调用OnCancel()方法。另外想通过OnOK关闭对话框,也必须同样处理,不能直接用默认方法。 1 、只有点击标题栏的叉号图标、在桌面任务栏右键-关闭、Alt+
2012-02-27 00:43:38 4618
原创 模态对话框 和 非模态对框
模态对话框——模态对话框正常 结束,即通常按下“确定” 或者 “取消”按钮。1、对 “确定” 按钮的默认处理是OnOk,此函数是虚函数,如果没有重载它,会调用CDialog::OnOk的实现,实现很简单,主要有两处调用,即:CDialog::UpdateData和CDialog::EndDialog,前者用于数据的交换和验证,后者,它首先检测当前对话框是否处于模态,以及是否还要继续处于模态,二
2012-02-26 21:53:36 454
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人