在主窗口的BOOL CMYDlg::OnInitDialog()
里面用如下代码初始化三个picture控件,
HBITMAP hbitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),"D:\\12-7\\MY-bitmap\\res\\SOURCE1.bmp", IMAGE_BITMAP,256,192, LR_CREATEDIBSECTION|LR_LOADFROMFILE);
CBitmap mm_bitmap;
mm_bitmap.Attach(hbitmap);CStatic *pStatic;
for(int Port=0;Port<3;Port++)
{
  pStatic=(CStatic *)GetDlgItem(IDC_PICTURE1+Port);
  pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
  pStatic->SetBitmap(hbitmap);
}
用了上面的函数加载图片并运行后,
picture控件上什么也没有啊,
什么原因呢?
请大家来帮忙看看,
谢了!

解决方案 »

  1.   

    HBITMAP hbitmap1=(HBITMAP)::LoadImage(NULL,"C:\\Documents and Settings\\Administrator\\桌面\\t.bmp", IMAGE_BITMAP,0,0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
    for(int Port=0;Port<2;Port++)
    {
     
    ((CStatic *)GetDlgItem(IDC_PICTURE1+Port))->SetBitmap(hbitmap1);
    }
    注:我定义了两个picture控件
      

  2.   

    上面我列的程序本质上只比你给出的代码多了一行
    pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
    为什么在运行出来后却显示不出图片呢?
    而你的代码也就少了这么一行,为什么就可以把图片显示出来呢?
    这个问题好长时间都没解决,
    今天还是高手帮我解决了,呵呵……
    能否把原因告诉小弟一下,
    说完原因就要把这个帖子结了,
    散分了,呵呵……
      

  3.   

    不好意思,是多了下面这两行,
    CBitmap mm_bitmap;
    mm_bitmap.Attach(hbitmap);
    不是上面所说的pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
    我试了一下,这一行不是产生图片显示不了本质所在,呵呵……
      

  4.   

    MSDN中解释如下:
    In Windows CE, you can use only the SS_CENTERIMAGE style in conjunction with the SS_BITMAP style. Even if you specify SS_ICON, you cannot set the image by calling: