Вопрос № 46502: Здравствуйте, уважаемые эксперты.
Проблема такова. Есть растровый файл (.bmp) скажем на диске С (C:draw.bmp). Как мне средствами WinAPI отобразить рисунок
который содержится в даном файле в окне моего приложения?
Заранее благодарен за любую...
Вопрос № 46.502
Здравствуйте, уважаемые эксперты.
Проблема такова. Есть растровый файл (.bmp) скажем на диске С (C:draw.bmp). Как мне средствами WinAPI отобразить рисунок
который содержится в даном файле в окне моего приложения?
Заранее благодарен за любую предоставленую информацию.
Отправлен: 17.06.2006, 14:51
Вопрос задал: Юра (статус: 2-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: gitter
Здравствуйте, Юра!
Когда-то делал сам такое, но лучшее что я нашёл - это воспользовался структурой LPPICTURE и для нее воспользовался функцией
OleLoadPicture.
Кстати, приведенный в приложении пример работает не только для bmp но и для jpeg, jpg и др.
Вам надо будет один раз вызвать функцию LoadFromFile
а затем в Вашеё функции рисования вызвать DrawImage, передав туда контекст устройства и прямоугольник, в котором хотите чтобы
картинка отобразилась.
Удачи!
Приложение:
Ответ отправил: gitter (статус:
8-ой класс)
Ответ отправлен: 17.06.2006, 15:47
Отвечает: Vest
Здравствуйте, Юра!
Вот привожу простой код:
HBITMAP bmp = (HBITMAP)LoadImage(NULL, "c:\draw.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
if(bmp == NULL)
MessageBox("Could not load bmp!", "bmp1", MB_OK | MB_ICONEXCLAMATION);
...
где hdcWindow - вызывается с помощью HDC GetDC(HWND hWnd);
DrawState(hdcWindow, NULL, NULL, (LPARAM)bmp, 0, 0, 0, 0, 0, DST_BITMAP | DSS_NORMAL);
Однако можно также использовать функцию BitBlt, например для создания анимации, если нужен с ней пример - пиши, отвечу.
--------- Халявы не бывает
Ответ отправил: Vest (статус: 2-ой
класс)
Ответ отправлен: 18.06.2006, 11:06