C ++ Как использовать объект CWnd * для загрузки изображений?

Я абсолютно новичок в C ++, и мне нужно отредактировать C ++. Мне нужно заменить графические кнопки графического интерфейса на значки изображений. Я не уверен, но, возможно, 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 — это целочисленное значение. Я не могу найти никакого другого использования константы в коде, поэтому я не уверен, как кнопка была создана. Я просто знаю что

 m_dButtondlg.GetDlgItem(IDC_BUTTON_LOAD)

возвращает указатель на CWnd

Как я могу прикрепить изображения к кнопке, используя объект CWnd?

РЕДАКТИРОВАТЬ: я обнаружил, что кнопка, идентифицированная с IDC_BUTTON_LOAD, является экземпляром производного класса CDIalog, а не CButton.

1

Решение

Лучший способ заключается в том, что вы конвертируете свой указатель 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 );
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]