你可以用CWnd::SetIcon()来动态改图标,
先用CWinApp::LoadIcon将资源装入,再用SetIcon

解决方案 »

  1.   

    unsigned char *p1 = (unsigned char*)new char[size],*p2=(unsigned char*)new char[size];
    memset(p1,0x44,size);memset(p2,0,size);
    HICON hIcon = CreateIcon(AfxGetInstanceHandle(),16,16,1,1,p1,p2);
      

  2.   

    void CTaskBarView::OnDraw(CDC* pDC)
    {
    CTaskBarDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc); CDC memDC1,memDC2;
    memDC1.CreateCompatibleDC(pDC);
    memDC2.CreateCompatibleDC(pDC); CBitmap bmp;
    bmp.CreateCompatibleBitmap(pDC,32,32);
    CBitmap *pOldBmp  = memDC1.SelectObject(&bmp); CBitmap bmp1;
    bmp1.LoadBitmap(IDB_BITMAP1);
    CBitmap *pOldBmp1 = memDC2.SelectObject(&bmp1); memDC1.BitBlt(0,0,32,32,&memDC2,0,0,SRCCOPY);
    memDC1.Ellipse(5,5,25,25); memDC1.SelectObject(pOldBmp); if ( 1 )
    {
    int cx = GetSystemMetrics(SM_CXSMICON), cy = GetSystemMetrics(SM_CYSMICON);
    const size = cx * cy * 4;
    ICONINFO info;
    info.fIcon    = TRUE;
    info.xHotspot = 0;
    info.yHotspot = 0;
    info.hbmColor = HBITMAP(bmp);
    info.hbmMask  = bmp;
    HICON hIcon = CreateIconIndirect(&info);
    if( hIcon==NULL ) return;
    //pDC->DrawIcon(80,0,hIcon); // 画一个图标
    AfxGetMainWnd()->SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon); //更改标题栏图标

    }