MFC showwindow 有关问题

MFC showwindow 问题
在对话框中显示一幅位图,在位图上每个一段时间在指定位置描点(OnPaint)。但是我对对话框设置了隐藏/显示功能,每当对话框隐藏之后再显示,已经瞄过的点会消失,应该怎么办才能使隐藏之后的对话框上的点不消失啊???谢谢!
------最佳解决方案--------------------
如果你是在一个对话框上放一个位图控件,在控件上绘图这就不一样了,你最好控件由一个CWnd派生一个类,比如class CWndEx : public Cwnd,然后在CWndEx 中的OnPaint()中绘图,不要在CBMPDlg中的OnPaint()中绘图
------其他解决方案--------------------
上述是基于MFC创建的非模态对话框的显示与隐藏。
------其他解决方案--------------------
自己顶,顶顶顶!!!!!!!
------其他解决方案--------------------
你画图代码放OnPaint(),或OnDraw()中,窗口重绘时会调用OnPaint()
------其他解决方案--------------------
用双缓冲,你所有描点只是在内存CDC中处理,OnPaint()中,你把内存CDC的图贴到你设备DC上来
------其他解决方案--------------------
引用:
你画图代码放OnPaint(),或OnDraw()中,窗口重绘时会调用OnPaint()
我用双缓存试过,不行,应该是我的代码有问题。帮忙看一下吧,应该怎么弄啊?这个描点的坐标是实时接收的。
  
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);

这样弄的话,每次只显示一个点。晕,应该怎么改呀?
------其他解决方案--------------------
OnPrepareDC处理下?
------其他解决方案--------------------
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);你这只是从临时DC中把图贴过去
------其他解决方案--------------------
引用:
void CBMPDlg::OnPaint() 
{
    CPaintDC dc(this);
        CBitmap bitmap;
    CDC dcCompatible;//你这是一个临时变量呀
    bitmap.LoadBitmap(IDB_BMP);
    CDC *cdc=m_BMP.GetDC();
    dcCompatible.CreateCo……
我知道,原理是这样,我试过用全局变量,但是效果还是不对,可能是下面这一句不对?

  cdc->BitBlt(0,0,360,180,&dcCompatible,0,0,SRCCOPY);你这只是从临时DC中把图贴去????

什么叫临时把DC图贴去
 
什么叫临时
------其他解决方案--------------------
CDC *m_pMemDC;
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 *m_pMemDC;
void CBMPDlg::OnPaint()