VC实现图片拖拽及动画的实例
这篇文章介绍了VC实现图片拖拽及动画的实例,有需要的朋友可以参考一下
基础知识
1.PictureBox控件的使用
2.加载位图文件
1.通过文件路径获得位图句柄
代码如下:
//获得位图句柄
void CMovePictureDlg::GetHandleFromPath(CString path)
{
hBitmap= (HBITMAP)::LoadImage(AfxGetInstanceHandle(),path,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_LOADFROMFILE);//创建位图句柄
}
2.通过位图句柄创建位图对象并获得位图信息
代码如下:
//获取位图对象
void CMovePictureDlg::GetBitMap(HBITMAP hBitmap)
{
m_BitMap.Attach(hBitmap);//通过位图句柄创建位图对象
//获取图像信息
BITMAPINFOHEADER bminfo;
m_BitMap.GetObject(sizeof(bminfo),&bminfo);
//获取位图宽高
m_nBmpWidth=bminfo.biWidth;
m_nBmpHeight=bminfo.biHeight;
}
实现步骤:
1.创建一个对话框工程命名为MovePicture
2.打开对话框资源拖入一个PictureBox控件,设置ID为:IDC_PICTUREBOX,设置类型为:位图
3.拖入两个静态文本控件和两个编辑框控件,静态文本控件标题分别为:输入动量系数:、输入阻力系数:,编辑框ID分别为:IDC_EDITDV、IDC_EDITF,为IDC_EDITDV关联变量为:m_editDV,为IDC_EDITF关联变量为:m_editF
4.实现代码
头文件
代码如下:
// MovePictureDlg.h : header file
//
#include "PictureBox.h"
#if !defined(AFX_MOVEPICTUREDLG_H__6FFC1DDF_478C_43D6_B854_4D51E98D5E50__INCLUDED_)
#define AFX_MOVEPICTUREDLG_H__6FFC1DDF_478C_43D6_B854_4D51E98D5E50__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CMovePictureDlg dialog
class CMovePictureDlg : public CDialog
{
// Construction
public:
void GetBitMap(HBITMAP hBitmap);
void GetHandleFromPath(CString path);
void SetPicRect(int x,int y);
void SetSysPath();
CMovePictureDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CMovePictureDlg)
enum { IDD = IDD_MOVEPICTURE_DIALOG };
CEdit m_editF;
CEdit m_editDV;
/
精彩图集
精彩文章