我在OnInitDialog()中写了以下代码,为什么图片显示不出来呢? 
        CClientDC dc(this);
        CDC *mdc=new CDC;
mdc->CreateCompatibleDC(&dc);
CBitmap m_Img;
m_Img.m_hObject=
        (HBITMAP)::LoadImage(NULL, "yanse.bmp", IMAGE_BITMAP,500,400,LR_LOADFROMFILE); 
mdc->SelectObject(m_Img);
CRect rct;
GetClientRect(&rct);
dc.BitBlt(0,0,rct.right,rct.bottom,mdc,0,0,SRCCOPY);
delete mdc;

解决方案 »

  1.   

    OnInitDialog()被调用时,对话框的窗口还没有显示出来,CClientDC dc(this); 估计为NULL
      

  2.   

    放到OnPaint中去。CClientDC改成CPaintDC
      

  3.   

    显示代码没有问题,但是不能放在OnInitDialog()中,你可以将它放在一个按钮的处理函数中,应该可以.
      

  4.   

    在你显示图片的语句前加上下面两句试试:    AfxGetMainWnd()->ShowWindow(SW_SHOW);
        AfxGetMainWnd()->UpdateWindow();理由同2楼的,o(∩_∩)o...
      

  5.   

    你将你的代码放到OnPaint()的if--else语句的else部分,并将“yanse.bmp”放到工程文件夹下然后编译,运行就可以了我已经试过了,可以显示的。
      

  6.   

    if (IsIconic())
    {
    }
    else
    {
    在这儿添加绘图代码
    }
      

  7.   

    那怎么样得到图片的颜色值呢?也就是R=?G=?B=?
    谁有这方面的资料
      

  8.   

    那怎么样得到图片的颜色值呢?也就是R=?G=?B=? 
    显示出来的图象,用GETPIXEL()函数就行