我遇到的问题是这样的:
我要用CDC类在对话框中不断地绘制一些图形,并在过程中保持对话框中的内容在移动时不变。
当前对话框中的图形是不确定的,因此我想有没有什么拷屏函数能将当前对话框的内容整个获取,并用OnPaint维护显示?
第一次用MFC,一些术语不了解,问题描述得通俗了些。
希望各位高手能给出大致的写法,本人第一次接触MFC。
void CDisplayDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
m_DispManager.Draw();
}
else
{
是不是在这里进行一些操作???
CDialog::OnPaint();
}
}
谢谢~~
请问“小趴皮”,双缓冲有什么需要注意的吗?我按照
http://hi.baidu.com/krispan/blog/item/44c59ee9d339153ab90e2d70.html
写的。但是对话框始终保持底色不变。这是为什么?
我的意思是说无论我绘制什么都没有显示,对话框始终是空的。
如何在促发onpaint函数时重绘区域的背景不变
MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责重绘窗口。视图类有一些例外,在视图类的OnPaint函数中调用了OnDraw函数,实际的重绘工作由OnDraw来完成。参数bErase为TRUE时,重绘区域内的背景将被擦除,否则,背景将保持不变。二、与UpdateWindow( )的区别 UpdateWindow( )的作用是使窗口立...
MFC 中OnPaint()函数中的用法
OnPaint()在窗口进行重绘时会被调用,所以如果有些图或者控件是你动态生成的,而你又不希望在重绘时被擦除的话,你可以把绘图的过程写在OnPaint里。
VC++ MFC在对话框上画图问题
1、如何在新建的一个dialog中添加onpaint()函数?例如你新建了一个dialog,类名为test22(添加类是双击新建那个窗口),接着找到这个类的头文件test22.h,在其中的protected中添加一行afx_msg void OnPaint();这样就可以在test22.cpp中用onpaint()函数了,添加void test22::OnPaint(){}就可以了:...
mfc c++ 如何在button上 使图片大小按照按钮大小显示
OnPaint里面获得客户区的尺寸,然后将图片绘制在这个矩形范围上,灵活的使用DC即可,不过确实可能存在图片失真的问题
如何解决mfc子窗口移动时对主窗口的不断刷新
用“双缓冲 内存DC”应该可以解决这个问题。你不止是移动窗口吧,最小化之后最大化也应该会出现这个问题。在初始化的时候将内存DC创建好,线程只是对内存DC进行绘制,同时,在绘制速度调节的时候还应该控制内存DC对设备DC的刷新。百度上面双引号内容,介绍和代码比较丰富,就不复制了。
VC60MFC程序,在窗口最小化到任务栏再点开显示窗口的时候响应的是什么事...
窗口的刷新是onpaint中做的,当窗口发生遮挡,移动,大小改变时,会自动的进行刷新,按道理你点开窗口会自动刷新的。如果你想重绘,就在OnPaint中添加代码(CView的话就在OnDraw中添加代码)。如果你想明确在最大化时进行特殊绘制,就需要拦截WM_SYSCOMMAND里的SC_MAXIMIZE,具体就是重载winproc函数,在...
MFC 图形刷新及移动问题!为什么我用MFC画的图形,当窗口放大或者缩小后...
你好,人家说得并没有错,窗口放大或缩小客户区会被自动刷新,而刷新后onDraw或者onPaint函数自动被调用,如果把作图程序放在这些函数中,每次窗口放大或缩小后画图程序自动会被调用,因此图形在窗口放大或缩小后就不会消失;至于图形自动移动,个一段时间后,刷新窗口,并在新的位置画图即可。
MFC里面dialog上的按钮怎么写才能让mainframe主窗口中的绘图痕迹消失...
获取 view 指针. view 做清空.也可以发自定义消息 给 view 然后view收到这条消息 就做清空.DC OnPaint 这块不是很熟悉, 不过思路 就这些了.简单的 还是第1种.view类,里有个 方法, 这个方式是清空view上的图形,对话框类里,做view的指针获取, 然后就是 VIEW-> 清空....
关于MFC的onpaint函数问题!!
只负责“客户区前景”。实际上,原生窗口类(如CWnd、CFrameWnd)的OnPaint函数是空的,不会做任何处理,但如果调用了,就会产生GDI资源控制问题,因此不能调用。也可以从另一个方面理解:每个窗口需要绘制的前景内容都是不同的,没有相同的部分。相同的地方,在响应WM_PAINT之前,已经处理了。
mfc对话框移出屏幕后图像控件里显示的图片就消失了
如果你用其它程序窗口覆盖对话框,再显示对话框后,图片也消失,那么说明你没有使用OnPaint进行绘图。windows的窗口机制,要求一直显示的图,必须在WM_PAINT消息响应函数OnPaint中实现,这样才能在系统触发重绘消息后依然存在。