Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Как вставить картинку в окно Win32Api


Автор: boobie 13.11.2011, 13:36
Начал изучение WinApi на С++. Научился создавать окно, иконку .ехе-шника, использовать разные курсоры... И застопорился на выводе картинки в окне... Как это сделать? С помощью winapi? Можно ли обойтись без него (есть ли альтернатива?)?

Желательно рабочий пример  smile  , нормальная литература (я искал по winapi - ничего дельного не нашел... может плохо искал...) с примерами тоже нужна!

П.С. Блин, почему все так не любят Паскаль  smile ? Там вывод картинки делался парой строчек с указанием ее адреса smile ....

Автор: borisbn 13.11.2011, 14:28
http://lmgtfy.com/?q=winapi+draw+image&l=1

Цитата(boobie @  13.11.2011,  13:36 Найти цитируемый пост)
Блин, почему все так не любят Паскаль   ? Там вывод картинки делался парой строчек с указанием ее адреса  

1) Ты, скорее всего, имел в виду не Паскаль, а VCL. VCL доступен и в С++ Builder'е
2) Кто тебе сказал, что народ не любит паскаль ? Посмотри, на чём сделаны Skype, Total Commander, QIP, etc.

Автор: Dem_max 13.11.2011, 16:46
Цитата

Посмотри, на чём сделаны Skype, Total Commander, QIP, etc.

И много много других популярных программ, лишь бы руки из правильного места росли.
Но в данном случае, Builder обделен, и извращен. 

Автор: vol4ek 13.11.2011, 17:00
чем это Вас С++ не устраивает.

Вот делал под MFC

Код


void CbitDlg::OnPaint()
{
    PAINTSTRUCT pn;
    CDC * pDC;
    pDC = CbitDlg::BeginPaint(&pn);
    CBitmap bit;
    CDC cd;
    bit.LoadBitmapW(IDB_BITMAP1);
    cd.CreateCompatibleDC(pDC);
    cd.SelectObject(&bit);
    pDC->BitBlt(0,0,1900,1080,&cd,0,0,SRCCOPY);  // позиция X, Y, разрешение ширина, высота
    CbitDlg::BeginPaint(&pn);



    ........




}


Добавлено через 8 минут и 12 секунд
Рихтер Дж.  Windows для профессионалов создание эффективных Win32-приложений
Работа с файлами в Win32 API
Проектирование интерфейса пользователя средствами WIN32 API
Ганеев. Проектирование интерфейса пользователя средствами WIN32 API
Азбука программирования в Win32 API
Windows для профессионалов. Создание эффективных Win32 приложений [Джеффри Рихтер]
Win32. Основы программирования[К.Г. Финогенов]
Win32 API. Эффективная разработка приложений
Visual C++ Разработка Windows-приложен помощью MFC и API-функций В.Давыдов 

названия книг. гугл в помощь


Автор: bsa 13.11.2011, 20:29
Цитата(boobie @  13.11.2011,  14:36 Найти цитируемый пост)
Там вывод картинки делался парой строчек с указанием ее адреса

Как-то так:
Код
QLabel *img=new QLabel(QLatin1String("<img src=\"file://myimage.jpg\"/>"));

Автор: boobie 14.11.2011, 04:51
Спасибо!

А про Паскаль... Не, мне нравится PascalABC.Net. Там это делалось так:
Цитата

uses GraphABC,ABCObjects;
var x:pictureabc;
***
x:=pictureabc.create(x,y,'***\***.bmp');
***

Автор: borisbn 14.11.2011, 07:10
А с каких пор GraphABC,ABCObjects и pictureabc входят в язык Паскаль ? 

Автор: Alexeis 14.11.2011, 08:52
Цитата(boobie @  13.11.2011,  14:36 Найти цитируемый пост)
Научился создавать окно, иконку .ехе-шника, использовать разные курсоры... И застопорился на выводе картинки в окне... Как это сделать?

  Обрабатываем сообщение WM_PAINT для нужного нам окна и вызываем BitBlt/StretchBlt и т.д. для отрисовки битмапа на hDC окна. Кстати hDC не забываем получить перед отрисовкой и вернуть системе после отрисовки (BeginPaint/EndPaint или GetDC/ReleaseDC)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)