在定义一个窗口类的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}
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}
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;
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;
{$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;
是在预定义里面的,他门都代表一个常量,pascal 里面是
const interger CS_HREDRAW 0x0000008这个样式的
里面就有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 直译过来就是菜单拦的颜色啊
哈哈我知道的就这么多了你分这么多记得给分啊