CStatic中保持图形比例不变,尽量填充控件空间的代码
CStatic中保持图形比例不变,尽量填充控件空间的代码
先获取控件的高、宽,然后获取图像的高、宽,测试需要调整高还是调整宽
void CImagePreviewStatic::DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemStruct*/)
{
Unit units;
CRect rect; if (m_img2 != NULL) {
//获取到HDC
HWND hWnd = GetParent()->m_hWnd;
HDC hDc = ::GetDC(hWnd);
//获取画的位置
GetWindowRect(&rect);
::ScreenToClient(hWnd, (LPPOINT)&rect);
::ScreenToClient(hWnd, (LPPOINT)(&rect) + );
::SetStretchBltMode(hDc, COLORONCOLOR); int rectWidth = rect.right - rect.left;
int rectHeight= rect.bottom - rect.top; //在这儿计算显示区域
int nHeight = m_img2->GetHeight();
int nWidth = m_img2->GetWidth(); //假设图像高度不变,则在当前RECT下,需要多少的宽度
int nAdjWidth = (rectHeight*nWidth)/nHeight;
//如果当前宽度大于现有宽度,则宽度不变,调整高度信息
if (nAdjWidth > rectWidth) {
int nAdjHeight = (rectWidth*nHeight)/nWidth;
rect.bottom = rect.top + nAdjHeight;
} else {
//只需要调整不等于的情况
if (nAdjWidth != rectWidth){
rect.right = rect.left + nAdjWidth;
}
} //画图片
m_img2->Draw(hDc,rect);
}
}
CStatic中保持图形比例不变,尽量填充控件空间的代码的更多相关文章
- Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定)
原文:Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定) ------------------------------ ...
- winform中button点击后再点击其他控件致使button失去焦点,此时button出现黑色边线,去掉黑色边线的方法
winform中button点击后再点击其他控件致使button失去焦点,此时button出现黑色边线,去掉黑色边线的方法 button的FlatAppearence属性下,设置BorderSize= ...
- MVC中使用HTML Helper类扩展HTML控件
文章摘自:http://www.cnblogs.com/zhangziqiu/archive/2009/03/18/1415005.html MVC在view页面,经常需要用到很多封装好的HTML控件 ...
- 在ASP.NET中动态加载内容(用户控件和模板)
在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<tab ...
- c#中如何跨线程调用windows窗体控件
c#中如何跨线程调用windows窗体控件? 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首 ...
- 安卓中的事件分发机制之View控件
前言:Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev).onInterceptTouchEvent(MotionEvent e ...
- ASP.NET中共有哪几种类型的控件?其中,HTML控件、HTML服务器控件和WEB服务器控件之间有什么区别
ASP.NET的控件包括WEB服务器控件.WEB用户控件.WEB自定义控件.HTML服务器控件和HTML控件.HTML控件.HTML服务器控件和WEB服务器控件之间的区别如下所示.q HTM ...
- WPF Prism MVVM 中 弹出新窗体. 放入用户控件
原文:WPF Prism MVVM 中 弹出新窗体. 放入用户控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_37214567/artic ...
- 在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件
DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...
随机推荐
- java-webservice的简单实现
服务端: 1.创建正常j2ee项目,创建service接口 package service; import javax.jws.WebMethod; import javax.jws.WebServi ...
- 常用sql---表记录数和占用空间统计
1.每张表的记录数和占用空间 select owner as 用户名, table_name as 表名, num_rows as 记录数, ROUND(t.NUM_ROWS * t.AVG_ROW_ ...
- oracle汇编01
1: / define numeric label "1"one: / define symbolic label "one"/ ... assembler c ...
- python笔记(3)---列表
lst = ["bob","jack","马云","马化腾","王健林"] del lst[1:3] ...
- php内置函数分析array_count_values()
PHP_FUNCTION(array_count_values) { zval *input, /* Input array */ *entry, /* An entry in the input a ...
- wepy相关
1.根据官方文档: $ npm install @wepy/cli -g # 全局安装 WePY CLI 工具 $ wepy init standard myproj # 使用 standard 模板 ...
- 负载均衡(二)DNS负载均衡
一.DNS原理及解析过程详解 相信大家在平时工作中都离不开DNS解析,DNS解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流 ...
- vue单页面项目中解决安卓4.4版本不兼容的问题
1.cnpm安装 cnpm i babel-polyfill --save cnpm i es6-promise --save 2.main.js引入 import ‘babel-polyfill‘ ...
- A1002
多项式相加,按非零项个数,指数,系数输入两个n项多项式,合并同类项之后输出. 用数组编号保存指数,编号对应的数组值保存系数,相加之后用count记录非零项的个数,最后输出. 数组最大1000个,如果有 ...
- HTML5的新特性:范围样式,又叫做<style scoped>
Chromium 最近实现了一个HTML5的新特性:范围样式,又叫做<style scoped> .开发者可以通过为根元素设定一个添加了scoped属性的style标签,来限制样式只作用于 ...