MFC

void CMainFrame::OnFileOpen() 
{
CBitmap cb;
cb="图片(*.bmp)|*.bmp|";
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,cb);
if (dlg.DoModal()==IDOK)
{
CBitmap cb;
cb=dlg.GetPathName();
AfxMessageBox(cb); }
}
我要在基于对话框的形式下打开图片,这样写很大的问题,求大侠指点啊???!!!

解决方案 »

  1.   

    CBitmap cb;
    cb="图片(*.bmp)|*.bmp|";
    ...
    CBitmap cb;
    cb=dlg.GetPathName();
    ---看了你的代码   我表示很蛋疼
    ---这也太扯了
      

  2.   

    CBitmap cb;
    cb=dlg.GetPathName();
    ==============
    确实有点扯。
    dlg.GetPahtName得到的是文件路径的字符串,你将它给CBitmap,编译根本就通不过。
    另外CBitmap也不支持外部文件。
    用LoadImage来打开相应的外部文件吧。
      

  3.   

    CBitmap cb;
    cb="图片(*.bmp)|*.bmp|";
    -----------
    CBitmap ? or CString ?
      

  4.   


    LoadImage(NULL, "d:\\test.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
      

  5.   

    文件名保存为CString格式
    LoadImage打开bmp文
      

  6.   

    void CTestDlg::OnPaint() {     if (IsIconic())     {         CPaintDC dc(this); // 用于绘制的设备上下文           SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);           // 使图标在工作区矩形中居中         int cxIcon = GetSystemMetrics(SM_CXICON);         int cyIcon = GetSystemMetrics(SM_CYICON);         CRect rect;         GetClientRect(&rect);         int x = (rect.Width() - cxIcon + 1) / 2;         int y = (rect.Height() - cyIcon + 1) / 2;           // 绘制图标         dc.DrawIcon(x, y, m_hIcon);     }     else    {         CPaintDC dc(this);                 if(!img.IsNull()) img.Destroy();         img.Load(_T("图片3.png"));                      if(!img.IsNull()) img.Draw(dc.m_hDC, 0, 0);              CDialog::OnPaint();             } }