MFC CFileDialog窗口问题
CFileDialogdlg(TRUE,"",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT...
CFileDialog dlg(TRUE, "", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, "(*.bmp)|*.bmp|所有文件(*.*)|*.*||",AfxGetMainWnd()); 这段代码没错网上下的 但我用到我自己的按钮上怎么打不开文件 求助高人啊
展开
2个回答
展开全部
这个代码是用MFC的文件对话框打开一个位图文件,但不是它就行了的,它只是初始了一个对象呀,还得用它获取位图文件的信息,然后再把位图显示出来,看看参考的书上有这样的代码,呵呵。下面是个例子:
CFileDialog dlg(TRUE,NULL,NULL,NULL,"位图文件(*.bmp)|*.bmp");
INT Result=dlg.DoModal();
if (Result==IDOK) {
count=0;CanCount=FALSE;
IsRnd=FALSE;Advan=TRUE;
hBitmap=(HBITMAP)::LoadImage(NULL,dlg.GetFileName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
BITMAP bm;
::GetObject(hBitmap,sizeof(BITMAP),&bm);
if (bm.bmWidth>=bm.bmHeight) {
hBitmap=(HBITMAP)::LoadImage(NULL,dlg.GetFileName(),IMAGE_BITMAP,350,280,LR_LOADFROMFILE);
Width=350;Height=280;
IsLong=FALSE; }
else if (bm.bmWidth<bm.bmHeight) {
hBitmap=(HBITMAP)::LoadImage(NULL,dlg.GetFileName(),IMAGE_BITMAP,200,310,LR_LOADFROMFILE);
Width=200;Height=280;
IsLong=TRUE;
}
}
else if(Result==IDCANCEL)return;
CFileDialog dlg(TRUE,NULL,NULL,NULL,"位图文件(*.bmp)|*.bmp");
INT Result=dlg.DoModal();
if (Result==IDOK) {
count=0;CanCount=FALSE;
IsRnd=FALSE;Advan=TRUE;
hBitmap=(HBITMAP)::LoadImage(NULL,dlg.GetFileName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
BITMAP bm;
::GetObject(hBitmap,sizeof(BITMAP),&bm);
if (bm.bmWidth>=bm.bmHeight) {
hBitmap=(HBITMAP)::LoadImage(NULL,dlg.GetFileName(),IMAGE_BITMAP,350,280,LR_LOADFROMFILE);
Width=350;Height=280;
IsLong=FALSE; }
else if (bm.bmWidth<bm.bmHeight) {
hBitmap=(HBITMAP)::LoadImage(NULL,dlg.GetFileName(),IMAGE_BITMAP,200,310,LR_LOADFROMFILE);
Width=200;Height=280;
IsLong=TRUE;
}
}
else if(Result==IDCANCEL)return;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询