Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Loadimage - не работает.

36K
17 июня 2008 года
mibz1
11 / / 17.06.2008
Вот кусок кода:
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
HBITMAP hBmp;
//HDC hdcMem = CreateCompatibleDC(hdc);
HDC hdcMem;
switch (message)
{
case WM_CREATE:

hBmp = (HBITMAP)LoadImage(NULL, L"1.bmp", IMAGE_BITMAP, 500, 500, LR_LOADFROMFILE);
break;

.......

case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
hdcMem = CreateCompatibleDC(hdc);
SelectObject(hdcMem, hBmp);
BitBlt(hdc,0,0,500,500, hdcMem, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps);
break;
При компиляции появляется окно с ошибкой:
Debug Error
Run-Time Check Failure #3 The variable 'hBmp' is being used without being defined
и кнопки прервать, повторить, отмена, помогите разобраться в чем ошибка начинающему...
Основная задача загрузить рисунок.
36K
17 июня 2008 года
mibz1
11 / / 17.06.2008
Все разобрался,
hBmp = (HBITMAP)LoadImage(NULL, L"1.bmp", IMAGE_BITMAP, 500, 500, LR_LOADFROMFILE);
нужно было поставить в WN_PAINT

топик можно закрыть)
562
18 июня 2008 года
tarekon
175 / / 19.08.2003
В WM_PAINT :eek: ? Ну удачи... Это сообщение может приходить раз .дцать в секунду. Производительность сильно упадет.

Ошибка компиляции возникает из-за того, что компилятор не может быть уверен, что переменная hBmp инициализирована.

Если возможно, просто сделай эту переменную глобальной.
38K
16 июля 2008 года
sneg
13 / / 16.07.2008
думаю
 
Код:
static HBITMAP hBmp=NULL;

спасет революцию.
38K
16 июля 2008 года
sneg
13 / / 16.07.2008
И у меня следующий вопросик (чтоб новую тему не создавать)
 
Код:
HBITMAP bmp = (HBITMAP)LoadImage(NULL,TEXT("d:\image.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
SIZE sz;
GetBitmapDimensionEx(bmp,&sz);    // sz.cx=0; sz.cy=0;
HDC dc = CreateCompatibleDC(NULL);
SelectObject(dc,bmp);

Почему возвращаются нулевые размеры битмапки, хотя LoadImage грузит нормально (bmp!=0) ?
14
16 июля 2008 года
Phodopus
3.3K / / 19.06.2008
потому что
Цитата:
The retrieved dimensions must have been set by the SetBitmapDimensionEx function


Цитата:
The function returns a data structure that contains fields for the height and width of the bitmap, in .01-mm units. If those dimensions have not yet been set, the structure that is returned will have zeroes in those fields



Эти размеры задаются в мм и исключительно для использования поддерживаемыми приложениями, а общем случае не используются

38K
16 июля 2008 года
sneg
13 / / 16.07.2008
благодарям за вразумление!
14
17 июля 2008 года
Phodopus
3.3K / / 19.06.2008
Всегда пожалуйста! :)
Можете репутации добавить.. :rolleyes:
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог