P
pi
Unregistered / Unconfirmed
GUEST, unregistred user!
以下这段程序是有关opengl编程的:
protected
procedure WMPaint(var Msg: TWMPaint); message WM_PAINT;
procedure WMQueryNewPalette(var Msg: TWMQueryNewPalette); message WM_QUERYNEWPALETTE;
procedure WMPaletteChanged(var Msg: TWMPaletteChanged);
message WM_PALETTECHANGED;
procedure TMainForm.WMPaint(var Msg: TWMPaint);
var
pStruct: TPaintStruct; //TPaintStruct是什么类啊
begin
BeginPaint(Handle, pStruct);//beginpaint 是什么呀
UpdateShape;//procedure updateshape为一段图形输出程序
EndPaint(Handle, pStruct);
end;
procedure TMainForm.WMQueryNewPalette(var Msg: TWMQueryNewPalette);
begin
if (Palette <> 0) then begin //palette:Tpalette;
Msg.Result := RealizePalette(DC); //DC:HDC;
//realizepalette是什么东东,怎么没有声明啊?
if (Msg.Result <> GDI_ERROR) then
InvalidateRect(Handle, nil, False);
//invalidaterect 也没有声明。
end;
end;
procedure TMainForm.WMPaletteChanged(var Msg: TWMPaletteChanged);
begin
if ((Palette <> 0) and (THandle(TMessage(Msg).wParam) <> Handle)) then begin
if (RealizePalette(DC) <> GDI_ERROR) then
UpdateColors(DC); //updatecolors未声明
Msg.Result := 0;
end;
end;
这段程序疑问太多(但编译运行都能通过),主要是:
1.怎么有这么多没见过的类和过程呢?(TWMPaint,TWMQueryNewPalette,
TWMPaletteChanged,TPaintStruct,Tpalette,BeginPaint,InvalidateRect,RealizePalette,UpdateColors)后面的程序又出现了,clientheight,clientwidth(未声明),是不是delphi的保留字?
2。handle 是不是opengl的保留字?
3。opengl中HWND(窗口句柄),HDC(设备句柄),HGLRC(opengl绘图
设备句柄)的含义。
那位大虾能帮俺解释一下,感激不尽!
protected
procedure WMPaint(var Msg: TWMPaint); message WM_PAINT;
procedure WMQueryNewPalette(var Msg: TWMQueryNewPalette); message WM_QUERYNEWPALETTE;
procedure WMPaletteChanged(var Msg: TWMPaletteChanged);
message WM_PALETTECHANGED;
procedure TMainForm.WMPaint(var Msg: TWMPaint);
var
pStruct: TPaintStruct; //TPaintStruct是什么类啊
begin
BeginPaint(Handle, pStruct);//beginpaint 是什么呀
UpdateShape;//procedure updateshape为一段图形输出程序
EndPaint(Handle, pStruct);
end;
procedure TMainForm.WMQueryNewPalette(var Msg: TWMQueryNewPalette);
begin
if (Palette <> 0) then begin //palette:Tpalette;
Msg.Result := RealizePalette(DC); //DC:HDC;
//realizepalette是什么东东,怎么没有声明啊?
if (Msg.Result <> GDI_ERROR) then
InvalidateRect(Handle, nil, False);
//invalidaterect 也没有声明。
end;
end;
procedure TMainForm.WMPaletteChanged(var Msg: TWMPaletteChanged);
begin
if ((Palette <> 0) and (THandle(TMessage(Msg).wParam) <> Handle)) then begin
if (RealizePalette(DC) <> GDI_ERROR) then
UpdateColors(DC); //updatecolors未声明
Msg.Result := 0;
end;
end;
这段程序疑问太多(但编译运行都能通过),主要是:
1.怎么有这么多没见过的类和过程呢?(TWMPaint,TWMQueryNewPalette,
TWMPaletteChanged,TPaintStruct,Tpalette,BeginPaint,InvalidateRect,RealizePalette,UpdateColors)后面的程序又出现了,clientheight,clientwidth(未声明),是不是delphi的保留字?
2。handle 是不是opengl的保留字?
3。opengl中HWND(窗口句柄),HDC(设备句柄),HGLRC(opengl绘图
设备句柄)的含义。
那位大虾能帮俺解释一下,感激不尽!