请问,VC中如何在对话框中贴图片呢,比喻说如何给对话框添加底片,或是在对话框上贴上图片?
还有,如何改变按钮的形状和颜色呢?

解决方案 »

  1.   

    http://www.vckbase.com/code/winview/dialog/BmpDlg_Demo.zip
      

  2.   

    贴图可以考虑 Gdiplus按钮的话可以用 OwnerDraw
      

  3.   

    INSERT->resource打开一个插入资源对话框
    选择Bitmap后点击“引入...”然后选择一个你想要的图片(.bmp)引入
    然后图片就已经进入编译器了,在Resource View中可以看到这个图片资源,查看它的ID,然后在对话框模板上添加一个PIC控件并自己手动调节大小,然后设置它的属性:常规->类型:位图;图像:选择你导入的图片的ID。
    位置自己调节。OK了。
      

  4.   

    看下这篇帖子 Tile, center and stretch a bitmap as your MFC dialog background http://www.codeproject.com/KB/dialog/bmpdlg01.aspx
      

  5.   

    按照4楼的方法,在Resource View中可以看图片资源时,总是出现这种提示“The bitmap has been imported correctly ,however because it contains more than 256 colors it cannot be loaded in the bitmap editor!”
    这个问题该怎样解决呢,我想加载稍微大一点儿图片,那位高手能指点指点小弟,拜托!
      

  6.   

    解决了,呵呵!
    1、把你的图包含到程序的“Bitmap资源”里,提示说该资源使用了大于256色的调色板,在VC里无法编辑等等,点确定就可以 
     
    2、定位到  void CXXXDlg::OnPaint(),在if()...else()中的else()下添加如下代码   
      else   
      {   
              //CDialog::OnPaint();//要禁止这个调用   
              CPaintDC   dc(this);   
              CRect   rect;   
              GetClientRect(&rect);   
              CDC   dcMem;   
              dcMem.CreateCompatibleDC(&dc);   
              CBitmap   bmpBackground;   
              bmpBackground.LoadBitmap(IDB_BITMAP);   
                      //IDB_BITMAP是你自己的图对应的ID   
              BITMAP   bitmap;   
              bmpBackground.GetBitmap(&bitmap);   
              CBitmap   *pbmpOld=dcMem.SelectObject(&bmpBackground);   
              dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,   
             bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);   
      }