如何在Windows窗口中插入圖片

然后顯示圖片需要寫在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;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容