现在遇到这样一个问题:
在单文档的程序中,我们知道CView是贴在CFrameWnd的前面的,即除了标题、工具栏、菜单栏以外的部分都被CView覆盖了。
现在我们在CView的WM_LBUTTONDOWN中响应事件,在该响应函数中获取CFrameWnd的窗口指针,并依据此指针得到CFrameWnd的设备CDC指针(注意,不是CView的CDC指针),
利用此CDC进行绘图,我们会发现,所画的内容居然在最前面,而不是在CView的下面(因为CFrameWnd在CView的下面),这是为何??????
另外它可以实现在非客户区进行绘图,这说明,CView已经捕获了窗口以外属于CFrameWnd区域的鼠标消息了,这是为何??????
有人能给俺解释一下吗,并给我介绍一下有关CDC和窗口之间的联系,如题
在单文档的程序中,我们知道CView是贴在CFrameWnd的前面的,即除了标题、工具栏、菜单栏以外的部分都被CView覆盖了。
现在我们在CView的WM_LBUTTONDOWN中响应事件,在该响应函数中获取CFrameWnd的窗口指针,并依据此指针得到CFrameWnd的设备CDC指针(注意,不是CView的CDC指针),
利用此CDC进行绘图,我们会发现,所画的内容居然在最前面,而不是在CView的下面(因为CFrameWnd在CView的下面),这是为何??????
另外它可以实现在非客户区进行绘图,这说明,CView已经捕获了窗口以外属于CFrameWnd区域的鼠标消息了,这是为何??????
有人能给俺解释一下吗,并给我介绍一下有关CDC和窗口之间的联系,如题
所以我不明白,当获得了CFrameWnd的设备后在上面画图,“应该”被CView覆盖的地方为何没有被覆盖,这涉及到GDI绘图的一些机制,只是我不清楚,我想让大家告诉我有关的内容。
绘图时所获得的设备(不一定是当前窗口的设备)与当前绘图的窗口是一种什么关系?
你绘制的时候既然CView没有刷新,当然能够显示出来