FFmpeg_SDL_MFC4MFC的基础使用
Posted 叮咚咕噜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg_SDL_MFC4MFC的基础使用相关的知识,希望对你有一定的参考价值。
参考:MFC使用详解
一、创建MFC工程
▫ 打开VC++
▫ 文件->新建->项目->MFC应用程序
▫ 应用程序类型->基于对话框(最简单的一种)
▫ 取消勾选“使用Unicode库”(暂不详细介绍)
二、置控件
在右侧工具箱拖到到此:
- Button:按键,如:暂停、播放
- Edit Control:文件路径框
- Static Text:没有实际含义,文字信息
三、修改属性
说明:
- ID:对话框ID,唯一标识对话框资源,可以修改;代码中用来表示当前控件的唯一标识
- Caption:对话框标题,如上图的播放等文字填写
四、添加消息响应函数
- 双击Button控件,就可以给该控件添加消息响应函数。
- 在菜单栏的“项目->类向导” 处,可以添加更多种类的消息响应函数。
- MFC最简单的弹出消息框的函数是AfxMessageBox(“HelloWorld”)
- 弹出主对话框附带的对话框
void Cffmpeg_sdl_mfcDlg::OnBnClickedPlay()
{
CAboutDlg dlg; //对应的是另一个对话框
dlg.DoModal();//模式对话框,DoModal使用这个函数弹出的对话框必须关闭之后才能点击其他按钮。
}
注: 我们在创建MFC工程时,生成两个类,一个是当前对话框,一个是我们工程整体的类Cffmpeg_sdl_mfcDlg和Cffmpeg_sdl_mfcApp
五、删除按钮
删除按钮不能只删除界面上的按钮,这样会编译不过的,有两种方法:
(1)代码中涉及到这个按钮的代码全部删掉
(2)菜单栏项目->类向导,里面选择对应的类和按钮ID,点击右侧批量删除,代码中按钮相关的就会被注释掉
六、获取输入框字符
获取输入框的字符:
点击编辑框右键,新增成员变量,编辑框中输入的内容会保存到编辑框中:
- 菜单栏项目->类向导->成员变量->双击新增成员名
- 新增之后代码中就会新增一个成员m_url,通过访问这个变量就可以获取输入的值。
/* 获取输入的字符串并打印出来 */
void CSFFPlayerDlg::OnBnClickedFiledialog()
{
CString str1;
m_url.GetWindowText(str1); //MFC中的函数
AfxMessageBox(str1);
}
七、FFMPEG合入验证
简单调用ffmpeg中的函数,并将打印显示出来,验证环境搭建可行
CString str1;
str1.Format("%s", avcodec_configuration()); //类似于C中的sprintf函数
AfxMessageBox(str1);
八、选择文件路径
点击文件按钮,弹出windows界面,选择需要播放的文件:
代码实现如下:
void CSFFPlayerDlg::OnBnClickedFilebrowser()
{
/* 这都是windows中的函数,我们不需要关心具体底层是怎么实现的 */
CString FilePathName;
/* 申明这个类就会弹出选择文件的对话框 */
CFileDialog dlg(TRUE,NULL,NULL,NULL,NULL);///TRUE为OPEN对话框,FALSE为SAVE AS对话框
if(dlg.DoModal()==IDOK) { /* DoModal表示只能操作当前对话框,不可以操作其他内容 */
FilePathName=dlg.GetPathName();
m_url.SetWindowText(FilePathName);
}
}
九、添加窗口图片资源
-
选择类型为Bitmap,选择Image为哪张图片,Image中的ID是添加资源之后确定的唯一ID
-
添加资源(右键添加资源,选中需要添加的资源文件)
-
资源添加之后也会有一个ID,用来表示当前资源,在主界面用ID引用它
十、增加和windows类似的菜单栏
(1)资源视图->右键->添加资源->menu->新建:然后就构建我们想要的菜单
(2)将菜单和主界面关联:点击主界面->属性->杂项->menu
(3)为菜单栏添加对应的功能:点击到菜单中某一项,将其id改成主界面中随便一个的id,就和对应的按钮有了相同的功能。
以上是关于FFmpeg_SDL_MFC4MFC的基础使用的主要内容,如果未能解决你的问题,请参考以下文章