IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Программирвоание в WinAPI (https://www.imho.ws/showthread.php?t=89414)

Larry 18.07.2005 10:52

Программирвоание в WinAPI
 
Кто-нибудь программировал на чистом WinAPI?

У меня есть программа на Delphi. Я хочу сэкономить ресурсы компьютера при работе программы и полностью портировать ее на WinAPI. Мне нужно спроектировать форму (с этим я справился) и положить на ее фон рисунок. Подскажите, как это можно сделать?

Заранее благодарен за ответ...

hizel 28.07.2005 12:38

На сколько я помню: получай HDC от HWND типа hdc=GetDC(hwnd) и уже в нем(hdc) рисуешь, например кидаешь туда Bitmap, с помощью функции BitBlt или подобной. Там еще все зависит от того где у тебя рисунок лежит и в каком формате и на каких виндовсах должно работать.

EjikVTumane 31.07.2005 08:53

Чтоб положить рисунок на фон надо переопределить обработку сообщения WM_ERASEBKGND.

На сях это выглядит так:

Код:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        int wmId, wmEvent;
        PAINTSTRUCT ps;
        HDC hdc;

        switch (message)
        {
        // ... пропущена обработка всякой другой фигни
        case WM_ERASEBKGND:
        {
                RECT clientRect;
                hdc = GetDC(hWnd);
                GetClientRect(hWnd, &clientRect);
                HDC MainFrameDC;
                MainFrameDC = CreateCompatibleDC(NULL);
                SelectObject(MainFrameDC, MainFrame);
                BitBlt(hdc, 0, 0, clientRect.right, clientRect.bottom, MainFrameDC, 0, 0, SRCCOPY);
                ReleaseDC(hWnd, hdc);
                DeleteDC(MainFrameDC);
        return 0;
        }
        // ... пропущена обработка всякой другой фигни
        }
        return 0;
}

Что-то в этом духе.


Часовой пояс GMT +4, время: 23:46.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.