資源簡介
VS2010下,按ctrl鍵bmp位圖定時移動,按->鍵齒輪圖快速移動。

代碼片段和文件信息
#include?“stdafx.h“
#include?“BitmapOpt.h“
#include?
/****************************************************************************
獲得rect指定的圖片塊用完此函數返回的HBITMAP句柄后要調用::Deleteobject()刪除句
FilePath:為源圖片路徑
rect:為要剪切的圖形尺寸
****************************************************************************/
HBITMAP?CBitmapOpt::GetBitmap(char*?FilePathRECT?*?rect)
{
HDC?hScrDChMemDC;???//屏幕設備描述表?和?內存設備描述表??
HBITMAP??hBitmaphOldBitmap;?//hBitmap位圖句柄用來保存rect所對應的圖片????
hMemDC=CreateCompatibleDC(NULL);??//創建內存設備描述表
int?RectWidth=rect->right-rect->left;?//獲得屏幕寬度
int?RectHeight=rect->bottom-rect->top;?//獲得屏幕高度
//獲取源圖片的句柄
HBITMAP?SrcBitmap;
SrcBitmap=(HBITMAP)LoadImage(NULL??//應用程序實例???
FilePath?????//路徑
IMAGE_BITMAP????
0????????//如果不置0則此參數指定bitmap的寬(位圖被拉伸)??
0????????//如果不置0則此參數指定bitmap的高(位圖被拉伸)??
LR_LOADFROMFILE|LR_CREATEDIBSECTION|LR_DEFAULTSIZE);
//把句柄和hSrcDC關聯
hScrDC=CreateCompatibleDC(NULL);??//創建內存設備描述表
Selectobject(hScrDCSrcBitmap);??
hBitmap=CreateCompatibleBitmap(hScrDCRectWidthRectHeight);???//創建一個與屏幕設備描述表兼容的位圖用完記得調用::Deleteobject(hBitmap);
hOldBitmap=(HBITMAP)Selectobject(hMemDChBitmap);?????//把位圖選進內存設備描述表
BitBlt(hMemDC00RectWidthRectHeighthScrDCrect->leftrect->topSRCCOPY);???//把rect指定的圖塊拷貝到內存設備描述表
hBitmap=(HBITMAP)Selectobject(hMemDChOldBitmap);?????//把圖片放到hBitmap中
DeleteDC(hScrDC);?
DeleteDC(hMemDC);???
return?hBitmap;?
}
//保存位圖
int?CBitmapOpt::SaveBitmap(HBITMAP???hBitmap???LPSTR???lpFileName)???
{???
//lpFileName???為位圖文件名???
HDC???????????hDC;?????????????????????
//設備描述表???
int???????????iBits;???????????????
//當前顯示分辨率下每個像素所占字節數???
WORD?????????wBitCount;?????????
//位圖中每個像素所占字節數???
//定義調色板大小,???位圖中像素字節大小???,?????位圖文件大小???,???寫入文件字節數???
DWORD???????????????????????dwPaletteSize=0dwBmBitsSizedwDIBSize???dwWritten;???
BITMAP?????????????????????Bitmap;???????????????????
//位圖屬性結構???
BITMAPFILEHEADER???????bmfHdr;???????????????????
//位圖文件頭結構???
BITMAPINFOHEADER???????bi;???????????????????????????
//位圖信息頭結構?????
LPBITMAPINFOHEADER???lpbi;???????????????????????
//指向位圖信息頭結構???
HANDLE?????????????????????fh???hDib???hPal;???
HPALETTE???????????hOldPal=NULL;???
//定義文件,分配內存句柄,調色板句柄???
//計算位圖文件每個像素所占字節數???
iBits=24;???
if???(iBits???<=???1)???
wBitCount???=???1;???
else???if???(iBits???<=???4)???
wBitCount???=???4;???
else???if???(iBits???<=???8)???
wBitCount???=???8;???
else???if???(iBits???<=???32)???
wBitCount???=???24;???
//計算調色板大小???
if???(wBitCount???<=???8)???
dwPaletteSize=(1<
//設置位圖信息頭結構???
Getobject(hBitmap???sizeof(BITMAP)???(LPSTR)&Bitmap);???
bi.biSize?????????????????????????=???sizeof(BITMAPINFOHEADER);???
bi.biWidth???????????????????????=???Bitmap.bmWidth;???
bi.biHeight?????????????????????=Bitmap.bmHeight;???
bi.biPlanes?????????????????????=???1;???
bi.biBitCount???????????????????=???wBitCount;???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6179??2015-03-10?10:44??TestGdipButton\TestGdipButton\TestGdipButton.vcxproj
?????文件????????143??2015-03-10?10:42??TestGdipButton\TestGdipButton\TestGdipButton.vcxproj.user
?????文件???????2778??2015-03-10?10:44??TestGdipButton\TestGdipButton\TestGdipButton.vcxproj.filters
?????文件???????3146??2015-03-10?10:42??TestGdipButton\TestGdipButton\ReadMe.txt
?????文件???????1368??2011-07-07?18:15??TestGdipButton\TestGdipButton\TestGdipButton.h
?????文件???????1833??2011-07-07?18:15??TestGdipButton\TestGdipButton\TestGdipButton.cpp
?????文件???????1888??2015-03-10?11:00??TestGdipButton\TestGdipButton\TestGdipButtonDlg.h
?????文件???????8952??2015-03-10?11:03??TestGdipButton\TestGdipButton\TestGdipButtonDlg.cpp
?????文件???????1146??2011-07-07?18:15??TestGdipButton\TestGdipButton\stdafx.h
?????文件????????234??2015-03-10?10:42??TestGdipButton\TestGdipButton\targetver.h
?????文件????????254??2011-07-07?18:15??TestGdipButton\TestGdipButton\stdafx.cpp
?????文件???????1367??2015-03-05?16:40??TestGdipButton\TestGdipButton\Resource.h
?????文件???????6602??2015-03-09?09:42??TestGdipButton\TestGdipButton\TestGdipButton.rc
?????文件????????406??2008-06-10?18:57??TestGdipButton\TestGdipButton\res\TestGdipButton.rc2
?????文件???????1078??2008-06-10?18:57??TestGdipButton\TestGdipButton\res\TestGdipButton.ico
?????文件?????612892??2008-06-11?11:41??TestGdipButton\TestGdipButton\res\Jules-Asner.bmp
????..A.SH.?????29184??2011-06-22?18:57??TestGdipButton\TestGdipButton\res\Thumbs.db
?????文件??????11278??2008-06-11?11:48??TestGdipButton\TestGdipButton\res\exit.png
?????文件??????31970??2008-06-11?06:28??TestGdipButton\TestGdipButton\res\GEAR2.png
?????文件??????11365??2008-06-10?21:30??TestGdipButton\TestGdipButton\res\pause.png
?????文件??????11101??2008-06-10?21:30??TestGdipButton\TestGdipButton\res\play.png
?????文件?????505201??2015-03-02?10:51??TestGdipButton\TestGdipButton\res\background.png
?????文件???????1270??2009-08-31?02:32??TestGdipButton\TestGdipButton\res\bitmap1.bmp
?????文件????2880054??2015-03-02?11:21??TestGdipButton\TestGdipButton\res\background.bmp
?????文件???????5226??2004-12-18?11:27??TestGdipButton\TestGdipButton\res\tile_B.png
?????文件???????6796??2015-03-09?15:45??TestGdipButton\TestGdipButton\BitmapOpt.cpp
?????文件????????229??2015-03-09?15:41??TestGdipButton\TestGdipButton\BitmapOpt.h
?????文件???????2822??2011-07-07?18:15??TestGdipButton\TestGdipButton\CGdiPlusBitmap.h
?????文件??????17500??2011-07-07?18:15??TestGdipButton\TestGdipButton\GdipButton.cpp
?????文件???????3364??2011-07-07?18:15??TestGdipButton\TestGdipButton\GdipButton.h
............此處省略17個文件信息
評論
共有 條評論