WIN32 API C Загрузка изображения логотипа в диалоговом приложении - PullRequest
2 голосов
/ 04 марта 2012

Привет всем, я сделал прекрасное диалоговое приложение, которое сделано в C с использованием стандартного WIN32, однако я застрял на черри в момент торта, который добавляет мой баннер в приложение.

Я добавилпосле переключателя (msg)

case WM_CREATE :
    {
        HWND MainLogo= GetDlgItem(hwndDlg, IDC_IMAGE); 
        HBITMAP bitmap = (HBITMAP)LoadImage(NULL,"bitmap2.bmp", IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
        SendMessage(MainLogo,STM_SETIMAGE, (WPARAM)IMAGE_BITMAP,(LPARAM)bitmap);
    }
    break;

IDC_IMAGE - это заполнитель изображения, который я добавил в Visual Studio 2010, и растровое изображение загружено в мой файл ресурсов.

Этот код неправильныйместо?и это даже правильный способ загрузки изображения?

Заранее спасибо.

Рабочее исправление было заменить это в файле .rc

ICON IDI_ICON1,IDC_STATIC,14,14,21,20 

в вашем диалогересурс вместо CONTROL благодаря arx

Ответы [ 3 ]

3 голосов
/ 04 марта 2012

WM_CREATE слишком рано. Ваши дочерние элементы управления еще не созданы. Попробуйте WM_INITDIALOG вместо.

1 голос
/ 04 марта 2012

Вы передаете флаг LR_LOADFROMFILE, указывающий Windows искать файл с именем bitmap2.bmp.Вы говорите, что добавили растровое изображение к своим ресурсам, поэтому я предполагаю, что файл не найден.

Если вы хотите загрузить растровое изображение из ресурсов, передайте дескриптор экземпляра и идентификатор ресурса дляпервые два параметра и не указывайте флаг LR_LOADFROMFILE.

0 голосов
/ 04 марта 2012

Вы не можете сделать это с C, вам нужны активные элементы управления x или более новые.Я не могу сделать вообще.(исправлена ​​ошибка типа)

...