- HDC hCurDC;
- HDC hMemDC;
- HBITMAP hBitmap,hOldBitmap;
-
-
- hCurDC=GetWindowDC(NULL);
-
- hMemDC=CreateCompatibleDC(hCurDC);
-
- hBitmap=CreateCompatibleBitmap(hCurDC,800*2,480);
-
- hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap);
-
- BitBlt(hMemDC, 0, 0, 800, 480, hCurDC, 0, 0,SRCCOPY);
-
- RECT rect={800,0,1600,480};
- DrawImage(hMemDC,L"http://NAND2//back.bmp",rect);
-
-
- for(DWORD dwPos = 0; dwPos <= 800;)
- {
-
- BitBlt(GetDC(hWnd),
- 0,
- 0,
- 800,
- 480,
- hMemDC,
- dwPos,
- 0,
- SRCCOPY);
- dwPos+=100;
- };
-
- SelectObject(hMemDC,hOldBitmap);
- DeleteObject(hBitmap);
- DeleteDC(hMemDC);
基于以上原理,還可以實現(xiàn)界面的從左至右,從上至下以及從下至上的滑動顯示。下面的代碼實現(xiàn)了界面從屏幕頂端往底端滑動效果。
- HDC hDC;
- HDC hMemDC;
- HBITMAP hBitmap,hOldBitmap;
-
-
- hDC=GetDC(hWnd);
-
- hMemDC=CreateCompatibleDC(hDC);
-
- hBitmap=CreateCompatibleBitmap(hDC,320,480);
-
- hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap);
-
- RECT rect={0,0,320,480};
- DrawImage(hMemDC,L"http://NAND2//clock.jpg",rect);
-
-
- for(DWORD dwPos = 480; dwPos > 0;)
- {
-
- BitBlt(GetDC(hWnd),
- (800-320)/2,
- 0,
- (800-320)/2+320,
- 480,
- hMemDC,
- 0,
- dwPos,
- SRCCOPY);
- dwPos-=20;
- };
-
- SelectObject(hMemDC,hOldBitmap);
- DeleteObject(hBitmap);
- DeleteDC(hMemDC);
界面從屏幕頂端往底端滑動顯示效果圖:
DrawImage實現(xiàn)代碼:
-
-
-
-
-
-
-
-
-
-
-
- void DrawImage(HDC hdc,LPCWSTR iconPath,RECT rect)
- {
- IImage * m_pImage=NULL;
- IImagingFactory * m_pImagingFactory=NULL;
-
- HRESULT hr;
-
-
- if (FAILED(hr = CoInitializeEx(NULL, COINIT_MULTITHREADED)))
- {
- goto END;
- }
-
-
- if(FAILED(hr = CoCreateInstance(CLSID_ImagingFactory,NULL,CLSCTX_INPROC_SERVER,IID_IImagingFactory,(void**) &m_pImagingFactory)))
- {
- goto END;
- }
-
-
- if(FAILED(hr = m_pImagingFactory->CreateImageFromFile(iconPath, &m_pImage)))
- {
- goto END;
- }
-
- if(FAILED(hr = m_pImage->Draw(hdc,&rect,NULL)))
- {
- goto END;
- }
-
- END:
-
-
- if(m_pImage != NULL)
- {
- m_pImage->Release();
- m_pImage = NULL;
- }
-
- if(m_pImagingFactory != NULL)
- {
- m_pImagingFactory->Release();
- m_pImagingFactory = NULL;
- }
-
- CoUninitialize();
- }
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。