Кто-нибудь может сказать мне, как использовать растровое изображение в качестве кнопки, на самом деле я могу создать статический элемент управления и установить его изображение, но дело в том, что я не знаю, как использовать его как кнопку, я использую C++ win32. Это, как я создания растрового изображенияКак сделать кнопку clickable в C++ win32
Код:
HWND Profile_Stuff(HWND hWnd, HINSTANCE hInst)
{
HWND Profile_Pic;
Profile_Pic = CreateWindow("STATIC", NULL, SS_BITMAP|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 5,5,33,33, hWnd, NULL, hInst, NULL);
HBITMAP hBmp = (HBITMAP)LoadImage(NULL, "camera1.jpg", IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if(hBmp == NULL){
MessageBox(NULL, "Error while loading image", "Error", MB_OK|MB_ICONERROR);
}
SendMessage(Profile_Pic, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmp);
return 0;
}
затем я вызвать функцию в главном окне WM_CREATE обработчика сообщений, который создает его успешно, теперь я не знаю, чтобы использовать его в качестве кнопки, например, у нас есть фотография рекламы в нижней части приложения бит-торрент. Я использую визуальную студию C++ с win32 api.
Вы имеете в виду, что я могу создать обычную кнопку с помощью функции CreateWindow() или CreateWindowEx(), тогда я могу указать стиль BS_OWNERDRAW на нее, чтобы сделать программа понимает, что к этой кнопке будут внесены изменения. я прав? – Wajid
Должен ли я сделать это так? – Wajid
@Wajid: Точно вызовите 'CreateWindow [Ex]' с классом окна 'WC_BUTTON' и передайте также стиль' 'BS_OWNDERDRAW''. Код в связанном с ответом просто делает это, за исключением того, что он не вызывает 'CreateWindow [Ex]' напрямую, но использует скрипт ресурсов, который анализируется и переводится в соответствующие вызовы API диспетчером диалогов. – IInspectable