mfc图片加载方法参考

mfc图片加载方法参考

ID:33584804

大小:60.50 KB

页数:6页

时间:2019-02-27

mfc图片加载方法参考_第1页
mfc图片加载方法参考_第2页
mfc图片加载方法参考_第3页
mfc图片加载方法参考_第4页
mfc图片加载方法参考_第5页
资源描述:

《mfc图片加载方法参考》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、加背景图片的一种方法显示位图原理:1、声明一个CBitmap对象,并从资源中加位图。2、创建一个兼容的DC,用CDC的成员函数CreateCompatibleDC。3、用CDC的成员函数SelectObject将位图选入到兼容DC中。4、用CDC的成员函数BitBlt来输出位图。Windows在向窗口发送WM_PAINT消息之前,总会发送一个WM_ERASEBKGND消息通知该窗口擦除背景,默认情况下,Windows将以窗口的背景色清除该窗口。可以响应窗口(包括子元素)的WM_ERASEBKGND,以更改它们的背景。WM_ERASEBKGND的映射函数原型如下:afx_msgBOOLOnE

2、raseBkgnd(CDC*pDC);返回值:指定背景是否已清除,如果为FALSE,系统将自动清除参数:pDC指定了绘制操作所使用的设备环境。用图片控件,好像图片最多色彩数不超过256色,也就是8位,但是用代码在里面写的方法就可以解决这个问题了.大致代码时:BOOLCUi4Dlg::OnInitDialog(){//加载位图//CBitmapm_Back;m_Back.LoadBitmap(IDB_BACK);}BOOLCUi4Dlg::OnEraseBkgnd(CDC*pDC){CDCdc;GetWindowRect(rect);GetClientRect(rect);SetWindow

3、Posdc.CreateCompatibleDC(pDC);dc.SelectObject(&m_Back);//获取BITMAP对象BITMAPhb;m_Back.GetBitmap(&hb);//获取窗口大小CRectrt;GetClientRect(&rt);//显示位图pDC->StretchBlt(0,0,rt.Width(),rt.Height(),&dc,0,0,hb.bmWidth,hb.bmHeight,SRCCOPY);returnTRUE;}HBRUSHCUi4Dlg::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor){//设置透

4、明背景模式pDC->SetBkMode(TRANSPARENT);//设置背景刷子为空return(HBRUSH)::GetStockObject(HOLLOW_BRUSH);}6窗口的最前端显示WindowsAPI改变窗口的属性。一直保持在窗口的最前端,函数SetWindowPos声明如下:WINUSERAPIBOOLWINAPISetWindowPos(__inHWNDhWnd,//hWnd是窗口的句柄。__in_optHWNDhWndInsertAfter,//hWndInsertAfter是窗口Z顺序属性。__inintX,//X是窗口在X轴的位置。__inintY,//Y是窗口在

5、Y辆的位置。__inintcx,//cx是窗口的宽度。__inintcy,//cy是窗口的高度。__inUINTuFlags//uFlags是选择设置的标志。);调用这个函数的例子如下:LRESULTCCaiWinMsg::OnCommand(intnID,intnEvent){switch(nID)//菜单选项命令响应:{caseIDC_CREATEBTN://显示一个按钮。if(!m_hBtn){m_hBtn=CreateWindow(_T("BUTTON"),_T("按钮"),WS_VISIBLE

6、WS_CHILD

7、BS_PUSHBUTTON,50,50,100,32,m_hWnd,

8、(HMENU)IDC_BTN,m_hInstance,NULL);}break;caseIDC_BTN:OutputDebugString(_T("按钮按下r"));{staticboolbChangeText=true;if(bChangeText){SetWindowText(m_hBtn,_T("改变它"));//设置按钮的文字。MoveWindow(m_hBtn,10,10,100,32,TRUE);//改变按钮窗口的位置和大小。//改变主窗口为最顶端窗口。SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE

9、SWP_NOSI

10、ZE);}else{SetWindowText(m_hBtn,_T("按钮"));//设置按钮的文字。MoveWindow(m_hBtn,50,50,100,32,TRUE);//改变按钮窗口的位置和大小。//改变主窗口为普通窗口。SetWindowPos(m_hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE

11、SWP_NOSIZE);}//每一次都改变。bChangeText=!bChange

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。