为什么在spy++中看到基于对话框的程序的窗口图标HICON为0?

解决方案 »

  1.   

    如果有图标的话,可以调用函数GetClassLong得到图标.但是既然SPY++显示为0,那就应该没有图标才对?
      

  2.   

    对话框程序是有窗口图标的,但在spy++中icon handle显示为0。QQ的发送消息窗口在spy++中icon handle显示为0,但在任务管理器可以正确显示图标,任务管理器是如何做到的?
      

  3.   

    调用CWnd::GetIcon看看?或者直接发送WM_GETICON消息,wParam = ICON_BIG or ICON_SMALL,lParam = 0;
      

  4.   

    HICON hIcon=(HICON)GetClassLong(hwnd, GCL_HICON);凡是对话框程序得到的结果都是0。
      

  5.   

    那看来就要问问 Bill 了!
      

  6.   

    我想具体某个窗口的图标并不等同于所注册的窗口类中的图标
    对话框的窗口类好像是"#32.."这个样子的,可能预注册的
    对话框窗口类没有指定图标,程序会以其他的方式来提供一个
    好像msdn在wndclass中有提到这点
      

  7.   

    Areslee(易水) 的方法是对的,使用消息WM_GETICON。  HWND hWnd;
      HICON hIcon;  hWnd = (HWND)Edit1->Text.ToInt();//得到对话框句柄
      hIcon = (HICON)SendMessage(hWnd,WM_GETICON,(WPARAM)ICON_SMALL,0);
      if(hIcon != NULL)
      {
        Graphics::TIcon *TempIcon;    TempIcon = new Graphics::TIcon();
        TempIcon->Handle = hIcon;
        Image1->Picture->Icon->Assign(TempIcon); //能正确得到那个图标
        delete TempIcon;
      }
      

  8.   

    CSDN的Bug!!!,怎么变成我提问题了???^_^