• 大小: 3.6MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-27
  • 语言: C/C++
  • 标签: MFC  位图  定时移动  

资源简介

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个文件信息

评论

共有 条评论