MFC-在对话框显示图片的多种方法动态载入图片.docVIP

MFC-在对话框显示图片的多种方法动态载入图片.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

MFC在对话框显示图片的多种方法动态载入图片

voidLoadImage(DWORDnID,LPCTSTRImageURL)

参数说明:

nID需要绘制图像的窗口

ImageURL图象在硬盘上的地址(动态载入,只支持BMP图象)

voidShowImage(DWORDnID)

参数说明:

nID需要绘制图像的窗口

实现过程=================================================================实现过程

1.首先在CLoginDlg类中声明一个变量:CBitmapm_bmp;

2.在对话框中加入一个picture标签,名为IDC_STATIC1,作为绘制图像的窗口.

3.BOOLCLoginDlg::OnInitDialog()

{

CDialogDlg::OnInitDialog();

LoadImage(IDC_STATIC1,c:\\\\login.bmp);

returnTRUE;

}

4.voidCLoginDlg::OnPaint()

{

//CPaintDCdc(this);一定要去除

//TODO:Addyourmessagehandlercodehere

ShowImage(IDC_STATIC1);

}

函数过程=================================================================函数过程

voidCLoginDlg::LoadImage(DWORDnID,LPCTSTRImageURL)

{

if(m_bmp.m_hObject!=NULL)//判断

m_bmp.DeleteObject();

/////////载入图片

HBITMAPhbmp=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),ImageURL,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_LOADFROMFILE);

if(hbmp==NULL)

returnFALSE;

////////该断程序用来取得加载的BMP的信息

m_bmp.Attach(hbmp);

DIBSECTIONds;

BITMAPINFOHEADERbminfo=ds.dsBmih;

m_bmp.GetObject(sizeof(ds),ds);

intcx=bminfo.biWidth;//得到图像宽度

intcy=bminfo.biHeight;//得到图像高度

///////得到了图像的宽度和高度后,我们就可以对图像大小进行适应,即调整控件的大小,让它正好显示一张图片

CRectrect;

GetDlgItem(nID)-GetWindowRect(rect);

ScreenToClient(rect);

GetDlgItem(nID)-MoveWindow(rect.left,rect.top,cx,cy,true);//调整大小

returnTRUE;

}

voidCLoginDlg::ShowImage(DWORDnID)

{

///////绘制图像

//CPaintDCdc(this);//若用此句,得到的是对话框的DC,图片将被绘制在对话框上.

CPaintDCdc(GetDlgItem(nID));//用此句,得到picture控件的DC,图像将被绘制在控件上.

//CDCdc;

//dc.m_hDC=::GetDC(NULL);//若用此两句,得到的是屏幕的DC,图片将被绘制在屏幕上.

CRectrcclient;

GetDlgItem(nID)-GetClientRect(rcclient);

CDCmemdc;

memdc.CreateCompatibleDC(dc);

CBitmapbitmap;

bitmap.CreateCompatibleBitmap(dc,rcclient.Width(),rcclient.Height());

memdc.SelectObject(bitmap);

CWnd::DefWindowProc(WM_PAINT,(WPARAM)memdc.m_hDC,0);

CDCmaskdc;

maskdc.CreateCompatibleDC(dc);

CBitmapmaskbitmap;

maskbitmap.CreateBitmap(rcc

您可能关注的文档

文档评论(0)

8d758 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档