vidrio ventanas ventana una teatro puerta lineas lapiz dibujos dibujar cómo cortinas como cama abierta windows winapi createwindow

windows - ventanas - dibujar lineas en c#



Cómo dibujar una imagen en una ventana? (2)

no estoy seguro de cuál es su problema: dibuje un mapa de bits en el formulario, o si desea saber cómo trabajar con varios formatos de imagen, o ambos. De todos modos, a continuación, se muestra un ejemplo de cómo puede cargar un mapa de bits y dibujarlo en el formulario:

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 carga un icono, cursor, cursor animado o mapa de bits. Detalles aquí

Para trabajar con varios formatos de imágenes puede usar Windows Imaging Component (vea IWICBitmapDecoder ) o código desde aquí Cargando imágenes JPEG y GIF o herramientas de terceros como FreeImage o LeadTools

Espero que esto ayude, saludos

He creado una ventana con createwindow () api usando VS2005 en C ++ en Windows Vista

Mi requisito es dibujar una imagen (de cualquier formato) en esa ventana. No estoy usando ningún MFC en esta aplicación.

Por favor, ayúdame con algún fragmento de código.


void LoadScreen(HWND hWnd) { RECT rect; HDC hdc = GetDC(hWnd); HBRUSH brush = CreatePatternBrush((HBITMAP)LoadImage(NULL, L"file.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)); GetWindowRect(hWnd, &rect); FillRect(hdc, &rect, brush); DeleteObject(brush); ReleaseDC(hWnd, hdc); }