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

来源:互联网 发布:plsql导出sql乱码 编辑:程序博客网 时间:2024/06/14 20:35


将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);

}


http://blog.csdn.net/u013990248/article/details/41808635

0 0