VS2019 MFC Check-box Control 控件自绘继承Cbutton带图标

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

[注意]

        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
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值