CBrush BackBrush(RGB(0xff, 0xff, 0xff)); //畫刷
memDC->FillRect(&clientRECT, &BackBrush);
//1、從應用的可執行檔案中加載已有的位圖資源,開始裝配背景關系
CBitmap mybitmap;
int Width = 1016; // 位圖寬度
int Height = 712; // 位圖高度
CString FiguerName;
FiguerName = "C:/Users/Administrator.PC-201812261346/Desktop/radar.bmp"; //位圖路徑
if(mybitmap.LoadBitmap(FiguerName)) //位圖裝載
{
BITMAP bm;
mybitmap.GetBitmap(&bm);// 獲得位圖的詳細資訊
CDC* pDC;
pDC = this->GetDC();
memDC = new CDC();
memDC->TextOut(20, 20, L"bmp resource have been loaded:");
memDC->CreateCompatibleDC(clientDC);//創建兼容的記憶體DC
memDC->SelectObject(&mybitmap);//記憶體DC選擇位圖物件
memDC->BitBlt(30, 30, Width, Height, memDC, 0, 0, SRCCOPY); //使用貼圖函式顯示記憶體DC中的位圖內容(用于從原設備中復制位圖到目標設備)
ReleaseDC(clientDC);
uj5u.com熱心網友回復:

注意單斜杠,,要么容易被轉義,要么容易被吃。改成雙斜杠。
uj5u.com熱心網友回復:
已經改成了雙斜杠,但是位圖還是沒有顯示出來,我設定斷點除錯了一下,if判斷那里沒有進去,所以圖片沒有顯示出來uj5u.com熱心網友回復:
LoadBitmapThe LoadBitmap function loads the specified bitmap resource from a module's executable file. This function has been superseded by theLoadImage function.
HBITMAP LoadBitmap(
HINSTANCE hInstance, // handle to application instance
LPCTSTR lpBitmapName // address of bitmap resource name
);
如
hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
uj5u.com熱心網友回復:
hImage = LoadImage (NULL, ofn.lpstrFile, IMAGE_BITMAP, 0, 0,LR_LOADFROMFILE | LR_CREATEDIBSECTION);
uj5u.com熱心網友回復:
COleStreamFile osf;//資料流載入exe資源
osf.CreateMemoryStream(NULL);
osf.Write(pImage, 1024 * 10);
osf.SeekToBegin();
CImage image;
if (SUCCEEDED(image.Load(osf.GetStream())))
{
auto pWnd = GetDlgItem(IDC_BMP);//這里是獲得控制元件句柄
CDC* pDC = pWnd->GetDC();
HDC hDC = pDC->m_hDC;
CRect rect_frame;
pWnd->GetClientRect(&rect_frame);
::SetStretchBltMode(hDC, HALFTONE);//拉伸
::SetBrushOrgEx(hDC, 0, 0, NULL);//起點
image.Draw(hDC, rect_frame);
ReleaseDC(pDC);//釋放picture控制元件的DC
}
uj5u.com熱心網友回復:
斜杠 路徑都是攔路虎
uj5u.com熱心網友回復:
CImage::Load()最簡單,要不就用API LoadImageuj5u.com熱心網友回復:
C:\\Users\\Administrator.PC-201812261346\\Desktop\\radar.bmpuj5u.com熱心網友回復:
可以斷點IF處,看下路徑是否正常轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/11987.html
標籤:基礎類
