简单描述:
我自己写了一个简单的绘图程序,OnDraw里面显示一张位图怎么才能达到这样的效果:另外的无关窗口(比如word窗口等)覆盖了我写的程序的窗口而我写的程序不产生重绘,也就是我的程序被覆盖的时候我不想去重绘我的程序界面,觉得没重绘的必要。谢谢。
我自己写了一个简单的绘图程序,OnDraw里面显示一张位图怎么才能达到这样的效果:另外的无关窗口(比如word窗口等)覆盖了我写的程序的窗口而我写的程序不产生重绘,也就是我的程序被覆盖的时候我不想去重绘我的程序界面,觉得没重绘的必要。谢谢。
解决方案 »
- 如何实现驾照考试中的自动生成题库??用的是vc,谢谢各位前辈
- 如何在一个类里面调用别的类的函数的指针??????????
- CDaoDatabase 类可以打开odbc的数据库吗?
- 编译程序时,系统提示.cpp文件路径不对,应怎样修改.
- V请指导: C用ADO做一个DLL的问题(附代码) ----急!!!
- SOS:CSocket类处理
- 如何屏蔽用ADO连接数据库中空表示的报错?
- 有关动态结构的定义!
- 实现没办法了,还是得上网来问,各位帮帮忙吧!我想知道,我怎样才能得到ListCtrl控件当前的行的下标值?
- 如何用DEPHI与VC的DLL库接口?
- 用MFC做了一个基于TCP/IP的简单服务器/客户端聊天程序,编译没什么问题,但运行就出错了,谁知道出现这种情况一般是什么原因?
- 点击编辑框弹出对话框
头文件里:
BOOL m_HaveRefresh;
CPP文件初始化函数里:
m_HaveRefresh=FALSE;
if(!m_HaveRefresh)
{
m_HaveRefresh=TRUE;
绘图
}
这样就不会重绘了,但这样可能会有问题,你试试就知道会有什么问题
或者GetUpdateRect判断一下和图片的Rect是否有交集
谢谢提供思路。我不是说不处理WM_PAINT消息了,别的触发WM_PAINT的消息还是处理,只是想窗口被覆盖的时候不去触发WM_PAINT消息。
在WM_PAINT里绘图前拦截掉不行么?
不明白问什么要这样搞?
你好,谢谢解答。
透明窗口覆盖另一个窗口的情况下,不管怎么覆盖,被覆盖的窗口是不会有无效区域的,也不会有WM_PAINT消息的产生,被覆盖窗口的图形一直被保持,就是现在是一般的普通窗口,能不能有一种方法可以达到这样的效果。
HWND topWnd = ::GetTopWindow(desWnd);
if(topWnd == this->m_hWnd)
{
//说明自己在顶层
}
else
{
//被覆盖 设置不重绘
}
thanks,
请问怎么 设置不重绘 当用其他窗口覆盖我的程序窗口再移开,可以保证我的程序窗口的图形是一直保持的而不是重绘来的?
使用缓冲区机制。当你需要更新客户区的时候,绘制到缓冲区。
然后翻转到客户区。