MFC学习之第二天
来源:互联网 发布:c语言选择题 编辑:程序博客网 时间:2024/05/17 02:55
问题1:
为什么我的对话框类CTestDlig继承自类CDialogEy,而CDialogEy类继承自CDialog,在CDialogEy类中重写了消息响应函数,比如OnPaint、OnNcMouseMove、OnNcLButtonDown、OnNcLButtonUp,而在对话框上发送的消息不能响应。。
解决办法1:
在类CTestDialog中添加消息响应函数既可以了。比如::
void CTestDlg::OnNcMouseMove(UINT nHitTest, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialogEy::OnNcMouseMove(nHitTest, point);
}
解决办法2:
原来是BEGIN_MESSAGE_MAP(CTestDlg, CDialogEy)这个宏中的两个参数在作怪。。第一个参数类别本身,第二个参数是父类别。。。
自绘窗口::
窗口分为客户区和非客户区,非客户区包括标题栏(图片、按钮(最大化,最小化,关闭))、左边框、下边框、右边框,剩下的即为客户区。
标题栏上按钮一般分为四种状态:
1.正常
2.鼠标经过
3.按下
4.失效
绘制非客户区的消息要用到以WM_NC开头的消息,比如WM_NCPAINT、WM_NCLBUTTONDOWN、WM_NCLBUTTONUP等等。
我们绘图都是在CDC下作图的:有CDC,CPaintDC(也只能用在WM_PAINT消息响应函数中)、CClientDC(用于客户区的绘图)、CWindowDC(可以在非客户区中绘制)。。
CWindowDC dc(this)
CWindowDC dc(GetParent())
CWindowDC dc(GetDesktopWindow())
(该窗口参看郭延明的博客内容。。)
通过CImage函数中的BitBlt方法来绘制最小化、最大化、关闭按钮。。。用于来显示不同的状态,比如,鼠标经过、离开、按下、抬起,这些消息进行响应。。
BOOL BitBlt( HDC hDestDC, intxDest, int yDest, intnDestWidth, int nDestHeight, intxSrc, int ySrc, DWORDdwROP = SRCCOPY ) const throw( );
返回值:函数成功,返回非零值,否则为0。
参数:
hDestDC 指向CDC对象的指针,标识待拷贝位图的设备上下文。
x Dest指定目标矩形左上角的逻辑x坐标。
y Dest指定目标矩形左上角的逻辑y坐标。
nDestWidth 指定目标矩形和源位图的宽度(逻辑单位)。
nDestHeight 指定目标矩形和源位图的高度(逻辑单位)。
xSrc 指定源位图左上角的逻辑X坐标。
ySrc 指定源位图左上角的逻辑Y坐标。
dwROP 指定要执行的光栅操作。光栅操作代码定义GDC如何合并输出操作中的颜色,包括当前画刷、可能的源位图和目标位图。
- MFC学习之第二天
- MFC 第二章学习笔记
- C#学习之第二天
- struts2学习之第二天
- MFC第二天
- mfc第二天
- C++第二天--MFC
- 学习MFC第二天——1些基础(2)
- 学习MFC第二天——1些基础(3)
- 学习MFC第二天——第一个Windows程序
- MFC应用程序设计(第二版)学习笔记
- MFC应用程序设计(第二版)学习笔记
- 十天学习PHP之第二天
- php学习之路第二天
- 编程语言之python学习第二天
- Unity3D之第二天学习篇
- Java学习之路(第二天)
- JNI学习之C语言第二天
- Oracle 一些工具语句
- CSU OJ 1112机器人的指令 (湖南省12年省赛题)
- MFC 向Edit control控件发消息显示内容 (SendMessage与WM_SETTEXT)
- Java nio 之 使用选择器
- java工具类
- MFC学习之第二天
- mongoVUE
- SQL语句去掉重复记录,获取重复记录
- 条码扫描二维码扫描——ZXing android 源码简化
- 爱加密核心技术做好App安全监测
- 自学修炼
- poj3278--Catch That Cow
- sublime text2增加浏览器预览(转载)
- 总结GPIO模拟SPI