首頁>Club>
6
回覆列表
  • 1 # 梔子花的只若秋水

    首先你須要控制元件子類化,就是將控制元件對應的類派生出一個子類,然後用這個子類建立控制元件,在子類中新增WM_ERASEBKGND訊息,對應的::OnEraseBkgnd函式中用相容DC貼上準備好的圖片,如下

    BOOLXXXXXX::OnEraseBkgnd(CDC*pDC)

    {

    //TODO:在此新增訊息處理程式程式碼和/或呼叫預設值

    CRectrect;

    GetClientRect(rect);//得到當前區域大小

    CBitmapbitmap;

    bitmap.LoadBitmapW(IDB_BITMAP1);//建立點陣圖物件並附加點陣圖

    BITMAPbmp;

    bitmap.GetBitmap(&bmp);//為了得到附加的位置的長寬

    CDCCompatbleDC;

    CompatbleDC.CreateCompatibleDC(pDC);//建立相容DC

    CompatbleDC.SelectObject(bitmap);//點陣圖選入DC

    pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&CompatbleDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);//將相容dc貼到當前dc中並返回真,通知系統背景已經擦除成功

    returnTRUE

  • 2 # 使用者2458114238191884

    m_Bitmap.LoadBitmap("res\bitmap1.bmp");這種用法是錯誤的。

    LoadBitmap雖然有兩個過載函式

    BOOL LoadBitmap(

    LPCTSTR lpszResourceName

    );

    BOOL LoadBitmap(

    UINT nIDResource

    );

    但是這個兩個引數都是和圖片資源ID相關的,和硬碟上圖片名字沒有關係。

    所以你可以這樣用

    m_Bitmap.LoadBitmap(IDB_BITMAP1);

    m_Bitmap.LoadBitmap((LPCTSTR)IDB_BITMAP1);

    如果你非要以硬碟上圖片名字載入圖片的話,只能這樣用

    HBITMAP hbitmap=(HBITMAP)LoadImage(NULL,"bitmap1.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

  • 中秋節和大豐收的關聯?
  • 80釐米換算成褲子尺碼?