jpg-在MFC的CDialog类中可以显示JPG图片 在CFromview类中用同样的方法显示不了

问题描述

在MFC的CDialog类中可以显示JPG图片 在CFromview类中用同样的方法显示不了

HGLOBAL hMem;
IStream *m_pStream;
IPicture *m_pPicture;
OLE_XSIZE_HIMETRIC m_JPGWidth;
OLE_XSIZE_HIMETRIC m_JPGHeight;

CRect rect(100,120,600,460);
CString path;
CFile file;
CFileDialog dlg(TRUE,_T("jpg"),_T("*.jpg"), OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
    _T("JPEG文件(*.jpg)|*.jpg|GIF文件(*.gif)|*.gif|bmp文件(*.bmp)|*.bmp|所有文件(*.*)|*.*|"),NULL);
if(dlg.DoModal()==IDOK)
{
    path=dlg.GetPathName();
}  

file.Open(path,CFile::modeReadWrite);
DWORD len=file.GetLength();
hMem= GlobalAlloc(GMEM_MOVEABLE,len);
LPVOID pData=NULL;
pData=GlobalLock(hMem);
file.Read(pData,len);
file.Close();
GlobalUnlock(hMem);
CreateStreamOnHGlobal(hMem,TRUE,&m_pStream);
OleLoadPicture(m_pStream,len,TRUE,IID_IPicture,(LPVOID*)&m_pPicture);
m_pPicture->get_Height(&m_JPGHeight);
m_pPicture->get_Width(&m_JPGWidth);
CDC *pDC=NULL;
pDC=this->GetDC();
m_pPicture->Render(pDC->m_hDC,0,0,(int)rect.Width(),(int)rect.Height(),0,m_JPGHeight,m_JPGWidth,-m_JPGHeight,NULL);

解决方案

CFromview会引发重绘,打开文件得到文件名存在一个变量,在OnDraw里绘图。

时间: 2024-12-09 02:59:48

jpg-在MFC的CDialog类中可以显示JPG图片 在CFromview类中用同样的方法显示不了的相关文章

c++-为什么在类中定义没有定义默认构造函数的类类型变量通过编译了?

问题描述 为什么在类中定义没有定义默认构造函数的类类型变量通过编译了? class T { public: T(int i) :_i(i) {} private: int _i; }; class U { private: T t; }; 如果定义了一个构造函数不是就会取消合成的默认构造函数吗? 可以定义不可以赋值是吧?刚才发现 const int ci; int &ri; 也通过编译了. 解决方案 语法这么规定的,因为t是成员变量 如果你写在函数里 main() { T t; } 那就报错了.

java代码-java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的?

问题描述 java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的? class Demo03 { public static void main(String[] args) { A.show(); } } class A { //构造方法 A(){ System.out.println("构造方法执行"); System.out.println(b); System.out.println(c); } static A a=new A(); sta

JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法

  本文实例讲述了JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法.分享给大家供大家参考.具体如下: html代码: ? 1 2 3 4 5 6 7 8 9 <form name="searchform" id="search-form"> <div> <b>Search</b> <input type="text" name="txtInput" t

c# .net中下载文件及图片文件的防盗链功能实现方法

在c#.net中可以利用app_data文件夹来实现下载文件及图片文件的防盗链功能. 原理一:在asp教程.net中app_data文件夹包含应用程序的本地数据存储.它通常以文件(诸如microsoft access或microsoft sql server express数据库教程.xml文件.文本文件以及应用程序支持的任何其他文件)形式包含数据存储.该文件夹内容不由asp.net教程处理,也就是说浏览者无法直接访问此文件夹,因此我们可以利用这一权限特性来实现防盗链. 原理二:对来访请求地址进

view类中怎么访问属性栏上的属性网格控件?

问题描述 view类中怎么访问属性栏上的属性网格控件? 小弟在做一个MFC绘图的程序,需要在绘图区中点击相应的图形,如直线,在右侧的属性栏上显示对应图形的参数,使用成员变量的形式访问会出现内存冲突的问题,求高手解答,O(∩_∩)O谢谢! 解决方案 可以通过主框架窗口来中转,在View中很容易访问主框架窗口(比如通过AfxGetMainWnd() SDI程序),在CMainFrame类中肯定定义了相关的属性类的对象成员.

ios-在继承类中调用方法报错

问题描述 在继承类中调用方法报错 有两个类A和B.在A类中: @interface A : B 在B类中,得到如下代码: self.navigationItem.rightBarButtonItem = [UIBarButtonItem barItemWithImage:[UIImage imageNamed:@""Add-button-normal""] highlightedImage:[UIImage imageNamed:@""Add-b

如何在rest类中获取httpservletrequest对象

问题描述 如何在rest类中获取httpservletrequest对象 如何在rest类中获取httpservletrequest对象,在网上找的大部分都不好用,求高手帮帮忙,谢了 解决方案 看你的rest类怎么定义的,上下文是什么,如果你一窍不通,还是找个略懂程序的学生帮你下.写程序这件事不是word打字,不是网上胡乱找个代码一贴就能好用的.

java 初始化 对象-导出类中默认创建基类的子对象

问题描述 导出类中默认创建基类的子对象 读<Java编程思想第四版>第7章复用类,7.2.1初始化基类中, 描述当创建一个导出类对象的时候会自动创建一个基类子对象. 那如果我继承自一个抽象类,那么编译器会怎么处理呢? 解决方案 抽象类是不能实例化的,基类的构造函数只是设置了这个类的属性等,这个对象是一个子类的对象,只是可以用父类指向它而已. 也就是说创建一个子类的时候,没有创建两个对象,而是一个对象.

第8周-任务3-实现分数类中的运算符重载

[题目]实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).求反.比较(6种关系)的运算. class CFraction { private: int nume; // 分子 int deno; // 分母 public: //构造函数及运算符重载的函数声明 }; //重载函数的实现及用于测试的main()函数 [参考解答] #include <iostream> using namespace std; class CFraction { private: int