VC中Picture控件显示位图的问题??!!顶贴也有分。

zmx0506 2006-12-28 11:34:05

我的问题是:

我在一对话框上添加了一个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);

请问该怎么实现???
...全文
833 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
miaoshengwu 2006-12-28
  • 打赏
  • 举报
回复
用程序动态获取picture控件的大小,
再把图片动态的加进去
zmx0506 2006-12-28
  • 打赏
  • 举报
回复
自己,up

元旦结贴。
zmx0506 2006-12-28
  • 打赏
  • 举报
回复
恩,控件大小随着窗口大小变化。

我试下miaoshengwu的方式先。
miaoshengwu 2006-12-28
  • 打赏
  • 举报
回复
picture控件大小也跟着窗口大小变化吗?
上面是获得控件大小,然后把图片加载上去的。
zmx0506 2006-12-28
  • 打赏
  • 举报
回复
我说得很明白了,控件大小我控制,我要的是加进来的位图适合我的控件大小。
miaoshengwu 2006-12-28
  • 打赏
  • 举报
回复
试试下面的可不可以,
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);

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧