赞
踩
最近突然有了一种想用MFC做贺卡的想法,做成一个.exe程序,让被祝贺的人可以用电脑在任何位置打开观看,这就要求所使用资源必须添加至MFC工程,下面的方法都是本人测试过的,希望对你有所帮助呦!
MFC只支持添加256色bmp格式的图片,如果你没有bmp格式的图片,可以从该链接下载256色bmp图,当然你也可以用windows自带的画图将其他格式图片转化为256色bmp图
首先你要添加图片控件
修改该控件的属性
然后在资源视图中添加资源
选择bitmap,导入,然后选择你要添加的图片即可
在图片控件的属性页面杂项中的image中选择你刚添加的图片的ID就可以了
给MFC添加图片的误区就是MFC支持的图片格式是256色bmp图,注意,其他格式的图片是添加不进去的
注:这里附加演示
给MFC添加GIF动图其实才是比较有困难的,因为你几乎在网上找到的方法都是互抄的,根本不行!我查了两个多小时百度才在一篇较老的博客中看到正确方法
首先还是添加图片控件啦
然后修改图片控件属性
这里就要用到图片控件的ID了,你可以自己设置一个ID
右击图片控件,给图片控件添加Cstatic变量,变量名自己取一个,我用的是m_ljlPicture
到这里关于图片控件的内容就结束了
本人使用的显示加载GIF动图的方法是使用第三方函数pictureEx.h和pictureEx.cpppictureEx下载
将.h跟.cpp添加至MFC项目,并在你要显示动图的对话框.h中包含头文件pictureEx.h
上面已经给图片控件添加了Cstatic变量,下面将其类型改为CPictureEx m_ljlPicture; (在哪个对话框中添加的变量就去相应的.h中修改)
然后在对话框初始函数:OnInitDialog()中添加如下语句
if (m_ljlPicture.Load(MAKEINTRESOURCE(IDR_GIF2),_T("gif")))
m_ljlPicture.Draw();
到这里代码就结束了,下面给MFC工程添加GIF动图资源
由于MFC本身不支持gif类型的资源,因此在资源视图添加资源时需要自定义一个类型gif
然后右击"gif"这个筛选器,选择插入gif,这时会出来一个空的文件
我这里的就是IDR_GIF3,这个是干嘛用的呢,由于直接添加GIF是不行的,因此才使用这种方法,在空白动图文件中粘贴原动图文件的二进制数据
在解决方案资源管理器界面找到资源文件筛选器,并将你要添加的动图添加进去,具体操作是右击资源文件->添加->现有项,选择你要添加的GIF图gif图下载
右击你添加的gif图,选择打开方式->二进制编辑器
将二进制数据拷贝到gif筛选器中的空文件中
这是我已经添加好的gif动图
至此给MFC项目添加GIF动图就完美结束了
(if (m_ljlPicture.Load(MAKEINTRESOURCE(IDR_GIF2),_T("gif"))) m_ljlPicture.Draw();中 IDR_GIF2是你动图的ID)
添加背景音乐就比较简单了
值得注意的是MFC本身只支持WAV格式的音频格式,将要添加的音频转换成WAV格式WAV格式音乐<初恋>下载
可以使用转换器转换,下载迅捷视频转换器就可以转换
在资源视图中直接导入你的WAV格式音乐,MFC会自动新建筛选器"WAVE"
在你要播放背景音乐的地方将这些都加上
#include "resource.h"
#include <Windows.h>
#include <iostream>
#include "string.h"
#include <process.h>
#include<iomanip>
#include <MMSystem.h>
#pragma comment (lib,"Winmm.lib");
1、在你要播放的对话框:OnInitDialog()中添加
PlaySound((LPCTSTR)IDR_WAVE1, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);
2、通过按钮触发事件来播放,我做的是按钮可以打开属性卡,然后播放背景音乐
在按钮触发事件中添加
HANDLE handle = (HANDLE)_beginthreadex(NULL, 0, ThreadFun, NULL, 0, NULL);
CloseHandle(handle); //释放线程资源
我的线程函数是
unsigned int __stdcall ThreadFun(void *)
{
//MessageBox(NULL,_T("开始播放音乐"),_T("提示"),MB_OKCANCEL);
PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(),SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP);
_endthreadex(0);
return 0;
}
这样可以让主进程弹出对话框的同时播放音乐
至此给MFC添加播放背景音乐完成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。