MFC的图片控件的使用(图片适应控件大小并不失真)
来源:互联网 发布:eclipse中文是乱码 mac 编辑:程序博客网 时间:2024/06/07 02:52
MFC的图片控件的使用
建立一个基于对话框的MFC 如图 ,为新建MFC的窗口 接下来添加图片控件(如果添加全部背景则不需要添加图片控件,直接进行消息响应函数的添加即可)
添加图片控件
接下来 点击属性更改控件名称
在属性中 找到ID进行更改
可更改为IDC_XXXX,接下来添加paint消息函数,右键窗口空白部分点击属性 点击消息找到WM_PAINT
在后面点击添加代码:
进入到代码的编辑页面:
在OnPaint函数中添加代码,如果在函数中有if的条件语句,在else中添加:
添加的代码如下
CImage *m_sLogInPic;//新建一个CImage的对象 用于储存图片m_sLogInPic = new CImage;m_sLogInPic->Load("1.jpg");//使用m_sLogInPic读取图片引号中添加图片地址及图片名CPaintDC dc(this); // 建立一个矩形在矩形中画图CRect rect;GetDlgItem(IDC_2)->GetWindowRect(&rect);//规定矩形为你所创建的图片控件(括号内为控件ID)若是为整个窗口添加背景将矩形设为整个窗口即可ScreenToClient(&rect);dc.SetStretchBltMode(HALFTONE);m_sLogInPic->Draw(dc.m_hDC, rect);//通过画图 将图片paint出来 CDialogEx::OnPaint();运行即可看到添加的图片控件里出现想要的图片了
附:获取对话框窗体大小及其屏幕坐标
//对话框窗体大小及其屏幕坐标CRect rectDlg;//法1:GetClientRect(rectDlg);//获得窗体的大小//法2://GetWindowRect(rectDlg);//获得窗体在屏幕上的位置//ScreenToClient(rectDlg);CString strDlg;strDlg.Format(L"%d,%d,%d,%d",rectDlg.left,rectDlg.top,rectDlg.Width(),rectDlg.Height());MessageBox(strDlg);
关于窗口:
1、获取屏幕分辨率
//下边两个函数获取的是显示屏幕的大小,但不包括任务栏等区域int cx = GetSystemMetrics(SM_CXFULLSCREEN);int cy = GetSystemMetrics(SM_CYFULLSCREEN);//下边这两个函数获取的是真正屏幕的大小:屏幕分辨率int nWidth=GetSystemMetrics(SM_CXSCREEN); //屏幕宽度 int nHeight=GetSystemMetrics(SM_CYSCREEN); //屏幕高度CString strScreen;strScreen.Format(L"%d,%d",nWidth,nHeight);MessageBox(strScreen);
2、获取对话框窗体大小及其屏幕坐标
//对话框窗体大小及其屏幕坐标CRect rectDlg;//法1:GetClientRect(rectDlg);//获得窗体的大小//法2://GetWindowRect(rectDlg);//获得窗体在屏幕上的位置//ScreenToClient(rectDlg);CString strDlg;strDlg.Format(L"%d,%d,%d,%d",rectDlg.left,rectDlg.top,rectDlg.Width(),rectDlg.Height());MessageBox(strDlg);
3、获取控件大小和位置
//控件大小和位置CRect rectCtrl;CStatic *p=(CStatic*)GetDlgItem(IDC_STATIC_TEST);p->MoveWindow(100,100,100,100);//更改控件大小并移动其到指定位置p->GetWindowRect(rectCtrl);this->ScreenToClient(rectCtrl);//GetDlgItem(IDC_STATIC_TEST)->GetClientRect(rectCtrl);CString str;str.Format(L"%d,%d,%d,%d",rectCtrl.left,rectCtrl.top,rectCtrl.Width(),rectCtrl.Height());MessageBox(str);
总结:
1、GetSystemMetrics() --> 用于得到被定义的系统数据或者系统配置信息;
2、GetClientRect() --> 得到客户区的位置和大小,一般用于获取窗口大小;
3、GetWindowRect() --> 得到窗口(对话框或控件)的屏幕坐标,一般用于获取对话框的屏幕坐标或和ScreenToClient()配合使用获取控件的客户区坐标;
4、ScreenToClient() --> 屏幕坐标转换为客户区坐标,一般和GetWindowRect()配合使用获取控件的客户区坐标;
1 0
- MFC的图片控件的使用(图片适应控件大小并不失真)
- MFC怎么让图片适应picture control控件的大小
- MFC Picture Control 自适应控件大小显示图片,失真和不失真
- 在Picture Control控件上显示JPG图片并让图片适应控件的大小
- 用picture控件显示图片之动态方法(使图片适应于控件大小)
- C++ 图片自适应 picture control 控件大小 不失真显示
- 图片适应webview控件
- MFC picture control控件不失真自适应图片显示
- MFC picture control控件不失真自适应图片显示
- MFC picture control控件不失真自适应图片显示
- VS2010-MFC:MFC PictureControl控件上自适应显示图片,分图片失真或者图片不失真两种
- MFC中图片控件Picture Control的使用
- 【转】图片控件的使用
- 让图片自动适应框的大小
- 图片自动适应容器大小的JS
- 让UIImageView适应图片的大小
- Qt 图片适应QLabel控件大小(饱满缩放和按比例缩放)
- picturebox控件的图像怎么适应控件大小
- Lua C api 中让人头痛的栈与table传递
- 黑马程序员——Java基础——继承之内部类(四)
- opencv for android (环境搭建篇)
- 【小松教你手游开发】【面试必读(编程基础)】转载一篇优秀的c#泛型理解
- Android手机存储器分类
- MFC的图片控件的使用(图片适应控件大小并不失真)
- sqlmap 使用测试初级教程(实际已测试 -版本1.0)
- MySQL存储引擎
- 自定义卫星菜单CustomArcMenu
- css之菜单制作
- ViewPageIndecator使用
- Android notification的使用
- 系统从很老的V12.4.X升级到V15.0.4中个别报表构建中出现的错误及解决办法
- 【iOS】OC-时间转化的时区问题