我想通过一个按钮单击事件来动态改变picture控件中的位图图像,该怎么实现?

解决方案 »

  1.   

    CStatic *pWnd = (CStatic*) GetDlgItem(IDC_PHOTO);
    pWnd->ModifyStyle (0, SS_BITMAP | SS_CENTERIMAGE);HBITMAP hBitmap = (HBITMAP)::LoadImage(::AfxGetInstanceHandle(),
    szPhotoFile, IMAGE_BITMAP, 0, 0, 
    LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);

    pWnd->SetBitmap ( hBitmap );
    pWnd->RedrawWindow ();
      

  2.   

    我已经通过一个比较麻烦的方法实现了,大家给参考一下
             HBITMAP hBit1;
    HBITMAP hBit2;
    hBit1=::LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP1));
            hBit2=::LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP2));
    CString str;
    if(GetDlgItemText(IDC_BTN_CHANGE,str),str=="图片1")
    {
    SendDlgItemMessage(IDC_STATIC_PICTURE,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hBit2);
    SetDlgItemText(IDC_BTN_CHANGE,"图片2");
    }
            else
    {
    SendDlgItemMessage(IDC_STATIC_PICTURE,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hBit1);
    SetDlgItemText(IDC_BTN_CHANGE,"图片1"); }