小虫在一个对话框中放了个CStatic控件,用于显示一个图标,类型为Icon,图像选择为引进的IDI_ICON1,其对应的变量为:CStatic m_image.同时在对话框中摆了个按钮,并给它添了个消息函数OnButton().代码如下:void CAboutDlg::OnButton() 
{
// TODO: Add your control notification handler code here
ShellExecute(m_hWnd,NULL,_T("http://www.sina.com.cn"),NULL,NULL,NULL);//进入新浪网站 const CRect rect(5,10,100,100);//设置图标显示位置
//创建图标
m_image.Create(NULL,SS_ICON,rect,GetParent(),IDC_ICON1);
         //载入图标
HICON hicon1=::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1));
         //获得指向该控件的指针
CStatic* icon=(CStatic*)GetDlgItem(IDC_ICON1);
         //设置图标
icon->SetIcon(hicon1);
//CRect( int l, int t, int r, int b );
}这是用向导建立的一个SDI应用程序。除了原有的文件外,仅仅添加了这样一个函数,在执行的时候出现异常,虽然新浪网站可以进去。
  小虫是初学者,在程序执行出错后,如坠入云里雾里。请大师指点,不胜感激!!

解决方案 »

  1.   

    HICON hicon1=::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1));
    AfxGetResourceHandle改为AfxGetInstanceHandle()试试...
      

  2.   

    HICON hicon1=::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1));
    修改成
    HICON hicon1=AfxGetApp()->LoadIcon(IDI_ICON1);
    看看.
      

  3.   

    分别依照楼上两位贤兄的方法做,还是不行。是不是矩形设置不对? I don't know where the mistake is .
      

  4.   

         由于你程序比较乱,不太清楚你程序的意思!不过可能是以下原因:
        Create()的风格设置,父窗口等参数有误
        也可能是GetDlgItem的转换有问题!