广告位招租

VC++调用Dll中的一个图标资源文件

动态链接库?调用Dll中的一个图标
1.建立MFC RegularDLL。工程名:VCDll25

2.插入Icon资源,ID为默认的 IDI_ICON1;查看resource.h文件(资源ID一定要记住)

//{{NO_DEPENDENCIES}}

// Microsoft Developer Studio generated include file.

// Used by VCDll25.rc

//

#define IDI_ICON1 1000

3.编译工程生成动态链接库”VCDll25.dll”。
4.创建测试对话框程序VCDemo,将VCDll25.dll考到工程目录下。(功能:通过点击OK按钮去改变默认对话框的Icon。)

5.文件VCDemoDlg.h中添加保存Dll(VCDll25.dll)的句柄m_hLib和保存Icon的句柄m_hLibIcon:

// CVCDemoDlg dialog




class CVCDemoDlg : public CDialog

{

// Construction

public:

CVCDemoDlg(CWnd* pParent = NULL); // standard constructor

protected:

HICON m_hLibIcon;

HINSTANCE m_hLib;

...

};


6文件VCDemoDlg.pp中函数OnInitDialog()加载Dll:
BOOL CVCDemoDlg::OnInitDialog()

{

CDialog::OnInitDialog();

...

m_hLib = AfxLoadLibrary("VCDll25.dll");




return TRUE; // return TRUE unless you set the focus to a control

}

7.向VCDemoDlg添加消息响应函数OnDestroy,然后释放Dll:

void CVCDemoDlg::OnDestroy()

{

CDialog::OnDestroy();

// TODO: Add your message handler code here

AfxFreeLibrary(m_hLib);

}

8.在对话框OnOK函数中,我们加载Icon图标,然后更换应用程序的图标

void CVCDemoDlg::OnOK()

{

// TODO: Add extra validation here

if (m_hLib != NULL)

{

AfxSetResourceHandle(m_hLib);

}

//ここでの1000はDLL中にイコンのハンドルである

m_hLibIcon = LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(1000));

if (m_hLibIcon != NULL)

{

m_hIcon = m_hLibIcon;

}

SetIcon(m_hIcon, TRUE); // Set big icon

SetIcon(m_hIcon, FALSE); // Set small icon




// CDialog::OnOK();

}

原文链接:https://www.exueyuan.top/831.html,转载请注明出处。

0
广告位招租

评论0

请先

广告位招租
易学手机界面分析工具上线!可用于安卓手机界面,模拟器界面分析,加速自动化开发!查看详情
没有账号? 注册  忘记密码?

社交账号快速登录

微信扫一扫关注
如已关注,请回复“登录”二字获取验证码

Warning: error_log(/www/wwwroot/exueyuan.top/wp-content/plugins/spider-analyser/#log/log-1923.txt): failed to open stream: No such file or directory in /www/wwwroot/exueyuan.top/wp-content/plugins/spider-analyser/spider.class.php on line 2900