在对话框中显示一幅位图,在位图上每个一段时间在指定位置描点(OnPaint)。但是我对对话框设置了隐藏/显示功能,每当对话框隐藏之后再显示,已经瞄过的点会消失,应该怎么办才能使隐藏之后的对话框上的点不消失啊???谢谢!
解决方案 »
- 钩子消息处理函数//标题栏对话框正常;换成单文档就不显示效果!!!
- 很怪的问题,CpropertyPage里面为何不能使用其所长ALT+A热键?(控件caption加&符号)
- vc6做了个简单的ActiveX控件,用vb6可以看见自定义属性,用vb8却看不见
- 《货币战争》-- 散分
- 将文件拖到Richedit中,如何知道这个文件的全路径?
- 关于NETMEETING的问题
- 关于portMap的一些问题...
- 公告: 300分求用DirectShow做的播放器,能对 asf文件进行拖动...
- CORBA和COM有哪些区别?只在OS上吗?
- 关于js调用bho中的函数问题
- colevariant出问题了
- 一般读png格式用哪些开源库?
void CBMPDlg::OnPaint()
{
CPaintDC dc(this);
CBitmap bitmap;
CDC dcCompatible;
bitmap.LoadBitmap(IDB_BMP);
CDC *cdc=m_BMP.GetDC();
dcCompatible.CreateCompatibleDC(cdc);
dcCompatible.SelectObject(&bitmap);
dcCompatible.SetPixel(i,j,RGB(255,0,0));
cdc->BitBlt(0,0,360,180,&dcCompatible,0,0,SRCCOPY);
这样弄的话,每次只显示一个点。晕,应该怎么改呀?
{
CPaintDC dc(this);
CBitmap bitmap;
CDC dcCompatible;//你这是一个临时变量呀
bitmap.LoadBitmap(IDB_BMP);
CDC *cdc=m_BMP.GetDC();
dcCompatible.CreateCompatibleDC(cdc);
dcCompatible.SelectObject(&bitmap);
dcCompatible.SetPixel(i,j,RGB(255,0,0));
cdc->BitBlt(0,0,360,180,&dcCompatible,0,0,SRCCOPY);你这只是从临时DC中把图贴过去
什么叫临时
void CBMPDlg::OnPaint()
{
CPaintDC dc(this);
// 此处加你的画图代码
// 你的画图操作,只对m_pMemDC操作,
dc.BitBlt(0,0,360,180,m_pMemDC,0,0,SRCCOPY);然后从m_pMemDC中贴到dc中,此处的dc才是你的设备dc
CDC *cdc=m_BMP.GetDC();
应该就是变量的问题。但是我不知道怎么改成全局的。晕
首先要 要 对话框 本身 画完。
然后 叫 控件 客户区 有效 (invalidate)
取控件的 DC 和 rect 画