mfc拖拉文件

将bitmap文件拖进对话框中,获取位图文件的参数。

首先是面板上的文件拖拉属性应该设置为true

其次,利用类向导添加消息响应函数,ON_WM_DROPFILES()

在函数中获取文件的路径信息。

//--------------------获取拖拉上来的文件名---------------------------//
UINT count;               
count = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);     // 初始化文件
// 用于一个成功文件拖拽后获取文件名称
if(count){   
for(UINT i=0; i<count; i++){   
int pathLen = DragQueryFile(hDropInfo, i, filePath, sizeof(filePath));                                
//AfxMessageBox(CString(filePath));    
}   
}   
DragFinish(hDropInfo);    // 释放shell为传递文件名而开辟的内存空间

添加一个按钮,在按钮的消息函数里面添加。

UpdateData(TRUE);
CDC *pDC=NULL;;
CDC   MemDC;   
HBITMAP  hBmp;
BITMAP   bm;   
CBitmap  Bitmap;
CPoint point( 10, 10);
CString cStr;
hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),filePath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
Bitmap.DeleteObject();
Bitmap.Attach( hBmp );
Bitmap.GetObject(sizeof(BITMAP),&bm);  
MemDC.CreateCompatibleDC(pDC);  
width=bm.bmWidth;
width=bm.bmWidth;
height=bm.bmHeight;
planes=bm.bmPlanes;
widthtype=bm.bmWidthBytes;
bitpixel=bm.bmBitsPixel;
type=bm.bmType;
UpdateData(FALSE);
MemDC.SelectObject(&Bitmap);  
pDC->BitBlt(point.x, point.y, bm.bmWidth, bm.bmHeight, &MemDC, 0, 0, SRCCOPY);  
MemDC.DeleteDC();

构造函数中声明的变量

void CTextureDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, width);
DDX_Text(pDX, IDC_EDIT2, height);
DDX_Text(pDX, IDC_EDIT3, type);
DDX_Text(pDX, IDC_EDIT4, widthtype);
DDX_Text(pDX, IDC_EDIT5, planes);
DDX_Text(pDX, IDC_EDIT6, bitpixel);
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值