一个MFC UI库的使用方法总结
2014-11-19 19:44
357 查看
一、向MFC工程导入图片等资源的方法:
资源视图下,右键点击项目名称->添加->资源,在弹出框中选择导入,导入图片,此时,系统会根据图片格式自动分类(创建对应资源文件夹),并且在解决方案管理器中的资源文件下自动添加该图片资源,在Resource.h中自动增加该图片的资源ID。点资源视图下的图片,在属性框中可以对应该图片资源ID,Resource.h中的图片资源ID会自动更新。
二、MFC UI库使用方法:
1、stdafx.h中添加头文件及gdiplus.lib库
#include ".\UI\IceDUI.h"
#include "resource.h"
#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")
2、在CTest_UI_01.cpp中InitInstance中,CWinApp::InitInstance();后添加:
ULONG_PTR gdiplusToken;
GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
在return前添加:
//关闭gdiplus的环境
Gdiplus::GdiplusShutdown(gdiplusToken);
3、CTest_UI_01Dlg .h修改对话框的继承类:
class CTest_UI_01Dlg : public CDlgBase
增加4个虚函数:
virtual void InitUI(CRect rcClient);
virtual void OnSize(CRect rcClient);
// 定时器消息
virtual void OnTimer(UINT nIDEvent);
// 消息响应
virtual LRESULT OnMessage(UINT uID, UINT Msg, WPARAM wParam, LPARAM lParam);
4、CTest_UI_01Dlg.cpp中完成3中的实例化:
CTest_UI_01Dlg::CTest_UI_01Dlg(CWnd* pParent /*=NULL*/)
: CDlgBase(CTest_UI_01Dlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDI_MAINICON);
}
BOOL CTest_UI_01Dlg::OnInitDialog()
{
CDlgBase::OnInitDialog();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE);
// 设置大图标
SetIcon(m_hIcon, FALSE);
// 设置小图标
// TODO: 在此添加额外的初始化代码
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CTest_UI_01Dlg::OnSize(CRect rcClient)
{
...
}
void CTest_UI_01Dlg::OnTimer(UINT uTimerID)
{
CDlgBase::OnTimer(uTimerID);
}
LRESULT CTest_UI_01Dlg::OnMessage(UINT uID, UINT Msg, WPARAM wParam, LPARAM lParam)
{
...
}
inline void CTest_UI_01Dlg::InitUI(CRect rcClient)
{
...
}
5、CDlgBase::OnInitDialog();
添加其中用到的资源图片并修改其资源ID使其匹配。
资源视图下,右键点击项目名称->添加->资源,在弹出框中选择导入,导入图片,此时,系统会根据图片格式自动分类(创建对应资源文件夹),并且在解决方案管理器中的资源文件下自动添加该图片资源,在Resource.h中自动增加该图片的资源ID。点资源视图下的图片,在属性框中可以对应该图片资源ID,Resource.h中的图片资源ID会自动更新。
二、MFC UI库使用方法:
1、stdafx.h中添加头文件及gdiplus.lib库
#include ".\UI\IceDUI.h"
#include "resource.h"
#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")
2、在CTest_UI_01.cpp中InitInstance中,CWinApp::InitInstance();后添加:
ULONG_PTR gdiplusToken;
GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
在return前添加:
//关闭gdiplus的环境
Gdiplus::GdiplusShutdown(gdiplusToken);
3、CTest_UI_01Dlg .h修改对话框的继承类:
class CTest_UI_01Dlg : public CDlgBase
增加4个虚函数:
virtual void InitUI(CRect rcClient);
virtual void OnSize(CRect rcClient);
// 定时器消息
virtual void OnTimer(UINT nIDEvent);
// 消息响应
virtual LRESULT OnMessage(UINT uID, UINT Msg, WPARAM wParam, LPARAM lParam);
4、CTest_UI_01Dlg.cpp中完成3中的实例化:
CTest_UI_01Dlg::CTest_UI_01Dlg(CWnd* pParent /*=NULL*/)
: CDlgBase(CTest_UI_01Dlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDI_MAINICON);
}
BOOL CTest_UI_01Dlg::OnInitDialog()
{
CDlgBase::OnInitDialog();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE);
// 设置大图标
SetIcon(m_hIcon, FALSE);
// 设置小图标
// TODO: 在此添加额外的初始化代码
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CTest_UI_01Dlg::OnSize(CRect rcClient)
{
...
}
void CTest_UI_01Dlg::OnTimer(UINT uTimerID)
{
CDlgBase::OnTimer(uTimerID);
}
LRESULT CTest_UI_01Dlg::OnMessage(UINT uID, UINT Msg, WPARAM wParam, LPARAM lParam)
{
...
}
inline void CTest_UI_01Dlg::InitUI(CRect rcClient)
{
...
}
5、CDlgBase::OnInitDialog();
添加其中用到的资源图片并修改其资源ID使其匹配。
相关文章推荐
- MFC控件:listctrl使用方法总结
- MFC 消息之WM_CTLCOLOR和OnCtlColor消息的使用方法总结
- VS2010使用MFC创建绿色软件及单文档和多文档及一个解决方案包含多个项目的解决方法
- linux下查看某一个程序所使用的内存方法总结
- QsciScintilla的使用方法总结(一个很好用的文本编辑器库)
- MFC中GetDlgItemInt()方法的疑惑与使用总结
- [总结]在VS中编辑修改资源视图后保存时提示-cannot change standard mfc resources ,无法保存资源视图的一个解决方法
- MFC控件:listctrl使用方法总结
- MFC控件:listctrl使用方法总结
- mfc combo box 控件使用方法总结(转载)
- MFC中GetDlgItemInt()方法的疑惑与使用总结
- QsciScintilla的使用方法总结(一个很好用的文本编辑器库)
- MFC控件:listctrl使用方法总结
- MFC控件:listctrl使用方法总结
- 关于toast的使用方法总结,程序同一时刻只有一个toast,和toast的样式设置。
- 程序员面试金典——解题总结: 9.17中等难题 17.4编写一个方法,找出两个数字中最大的那一个。不得使用if-else或其他比较运算符。
- MFC中常用控件使用方法总结
- Listview控件使用SimpleAdapter适配器实现屏幕下滑增加一个item选项以及用到的方法总结
- MFC(VC,C++)下,OCX内使用另外一个OCX方法(内嵌OCX)-《零度屏幕录像软件》之笔记一
- MFC控件:listctrl使用方法总结