然后顯示圖片需要寫在WM_PAINT消息里:
首選使用函數(shù)LoadImage載入位圖或圖標(biāo)。?
hb_icon = (HBITMAP)::LoadImage(hInst, _TEXT("icon.bmp"), IMAGE_BITMAP, 36, 36, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
????HDC hMemDC = CreateCompatibleDC(hdc); //創(chuàng)建內(nèi)存DC
????::SelectObject(hMemDC, hb_icon); //把位圖選進(jìn)內(nèi)存DC
????BitBlt(hdc, 0, 0, 35, 35, hMemDC, 0, 0, SRCCOPY); //內(nèi)存DC映射到屏幕DC
列子
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
? ? switch (message)
? ? {
? ? case WM_COMMAND:
? ? ? ? {
? ? ? ? ? ? HWND wmId = (HWND)LOWORD(lParam);
? ? ? ? ? ? switch(LOWORD(wParam)){
? ? ? ? ? ? case IDM_ABOUT:
? ? ? ? ? ? ? ? DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case IDM_EXIT:
? ? ? ? ? ? ? ? DestroyWindow(hWnd);
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? return DefWindowProc(hWnd, message, wParam, lParam);
? ? ? ? ? ? }
break;
? ? ? ? }
? ? case WM_PAINT:
? ? ? ? {
? ? ? ? ? ? PAINTSTRUCT ps;
? ? ? ? ? ? HDC hdc = BeginPaint(hWnd, &ps);
? ? ? ? su_icon = (HBITMAP)::LoadImage(hInst, _TEXT("icon.bmp"), IMAGE_BITMAP, 36, 36, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
? ? ? ? ? ? //繪制圖標(biāo)
? ? ? ? ? ? HDC hMemDC = CreateCompatibleDC(hdc); //創(chuàng)建內(nèi)存DC
? ? ? ? ? ? ::SelectObject(hMemDC, su_icon); //把位圖選進(jìn)內(nèi)存DC
? ? ? ? ? ? BitBlt(hdc, 10, 75, 35, 35, hMemDC, 0, 0, SRCCOPY); //內(nèi)存DC映射到屏幕DC
? ? ? ? ? ? EndPaint(hWnd, &ps);
? ? ? ? ? ? break;
? ? ? ? }
? ? case WM_DESTROY:
? ? ? ? PostQuitMessage(0);
? ? ? ? break;
? ? default:
? ? ? ? return DefWindowProc(hWnd, message, wParam, lParam);
? ? }
? ? return 0;
}