我希望把提取的图标显示出来,代码是这样的,为何不显示?
            void CIconDlg::OnGet()
            {
              CFileDialog fileDialog(TRUE,"*.ICON",NULL,NULL,"资源文件
                 (*.ICO,*.BMP,*.EXE,*.DLL,*.ICL)|*.ICO;*.BMP;*.EXE;*.DLL;*.ICL||");
     if (fileDialog.DoModal()==IDOK) 
     {
//VERIFY(openfileName.Open(fileDialog.GetFileName(),CFile::modeRead)); 
openfileName=fileDialog.GetPathName();
openextName=fileDialog.GetFileExt();

m_list.ResetContent();//清除list box中的所有入口值

HICON hIcon;
hIcon=ExtractIcon(AfxGetInstanceHandle(),openextName,-1);
if (hIcon==NULL) 
{
m_list.AddString(openfileName);
}
if (myStatic.GetIcon()==NULL)
{
myStatic.SetIcon(hIcon);
}
}
myStatic的创建是在对话框类初始化时创建的myStatic.Create(NULL,WS_CHILD|WS_VISIBLE|SS_ICON,CRect(280,280,300,300),this);
为何看不到显示的图标?请大家帮帮忙吧!

解决方案 »

  1.   

    老兄:
    hIcon=ExtractIcon(AfxGetInstanceHandle(),openfileName,0);//注意:openextName ----> openfileName
      

  2.   

    谢谢,自己疏忽了,汗......不过还是显示不出来,现在我换了一种显示方法,注销掉最后一个if语句,改为CStatic *pStatic=(CStatic *)GetDlgItem(IDC_PICTURE);
    pStatic->SetIcon(hIcon);
    InvalidateRect(NULL,TRUE);
    onpaint函数不作任何变动,但是还是显示不出来,请大家帮帮忙吧。
      

  3.   

    可以了可以了,谢谢codekey,真是自己大意啊,最后一个参数的值写成-1了,它只返回图标总数。