[注意]
1>本例程用到了GDI绘图相关的库文件,因此要在项目.h文件内加导入GDI绘图库文件。如下图所示,本例项目解决方案.h文件为 "DoublePathWayReflowerController.h"。例程将颜色、字体颜色、字体大小等参数全部封装为标准接口函数以便调用。

2>在"DoublePathWayReflowerController.h"头文件内导入GDI绘图库。
#pragma once
#ifndef UNLONG_PTR
#define UNLONG_PTR unsigned long
#include<Gdiplus.h>
using namespace Gdiplus;
#pragma comment(lib,"gdiplus.lib")
#endif // !UNLONG_PTR
3> 在"DoublePathWayReflowerController.h"头文件PUBLIC处定义两个变量 UNLONG_PTR m_gdi;
Gdiplus::GdiplusStartupInput m_GdiplusStartupInput;
class CDoublePathWayReflowerControllerApp : public CWinApp
{
public:
CDoublePathWayReflowerControllerApp();
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
UNLONG_PTR m_gdi;
Gdiplus::GdiplusStartupInput m_GdiplusStartupInput;
DECLARE_MESSAGE_MAP()
};
extern CDoublePathWayReflowerControllerApp theApp;
4>在解决方案CPP文件CDoublePathWayReflowerControllerApp::CDoublePathWayReflowerControllerApp内初始化定义变量。
CDoublePathWayReflowerControllerApp::CDoublePathWayReflowerControllerApp()
{
// 支持重新启动管理器
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
m_gdi = 0;
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
5>BOOL CDoublePathWayReflowerControllerApp::InitInstance()中开启GDI绘图库支持
GdiplusStartup(&m_gdi, &m_GdiplusStartupInput, NULL);
BOOL CDoublePathWayReflowerControllerApp::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。 否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
// 初始化 OLE 库
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
AfxEn

本文档详细介绍了如何在Windows应用程序中使用GDI+绘图库,包括在头文件中引入库、初始化和关闭GDI+,以及创建自定义复选框控件的过程。控件支持设置文字颜色、背景颜色、字体大小,并实现了点击切换状态的功能。同时,展示了如何在对话框中添加和设置该控件的属性。
最低0.47元/天 解锁文章
1万+





