在定义一个窗口类的Hbrbackground属性值,不知从哪里得到如:等于color_window查看源码,啥都没有,唉,delphi为什么就要定义这么多别名了?
  HBRUSH = type LongWord;
  {$EXTERNALSYM HBRUSH}   //这一个怎么理解啊
 HGLRC = type LongWord;
  {$EXTERNALSYM HGLRC}
  HDESK = type LongWord;
  {$EXTERNALSYM HDESK}
  HENHMETAFILE = type LongWord;
  {$EXTERNALSYM HENHMETAFILE}
  HFONT = type LongWord;
  {$EXTERNALSYM HFONT}
  HICON = type LongWord;
  {$EXTERNALSYM HICON}
  HMENU = type LongWord;
  {$EXTERNALSYM HMENU}

解决方案 »

  1.   

    各位,帮一帮,谢谢
    tagWNDCLASSA = packed record
        style: UINT;
        lpfnWndProc: TFNWndProc;
        cbClsExtra: Integer;
        cbWndExtra: Integer;
        hInstance: HINST;
        hIcon: HICON;
        hCursor: HCURSOR;
        hbrBackground: HBRUSH;   //这一句,如果我创建了一个实例,就是知道如何得到HBRUSH类的值
        lpszMenuName: PAnsiChar;
        lpszClassName: PAnsiChar;
      end;
      

  2.   

    这只是个结构,如果你要取值我想,应该用API函数调用
      

  3.   

    楼上的兄弟,这是书中原码:
    function RegisterClass: Boolean;
    var
      WindowClass: TWndClass;
    begin
      {setup our new window class}
      WindowClass.Style := CS_HREDRAW or CS_VREDRAW;          
      WindowClass.lpfnWndProc := @DefWindowProc;               
      WindowClass.cbClsExtra := 0;                            
      WindowClass.cbWndExtra := 0;                             
      WindowClass.hInstance := hInstance;                      
      WindowClass.hIcon := 0;                               
      WindowClass.hCursor := 0;                              
      WindowClass.hbrBackground := COLOR_WINDOW;  这个COLOR_WINDOW是从哪里得来的?
      WindowClass.lpszMenuName := nil;                        
      WindowClass.lpszClassName := 'TestClass';                 
      Result := Windows.RegisterClass(WindowClass) <> 0;
    end;
      

  4.   

    windows单元定义的
    {$EXTERNALSYM COLOR_SCROLLBAR}
      COLOR_SCROLLBAR = 0;
      {$EXTERNALSYM COLOR_BACKGROUND}
      COLOR_BACKGROUND = 1;
      {$EXTERNALSYM COLOR_ACTIVECAPTION}
      COLOR_ACTIVECAPTION = 2;
      {$EXTERNALSYM COLOR_INACTIVECAPTION}
      COLOR_INACTIVECAPTION = 3;
      {$EXTERNALSYM COLOR_MENU}
      COLOR_MENU = 4;
      {$EXTERNALSYM COLOR_WINDOW}
      COLOR_WINDOW = 5;
      {$EXTERNALSYM COLOR_WINDOWFRAME}
      COLOR_WINDOWFRAME = 6;
      {$EXTERNALSYM COLOR_MENUTEXT}
      COLOR_MENUTEXT = 7;
      {$EXTERNALSYM COLOR_WINDOWTEXT}
      COLOR_WINDOWTEXT = 8;
      {$EXTERNALSYM COLOR_CAPTIONTEXT}
      COLOR_CAPTIONTEXT = 9;
      {$EXTERNALSYM COLOR_ACTIVEBORDER}
      COLOR_ACTIVEBORDER = 10;
      {$EXTERNALSYM COLOR_INACTIVEBORDER}
      COLOR_INACTIVEBORDER = 11;
      {$EXTERNALSYM COLOR_APPWORKSPACE}
      COLOR_APPWORKSPACE = 12;
      {$EXTERNALSYM COLOR_HIGHLIGHT}
      COLOR_HIGHLIGHT = 13;
      {$EXTERNALSYM COLOR_HIGHLIGHTTEXT}
      COLOR_HIGHLIGHTTEXT = 14;
      {$EXTERNALSYM COLOR_BTNFACE}
      COLOR_BTNFACE = 15;
      {$EXTERNALSYM COLOR_BTNSHADOW}
      COLOR_BTNSHADOW = $10;
      {$EXTERNALSYM COLOR_GRAYTEXT}
      COLOR_GRAYTEXT = 17;
      {$EXTERNALSYM COLOR_BTNTEXT}
      COLOR_BTNTEXT = 18;
      {$EXTERNALSYM COLOR_INACTIVECAPTIONTEXT}
      COLOR_INACTIVECAPTIONTEXT = 19;
      {$EXTERNALSYM COLOR_BTNHIGHLIGHT}
      COLOR_BTNHIGHLIGHT = 20;  {$EXTERNALSYM COLOR_3DDKSHADOW}
      COLOR_3DDKSHADOW = 21;
      {$EXTERNALSYM COLOR_3DLIGHT}
      COLOR_3DLIGHT = 22;
      {$EXTERNALSYM COLOR_INFOTEXT}
      COLOR_INFOTEXT = 23;
      {$EXTERNALSYM COLOR_INFOBK}
      COLOR_INFOBK = 24;  {$EXTERNALSYM COLOR_HOTLIGHT}
      COLOR_HOTLIGHT = 26;
      {$EXTERNALSYM COLOR_GRADIENTACTIVECAPTION}
      COLOR_GRADIENTACTIVECAPTION = 27;
      {$EXTERNALSYM COLOR_GRADIENTINACTIVECAPTION}
      COLOR_GRADIENTINACTIVECAPTION = 28;  {$EXTERNALSYM COLOR_MENUHILIGHT}
      COLOR_MENUHILIGHT = 29;
      {$EXTERNALSYM COLOR_MENUBAR}
      COLOR_MENUBAR = 30;  COLOR_ENDCOLORS = COLOR_MENUBAR;  {$EXTERNALSYM COLOR_DESKTOP}
      COLOR_DESKTOP = COLOR_BACKGROUND;
      {$EXTERNALSYM COLOR_3DFACE}
      COLOR_3DFACE = COLOR_BTNFACE;
      {$EXTERNALSYM COLOR_3DSHADOW}
      COLOR_3DSHADOW = COLOR_BTNSHADOW;
      {$EXTERNALSYM COLOR_3DHIGHLIGHT}
      COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT;
      {$EXTERNALSYM COLOR_3DHILIGHT}
      COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT;
      {$EXTERNALSYM COLOR_BTNHILIGHT}
      COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT;
      

  5.   

    楼上的兄弟,谢谢,非常感谢,我想问的是:是怎么得到:CS_HREDRAW or CS_VREDRAW这个值的   COLOR_WINDOW;  这个COLOR_WINDOW是从哪里得来的?
      

  6.   

    靠学过c语言没有啊,CS_HREDRAW or CS_VREDRAW这个值的 COLOR_WINDOW;  这个COLOR_WINDOW
    是在预定义里面的,他门都代表一个常量,pascal 里面是
    const interger CS_HREDRAW 0x0000008这个样式的
      

  7.   

    To gaintsailor(大力水手)             这个常量是Borland按照什么定义的啊
      

  8.   

    不是borland定义的是微软定义的,borland只能跟着用,装个vc然后在里面找windows.h的文件
    里面就有CS_HREDRAW之类的所有系统常量的定义,其实知道其具体直是没有意思的,比如COLOR_BTNHIGHLIGHT 他的直是一个整数常量列入0x0000008什么的,为了好记我门用
    COLOR_BTNHIGHLIGHT这个标记来代替这个整数,COLOR_BTNHIGHLIGHT就是代表一种显示颜色
    比如你要把窗体背景设顶为COLOR_BTNHIGHLIGHT WindowClass.hbrBackground=COLOR_BTNHIGHLIGHT
    就可以了,编译器会自己找到COLOR_BTNHIGHLIGHT的定义然后把WindowClass.hbrBackground=0X00000008
    反正大体意思就是这个样子了
    学api的时候一开始看到这些常量就头晕了,其实你先学小匈牙利命名法则然后,他那些大写字母翻译成英文其实很多东西是一目了然的
    如COLOR_MENUBAR那就是color menubar 直译过来就是菜单拦的颜色啊
    哈哈我知道的就这么多了你分这么多记得给分啊