我的问题是:我在一对话框上添加了一个Picture控件,在它的属性框里设置了用它来显示一个位图资源。我的对话框可以变动大小,我的Picture控件随着对话框的大小变换而成比例的变换大小。现在,我在Picture控件的属性框中如果选中了“Center Image”项,则我在打开各种位图文件显示的时候,如果位图大于我的控件大小,它则只显示位图的中间部分;如果位图小于控件大小,它则只在控件的中间显示位图。如果我不在控件的属性框中选中“Center Image”项,则我在打开各种位图文件显示的时候,位图有多大,控件就显示多大,甚至会超出我的对话框大小。
我想达到的目的是:
我的控件由我控制大小,但是位图显示出来,不管它本身有多大,都伸缩变换到我的控件大小进行显示。
我现在的代码是
HBITMAP hBitmap = NULL;
VERIFY(strcmp(G_OpenFileName, ""));
hBitmap = (HBITMAP )LoadImage(AfxGetApp()->m_hInstance,                    
          G_OpenFileName, IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | 
          LR_LOADFROMFILE); m_WaveUIBmpCtrl.SetBitmap(hBitmap);请问该怎么实现???

解决方案 »

  1.   

    用程序动态获取picture控件的大小,
    再把图片动态的加进去
      

  2.   

    试试下面的可不可以,
    CRect rc;
    CWnd *pWnd=GetDlgItem(IDC_PICTURE);
    pWnd->GetWindowRect(&rc);CString string_pictures="E:\\Pic\\SOURCE1.bmp";
    HBITMAP hbitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),string_pictures,
                 IMAGE_BITMAP,rc.Width(),rc.Height(), LR_CREATEDIBSECTION|LR_LOADFROMFILE);CStatic *pStatic;
    pStatic=(CStatic *)GetDlgItem(IDC_PICTURE);
    pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
    pStatic->SetBitmap(hbitmap);
      

  3.   

    picture控件大小也跟着窗口大小变化吗?
    上面是获得控件大小,然后把图片加载上去的。
      

  4.   

    恩,控件大小随着窗口大小变化。我试下miaoshengwu的方式先。