我是C ++的新手,我需要编辑C ++ softare。我需要用图像图标替换GUI按钮图形。我不确定,但也许在这部分代码中创建了Button:
BOOL CButtonDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetDlgItemText(IDC_BUTTON_LOAD,_T("Load"));
return TRUE;
}
当我查看代码时,我看到按钮启用了这样的代码:
m_dButtondlg.GetDlgItem(IDC_BUTTON_LOAD)->EnableWindow(true);
其中IDC_BUTTON_LOAD是整数constatnt。我在代码中找不到常量的任何其他用法,所以我不确定按钮是如何创建的。我只知道
m_dButtondlg.GetDlgItem(IDC_BUTTON_LOAD)
返回指向CWnd的指针
如何使用CWnd对象将图像附加到按钮?
编辑:我发现,用IDC_BUTTON_LOAD标识的按钮是CDIalog派生类的实例,而不是CButton。
答案 0 :(得分:0)
最好的方法是将CWnd指针转换为CButton,如下所示,
CButton * DlgButton = (CButton*)GetDlgItem(IDC_BUTTON_LOAD);
您可以轻松地在CButton对象上加载图像。
修改强>
在CButton上加载位图的代码,
CButton * DlgButton = (CButton*)GetDlgItem(IDC_BUTTON_LOAD);
DlgButton->ModifyStyle( 0, BS_ICON );
HICON hIcn= (HICON)LoadImage(
AfxGetApp()->m_hInstance,
MAKEINTRESOURCE(IDI_ICON3),
IMAGE_ICON,
0,0, // use actual size
LR_DEFAULTCOLOR
);
DlgButton->SetIcon( hIcn );