So kannst du beispielsweise die Fenstercaption zentrieren:
Delphi-Quellcode:
type
TForm1 =
class(TForm)
private
{ Private-Deklarationen }
procedure WMNCPAINT(
var Msg: TMessage);
Message WM_NCPAINT;
WM_NCHITTEST;
public
{ Public-Deklarationen }
end;
procedure TForm1.WMNCPAINT(
var msg: TMessage);
var
rect: TRect;
dc: HDC;
szBuffer:
array[0..255]
of Char;
begin
Inherited;
if Msg.Msg = WM_NCPAINT
then
begin
dc := GetWindowDC(
Handle);
rect.Left := GetSystemmetrics(SM_CXEDGE);
rect.Top := GetSystemmetrics(SM_CXSIZEFRAME);
rect.Right := Form1.Width-GetSystemmetrics(SM_CYEDGE);
rect.Bottom := Getsystemmetrics(SM_CYCAPTION)+GetSystemmetrics(SM_CXSIZEFRAME);
lstrcpy(szBuffer, '
Meine Fenstercaption');
SetBkMode(
dc, TRANSPARENT);
SetTextColor(
dc,
RGB(255,255,255));
DrawText(
dc, szBuffer, lstrlen(szBuffer), rect, DT_CENTER
or DT_VCENTER);
ReleaseDC(
Handle,
dc);
end;
ReleaseDc(
Handle,
dc);
end;
Das mit dem Malen kann dir Daniel B erklären. Da kann er mal zeigen, ob er es verstanden hat - der kleine Maler dieser.