LoadIcon应用分析

发布网友 发布时间:2024-10-23 22:07

我来回答

1个回答

热心网友 时间:2024-10-25 19:39

在MFC中,处理图标加载的方式略有不同,主要涉及CWinApp中的两个函数:LoadIcon和LoadStandardIcon。首先,你可以通过以下两种方式从资源中加载图标:

1. 使用资源名称:

HICON icon = AfxGetApp()->LoadIcon(L"IDI_ICON1");

或者

HICON icon = AfxGetApp()->LoadStandardIcon(L"IDI_QUESTION");

对于自定义图标资源,需要注意将整数资源ID转换为字符串,例如:

HICON icon = ::LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDC_MYICON));

其中`IDC_MYICON`是资源ID。

在对话框类CMyDlg中,图标加载通常在构造函数中进行,通过CDialog的基类初始化:

CMyDlg::CMyDlg(CWnd* pParent) : CDialog(CMyDlg::IDD, pParent)

{

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

`IDR_MAINFRAME`是资源文件中的图标标识。

如果你想在运行时更改图标,可以在OnInitDialog函数中手动设置:

void CMyDlg::OnInitDialog()

{

CDialog::OnInitDialog();

SetIcon(::LoadIcon(NULL,IDI_APPLICATION), FALSE); // 正常显示时的图标

SetIcon(::LoadIcon(NULL,IDI_APPLICATION), TRUE); // 关闭程序显示的图标

}

SetIcon函数的第二个参数决定图标在特定状态下的显示,TRUE表示关闭程序时的图标,FALSE则对应程序窗口的标题栏图标。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com