看我的:
    Win95之前好像时可以的,后来就不行了.不过可以强制转换
       wndclass.hbrBackground=(HBRUSH)GetStockObject(int nBrush);
   你是想改变背景色吧?也可以这样子:
       wndclass.hbrBackground=GetSolidBrush(RGB(255,255,255));
因该是这样,记不太清楚.如果你还是没成功.可以给我发@,

解决方案 »

  1.   

    实际上 HBRUSH 和 HGDIOBJ 是同一种数据类型,在 WINDEF.H 中声明如下:
    DECLARE_HANDLE(HBRUSH);
    DECLARE_HANDLE(HGDIOBJ);DECLARE_HANDLE 是一个在 WINNT.H 中声明的宏:#ifdef STRICT
    typedef void *HANDLE;
    #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
    #else
    typedef PVOID HANDLE;
    #define DECLARE_HANDLE(name) typedef HANDLE name
    #endif
      

  2.   

    可是为什么一编译就出现:
    error C2440: '=' : cannot convert from 'void *' to 'struct HBRUSH__ *'
            Conversion from 'void*' to pointer to non-'void' requires an explicit cast
    呢?
      

  3.   

    Mr.xiner(叉叉):
      可是我不知道你的◎三。我真的很笨,你给的方法仍然调不通,系统提示GetsolidBrush是undifined ID,而且类型还是不对啊。