永发信息网

vc++不使用MFC类库,用WINDOWS API ,怎样给窗体添加JPG背景图片

答案:2  悬赏:20  手机版
解决时间 2021-03-11 10:18
vc++不使用MFC类库,用WINDOWS API ,怎样给窗体添加JPG背景图片
最佳答案
利用COM接口实现。
void DisplayImage(HDC hDC, LPCTSTR szImagePath)
{
HANDLE hFile=CreateFile(szImagePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); //从指定的路径szImagePath中读取文件句柄
DWORD dwFileSize=GetFileSize(hFile, NULL); //获得图片文件的大小,用来分配全局内存
HGLOBAL hImageMemory=GlobalAlloc(GMEM_MOVEABLE, dwFileSize); //给图片分配全局内存
void *pImageMemory=GlobalLock(hImageMemory); //锁定内存
DWORD dwReadedSize; //保存实际读取的文件大小
ReadFile(hFile, pImageMemory, dwFileSize, &dwReadedSize, NULL); //读取图片到全局内存当中
GlobalUnlock(hImageMemory); //解锁内存
CloseHandle(hFile); //关闭文件句柄
IStream *pIStream;//创建一个IStream接口指针,用来保存图片流
IPicture *pIPicture;//创建一个IPicture接口指针,表示图片对象
CreateStreamOnHGlobal(hImageMemory, false, &pIStream) //用全局内存初使化IStream接口指针
OleLoadPicture(pIStream, 0, false, IID_IPicture, (LPVOID*)&(pIPicture));//用OleLoadPicture获得IPicture接口指针
//得到IPicture COM接口对象后,你就可以进行获得图片信息、显示图片等操作
OLE_XSIZE_HIMETRIC hmWidth;
LE_YSIZE_HIMETRIC hmHeight;
pIPicture->get_Width(&hmWidth); //用接口方法获得图片的宽和高
pIPicture->get_Height(&hmHeight);
pIPicture->Render(hDC,0,0,100,100,0,hmHeight,hmWidth,-hmHeight,NULL); //在指定的DC上绘出图片
GlobalFree(hImageMemory); //释放全局内存
pIStream->Release(); //释放pIStream
pIPicture->Release(); //释放pIPicture
}
全部回答

我说的是我个人的理解,可能不对或者不全面。

首先说c++编程,c++编程就是指用c++语言进行的编程,只要是用c++语言的都可以算c++编程。

一般学c++编程的时候都是在学习些控制台程序,就是那种黑窗口的程序。

builder c++是c++编程的一种,他是borland公司开发的一套c++编程工具,编程时用c++语言,而控件和窗口有内建的类,处理普通窗口界面的时候要容易一些。

 visual c++是c++编程的另一种工具,用 visual c++开发程序是有两种,一种是sdk编程,建立win32应用程序的项目,所有窗口和事件全部有代码输入,设计操作系统和硬件的部分用api函数操作。

还有一种是mfc编程,有点类似builder c++ 有很多内建的类和控件可以调用,而且程序的框架已经搭好了。

api编程就是用api函数进行编程,api函数是应用程序接口函数,就是涉及到系统和硬件的操作时的接口。

mfc编程已经说了。

windows编程就是指开发那种windows下运行的窗口程序的编程。像mfc编程就属于windows编程。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我下载的单机斗地主,输完了金币就在不能玩了
上海师范大学编导多少分数线
华为麦芒手机屏幕碎了
lol德邦特战先锋和绞肉机角斗士那个皮肤好看
烟霞湖我想知道这个在什么地方
【detectives】送分题theplanewaslateanddete
2g卡用四g网怎么打不了电话
我要 我的妹妹不可能那么可爱2季的百度云资源
在测试软件里DRAM : FSB比值是什么 以前比值
京山县荆门简约在什么地方啊,我要过去处理事
某数除以50减去3等于某数除以60加2咋个解方程
农历十一月出生
全家的加盟费多少
电磁炉滴滴响不加热怎么办 电磁炉常见故障及
小孩子的安静和调皮是不是成长的环境!或者是
推荐资讯
你好!在忙吗?二保焊的气流量怎么调?
从北京到天津开车怎么走?
随着经济发展,人均能耗不断提高,人均能耗峰
日丰地暖怎么去啊,有知道地址的么
想买弗洛伊德的《梦的解析》来看不知道买哪版
发信息的时候那个簦还会闪打电话的时候他就不
有什么软件能解数学几何?
黑龙江农婆乐饺子馆酱猪手(总店)我想知道这个
对知乎上部分无良无德用户可否进行投票审核并
开髋哪个动作效果最好
4个月男婴。冬季出生,足月顺产,单纯牛奶喂
美美烫染时尚店怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?