Как нарисовать изображение на окне?

Самым основным аргументом в пользу меня была бы потеря времени. Я сомневаюсь, что это могло быть завершено меньше чем через месяц или два. Почему проводят время, когда существуют soooo много хороших доступных систем отслеживания ошибок? Дайте мне пример функции, которую необходимо настроить, и не легко доступно.

я думаю, что хорошая система отслеживания ошибок должна отразить Ваш процесс разработки. Процесс очень заказной разработки ПО по сути плох для компании/команды. Самая гибкая польза методов Толпа или эти виды вещей и большинство систем отслеживания ошибок соответствует таким предложениям и методам. Не становитесь слишком бюрократическими об этом.

11
задан halfer 1 January 2019 в 19:21
поделиться

1 ответ

не совсем уверен, в чем ваша проблема: нарисуйте растровое изображение в форме, или вы хотите знать, как работать с различными форматами изображений, или и тем, и другим. В любом случае ниже приведен пример того, как вы можете загрузить растровое изображение и нарисовать его на форме:

HBITMAP hBitmap = NULL;

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

    switch (message)
    {
<...>

    case WM_CREATE:
        hBitmap = (HBITMAP)LoadImage(hInst, L"c:\\test.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
        break;
    case WM_PAINT:
        PAINTSTRUCT     ps;
        HDC             hdc;
        BITMAP          bitmap;
        HDC             hdcMem;
        HGDIOBJ         oldBitmap;

        hdc = BeginPaint(hWnd, &ps);

        hdcMem = CreateCompatibleDC(hdc);
        oldBitmap = SelectObject(hdcMem, hBitmap);

        GetObject(hBitmap, sizeof(bitmap), &bitmap);
        BitBlt(hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0, SRCCOPY);

        SelectObject(hdcMem, oldBitmap);
        DeleteDC(hdcMem);

        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        DeleteObject(hBitmap);
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

LoadImage загружает значок, курсор, анимированный курсор или растровое изображение. Подробности здесь

Для работы с различными форматами изображений вы можете использовать Windows Imaging Component (см. IWICBitmapDecoder ) или код отсюда Загрузка изображений JPEG и GIF или сторонние инструменты, например FreeImage или LeadTools

надеюсь, что это поможет, с уважением

27
ответ дан 3 December 2019 в 02:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: