CreateWnd method
void
CreateWnd()
Implementation
void CreateWnd()
{
TCreateParams Params = TCreateParams();
CreateParams(Params);
if((Params.WndParent == null) && (Params.Style & Windows.WS_CHILD != 0))
if((Owner != null) && (Owner!.ComponentState.contains(ComponentStates.Reading)) &&
(Owner is TWinControl))
Params.WndParent = (Owner as TWinControl).Handle;
else
throw EInvalidOperation.CreateFmt(Consts.SParentRequired, [Name]);
CreateWindowHandle(Params);
if(WindowHandle == null)
throw UnsupportedError('RaiseLastOSError');
var hwnd = WindowHandle!;
_defWndProc = Windows.ChangeWindowProc(hwnd, (elem, message)
{
if(message.Msg == CM_GETINSTANCE)
message.Result = this;
else
WndProc(message);
});
Windows.InitWindow(hwnd, INITSTRUCT(
exStyle: Params.ExStyle,
windowName: Params.Caption,
style: Params.Style,
x: Params.X,
y: Params.Y,
width: Params.Width,
height: Params.Height,
parent: Params.WndParent,
param: Params.Param));
if(Cursor!=TCursor.Default)
hwnd.clientHandle.style.cursor = Cursor.name;
/// new ///*
/// new *///
UpdateBounds();
Perform(WM_SETFONT, null, 1);
if(AutoSize)
AdjustSize();
}