mfc要设计很多个图片按钮,一个一个将图片导入资源很麻烦。想是否能直接用loadmap之类的函数输入图片的路径就能直接将图片输出在按钮上。看了CBitmapButton,CButton类都没有看到输入路径的函数。请问要怎么办?

解决方案 »

  1.   

    loadimage中可以从文件导入位图,但是不可以直接输出在按钮上,你可以自己写一个这样的函数来实现它,不是很难的,应该。
      

  2.   

    你可以先LoadImage,然后再给按钮SetBitmap(HBITMAP).
      

  3.   

    HBITMAP m_pBitamp=(HBITMAP)LoadImage(::AfxGetApp()->m_hInstance,"f:\\b2.bmp",IMAGE_BITMAP,551,26,LR_LOADFROMFILE);
      

  4.   

    BOOL BitmapButton1::LoadBitmaps(LPCTSTR lpszBitmapResource,
    LPCTSTR lpszBitmapResourceSel ,
    LPCTSTR lpszBitmapResourceFocus ,
    LPCTSTR lpszBitmapResourceDisabled)
    {
    if(lpszBitmapResource==NULL)
    return FALSE;
    HBITMAP hbitmap=(HBITMAP)LoadImage(NULL,lpszBitmapResource,
    IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
    if(hbitmap==NULL)return FALSE;
    if (m_bitmap.m_hObject)
    m_bitmap.Detach();
    m_bitmap.Attach(hbitmap); hbitmap=(HBITMAP)LoadImage(NULL,lpszBitmapResourceSel,
    IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE); 
    if(hbitmap!=NULL)
    {
    if (m_bitmapSel.m_hObject)
    m_bitmapSel.Detach();
    m_bitmapSel.Attach(hbitmap);
    } hbitmap=(HBITMAP)LoadImage(NULL,lpszBitmapResourceFocus,
    IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE); 
        if(hbitmap!=NULL)
    {
    if (m_bitmapFocus.m_hObject)
    m_bitmapFocus.Detach();
    m_bitmapFocus.Attach(hbitmap);
    }  hbitmap=(HBITMAP)LoadImage(NULL,lpszBitmapResourceDisabled,
     IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
       if(hbitmap!=NULL)
    {
    if (m_bitmapDisabled.m_hObject)
    m_bitmapDisabled.Detach();
    m_bitmapDisabled.Attach(hbitmap);
    }
     return TRUE;
    }