在Onpaint()函数中可以动态加载
方法:
   CPaintDC dc(this);
   CRect rect;
   GetDlgItem(IDC_PIC)->GetWindowRect(&rect);
   ScreenToClient(&rect);
   CDC mdc;
   mdc.CreateCompatibleDC(&dc);
   CBitmap *poldBmp;
  BITMAP da;
   m_Bmp.GetBitmap(&da);
   
   poldBmp=mdc.SelectObject(&m_Bmp);
   dc.StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&mdc,0,0,da.bmWidth,da.bmHeight, SRCCOPY);
   mdc.SelectObject(&poldBmp);
==========================================================
但是为什么在OnInitialDlg()中不能操作呢? 
还有怎么动态改变图片,点击treectrl中一项动态加载图片怎么实现。
谢谢 

解决方案 »

  1.   

    提示一下Onpaint()是在OnInitialDlg()后调用的
      

  2.   

    我就说能不能不再Onpaint里面绘图行不行?自定义一个paint()。
    怎么好像不行
      

  3.   

    http://www.vctop.com/View.Asp?ID=492&CateID=1
      

  4.   

    所谓onpaint是指界面每次出现、变化时的事件,比如窗口最大化、最小化、移动等时候发生了的。不在onpaint里画,比如用一个按钮画,一旦窗口变化,onpaint(函数里默认的代码)就给你重画了,所以看不到画的东西了。同样因为onpaint比oninitdialog后发生,所以看不到画的东西了