

第一張是切片后的原影像
用LoadImage和BitBlt繪制到表單上就如圖2一樣質量下降了
問一下大佬這倆函式一定會使影像下降嗎。。有沒有解決辦法
uj5u.com熱心網友回復:
再加一個問題這個影像被繪制后,不會重繪到表單上
要拖一下視窗手動重繪才顯示。
windowupdate redrawwindow movewindow setwindowpos 都試過了無效
求大佬拯救
uj5u.com熱心網友回復:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
//加載位圖
HBITMAP hBmp = (HBITMAP)LoadImage(NULL, _T("C:\\TEMP\\a.bmp"),
IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_DEFAULTCOLOR);
if(hBmp != NULL)
{
//獲取位圖資訊
BITMAP bmInfo;
GetObject(hBmp, sizeof(bmInfo), &bmInfo);
//創建&選入位圖
HDC hMemDC = CreateCompatibleDC(hdc);
HGDIOBJ hOldBmp = SelectObject(hMemDC, hBmp);
//貼圖
BitBlt(hdc, 0, 0, bmInfo.bmWidth, bmInfo.bmHeight, hMemDC, 0,0, SRCCOPY);
//恢復位圖
SelectObject(hMemDC, hOldBmp);
//結束清理
DeleteDC(hMemDC);
DeleteObject(hBmp);
}
EndPaint(hWnd, &ps);
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
default:
{
break;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
uj5u.com熱心網友回復:
BitBlt最后的一個引數,換一下試試第二個問題,是不是在PAINT訊息中畫的影像?
uj5u.com熱心網友回復:
在貼圖之前呼叫:SetStretchBltMode(hDC, COLORONCOLOR); // 防止顏色失真
uj5u.com熱心網友回復:
看下你這段的源代碼uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
你是在哪里加載和繪制影像的?
uj5u.com熱心網友回復:
或許試試貼圖前加上dc.SetStretchBltMode(HALFTONE);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/21871.html
標籤:界面
