Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2013, 11:43   #1
temik612
Пользователь
 
Регистрация: 01.07.2012
Сообщений: 21
По умолчанию Создание формы в винапи

создаю форму в вин апи и мне надо загрузить в форму картинку..
сколько попыток только 1 получилось и то он берёт из компьютера а не из своей памяти =(
пишу на висуал студии ...
Код:
WNDCLASSEX form = 
{
sizeof(WNDCLASSEX),
CS_CLASSDC,
FormMsg,
0L,
0L,
GetModuleHandle(NULL),
LoadIcon(0, MAKEINTRESOURCE(0)),//как тут загрузить свою иконку?
NULL,//курсор
CreateSolidBrush( RGB( 255,255,255 )),//фон формы
NULL,
"Nuked",
NULL			
		};

Последний раз редактировалось Stilet; 23.03.2013 в 12:32.
temik612 вне форума Ответить с цитированием
Старый 23.03.2013, 13:17   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Для загрузки файла из компа вроде функция LoadImage. А выводить её в окно можно обрабатывая сообщение WM_PAINT
Код:
HDC hDC = GetDC(HWND окна)
HDC hMemDC = CreateCompatibleDC(hDC); // Создание совместимого контекста
SelectObject(hMemDC,Описатель картинки, полученный вызовом ф-ции LoadImage); // Помещение картинки в контекст
BitBlt(hDC,x,y,w,h,hMemDC,0,0,SRCCOPY); // Вывод содержимого совместимого контекста в основной
// x,у - координаты верхнего левого угла куда будет выводиться изображение
// w,h - размеры изображения
DeleteDC(hMemDC);
ReleaseDC(hWnd,hDC);
Если файл с расширением .iso, то вывести можно с помощью функции DrawIcon

Если картинка находится в ресурсах .exe, то
Код:
HBITMAP hBitmap = LoadBitmap(HINSTANCE модуля,MAKEINTRESOURCE(ID - ресурса));
HDC hDC = GetDC(HWND окна)
HDC hMemDC = CreateCompatibleDC(hDC);
SelectObject(hMemDC,hBitmap); 
BitBlt(hDC,x,y,w,h,hMemDC,0,0,SRCCOPY);
DeleteDC(hMemDC);
ReleaseDC(hWnd,hDC);
Если нужно загрузить иконку для отображения в левом верхнем углу приложения, то:
Код:
WNDCLASS wc;
....
wc.hIcon = LoadIcon(0,MAKEINTRESOURCE(ID ресурса));
...
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.

Последний раз редактировалось kineziz; 23.03.2013 в 13:21.
kineziz вне форума Ответить с цитированием
Старый 23.03.2013, 14:21   #3
temik612
Пользователь
 
Регистрация: 01.07.2012
Сообщений: 21
По умолчанию

да я уже просмотрел весь гугл но как сделать для картинки ID не понял =(
можете ли вы показать пример как присвоить ID
temik612 вне форума Ответить с цитированием
Старый 23.03.2013, 15:13   #4
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

...........................
ID задается автоматически, вы только задаете имя константы. Да и не забудьте включить .h файл ресурсов (#include <Имя файла>)
Изображения
Тип файла: jpg 1.jpg (44.5 Кб, 144 просмотров)
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.

Последний раз редактировалось kineziz; 23.03.2013 в 15:15.
kineziz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Application.ExeName на винапи VVVadim Общие вопросы Delphi 17 14.06.2012 17:29
что значит - программировать на чистом винапи? ромик0 Свободное общение 38 25.05.2011 20:47
Создание карты на Винапи konstahntin Помощь студентам 0 19.05.2011 15:19
Создание формы в C# Vedmac1662 Помощь студентам 0 15.12.2009 17:41
Инфа по ВинАПИ mogul82 Win Api 6 28.10.2008 08:16