您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 哪个打开函数是可以选择文件的,如果想打开bmp图,如何做?

哪个打开函数是可以选择文件的,如果想打开bmp图,如何做?

来源:网络整理     时间:2016/7/4 3:17:41     关键词:

关于网友提出的“ 哪个打开函数是可以选择文件的,如果想打开bmp图,如何做?”问题疑问,本网通过在网上对“ 哪个打开函数是可以选择文件的,如果想打开bmp图,如何做?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 哪个打开函数是可以选择文件的,如果想打开bmp图,如何做?
描述:

平时软件中打开文件的那个对话框哪个函数?
void CDRAWView::OnOpen() 
{
// TODO: Add your command handler code here
CFileDialog dlg;
dlg.DoModal();
}
这个程序为什么报错no appropriate default constructor available?
如果我想选择图片文件,该怎么打开?
拷个程序上来啊!
先谢谢了啊~


解决方案1:


   //在屏幕上显示BMP图像,双缓冲实现BMP位图显示在屏幕上
HBITMAP OldBitmap;
    CDC *pDC ;
CDC MemDC;
    /*MemDC.CreateCompatibleDC(pDC);
    OldBitmap=(HBITMAP)MemDC.SelectObject(hShowBMP);
    CRect rect;
    GetClientRect(&rect);    
    pDC->BitBlt(100,100,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);
    MemDC.SelectObject(OldBitmap);*/
/*CStatic myStatic;
myStatic.Create(_T("my static"), 
WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(10,10,150,50), 
NULL);*/
//m_myStatic.SetBitmap( hShowBMP );
//m_myStatic.SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(hShowBMP) ));*/
//判断
if( m_bmp.m_hObject != NULL ) 
m_bmp.DeleteObject();
//载入图片
CString strPathName;
char szFilter[] = "BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*||";
CFileDialog dlg( TRUE,"BMP",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter );
//------用来检测目前的操作系统的版本信息
int nStructSize = 0;
DWORD dwVersion, dwWindowsMajorVersion, dwWindwosMinorVersion;
dwVersion = GetVersion();
dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
dwWindwosMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
if(dwVersion < 0x80000000)
{
nStructSize = 88;   //2k,xp下显示新的版本
}
else
{
nStructSize = 76;  //98下显示老版本,如图1
}
dlg.m_ofn.lStructSize = nStructSize;  //------用来检测目前的操作系统的版本信息
if(dlg.DoModal() == IDOK)
{
strPathName = dlg.GetPathName();                
}
HBITMAP hbmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
strPathName, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE);
if( hbmp == NULL )
{
MessageBox("请您选择bmp格式的图片!","Notice",MB_OK);
exit(0);//有问题!!!
}
//取得加载的BMP的信息
m_bmp.Attach( hbmp );
DIBSECTION ds;
BITMAPINFOHEADER &bminfo = ds.dsBmih;
m_bmp.GetObject( sizeof(ds), &ds );
int cx=bminfo.biWidth;//得到图像宽度
int cy=bminfo.biHeight; //得到图像高度
//得到了图像的宽度和高度后,我们就可以对图像大小进行适应,即调整控件的大小,让它正好显示一张图片
CRect rect;
GetDlgItem(IDC_STATIC1)->GetWindowRect(&rect);
ScreenToClient(&rect);
GetDlgItem(IDC_STATIC1)->MoveWindow(rect.left,rect.top,cx,cy,true);//调整大小
解决方案2:


        //载入图片
char szFilter[] = "BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*||";
CFileDialog dlg( TRUE,"BMP",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter );
解决方案3:


  static char strext[]="谱文件(*.wfl)|*.wfl|所有文件(*.*)|*.*||";
CFileDialog  dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,strext,NULL);
if(dlg.DoModal()==IDOK)
{  int pl,fl;
pl=dlg.GetPathName().GetLength();
fl=dlg.GetFileName().GetLength();
m_PathEdit=dlg.GetPathName().Left(pl-fl);
m_FileEdit=dlg.GetFileName();
    UpdateData(FALSE); 
}

在strtext里选择你要打开的文件类型
以上介绍了“ 哪个打开函数是可以选择文件的,如果想打开bmp图,如何做?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2261854.html

相关图片

相关文章