void CGdiApp1Dlg::OnPaint() 
{
CPaintDC dc1(this); SendMessage(WM_ICONERASEBKGND, (WPARAM) dc1.GetSafeHdc(), 0);

Graphics graphics1(dc1.GetSafeHdc()); // Create a GDI+ graphics object USES_CONVERSION;
Bitmap bitmap(L"D:\\GdiPlus\\GdiApp1\\Debug\\ylsb2.bmp"); graphics1.DrawImage(&bitmap, 0, 0, bitmap.GetWidth(), bitmap.GetHeight()); CDialog::OnPaint();
}
何时用 Image 呢?是用GDI+好还是用别的库如CxImage好呢?

解决方案 »

  1.   

    假如我要显示的是jpg, gif, png...等图片格式, 哪该怎么写啊?
      

  2.   

    http://blog.csdn.net/bobob/archive/2005/03/03/308761.aspx
      

  3.   

    Bitmap bitmap(L"D:\\GdiPlus\\GdiApp1\\Debug\\ylsb2.jpg");
    Bitmap bitmap(L"D:\\GdiPlus\\GdiApp1\\Debug\\ylsb2.png");
    Bitmap bitmap(L"D:\\GdiPlus\\GdiApp1\\Debug\\ylsb2.gif");Bitmap并不是只能读取.bmp的位图.
      

  4.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsample/html/vcsamSimpleImageSample.asp有没有调用这个GdiplusStartupInput
      

  5.   

    CDialog::OnPaint();重新绘制回去了。
      

  6.   

    编译已成功,能运行,但显示的是屏幕的图片啊去了CDialog::OnPaint();还是不行啊
      

  7.   

    在App的InitInstance里面添加
    DWORD token;
    GdiplusStartupInput input; //是个结构 晕
    GdiplusStartup(&token,&input,0);
    测试通过显示屏幕估计是因为这句
    SendMessage(WM_ICONERASEBKGND, (WPARAM) dc1.GetSafeHdc(), 0);
      

  8.   

    我在App类中声明:
    GdiplusStartupInput m_gdiplusStartupInput; 
    ULONG_PTR m_gdiplusToken; 在InitInstance()中
    GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);  
    在ExitInstance() 中
    GdiplusShutdown(m_gdiplusToken);然后在Dlg::OnPaint()中加如上代码, 但显示的是Desktop上的背景图片, 详细情况就是这样.
    如果用Image image(L"D:\\GdiPlus\\GdiApp1\\Debug\\ylsb2.bmp"); 运行时还会出错.这是用GDI+显示图片的最简单的例子了,哪未朋友发给我一个完整的例子,能编译运行,显示出图片,就象我做的那样简单的那种, 不要复杂的. 谢谢 !