MFC中资源对话框的切换类

源代码.cpp

 #include "SwitchResource.h"
    
    extern HINSTANCE g_hDllResInstance;
    
    CSwitchResource::CSwitchResource()
    {
    	m_hSaveResInstance = AfxGetResourceHandle();
    	AfxSetResourceHandle(g_hDllResInstance);
    }
    CSwitchResource::~CSwitchResource(void)
    {
    	AfxSetResourceHandle(m_hSaveResInstance);
    }
    
    HINSTANCE CSwitchResource::GetDllResourceIns()
    {
    	return g_hDllResInstance;
    }

头文件.h

#pragma once
// 使用说明:
// 需要在dll的入口处添加g_hDllResInstance的定义,形如在DllMain中添加
//	HINSTANCE g_hDllResInstance = NULL;
//	DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
//	{
//		g_hDllResInstance = hInstance;
//		...
//	}

class CSwitchResource
{
public:
	CSwitchResource();
	virtual ~CSwitchResource(void);
	static HINSTANCE GetDllResourceIns();
private:
	HINSTANCE m_hSaveResInstance;
};

使用实例:在winapp的单实例初始化函数加入资源定义

// 唯一的一个 CTestWinApptheApp对象
CTestWinApptheApp;
// CTestWinApptheApp初始化
HINSTANCE g_hDllResInstance = NULL;
BOOL CTestWinApptheApp::InitInstance()
{
	CWinApp::InitInstance();

	g_hDllResInstance = theApp.m_hInstance;

	return TRUE;
}

猜你喜欢

转载自blog.csdn.net/m0_37251750/article/details/88285465