Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The AddCtrls method adds one or more preexisting OI controls to the panel. Typically, these are control controls that already exist on the same form as the SRP Panel control. If successfully added, the controls are moved from the OI form into the panel.

...

PosNameTypeDescription
<1, 1>HandleIntegerThe windows handle to the control to add, returned from its HANDLE property
<1, 2>XIntegerThe control's x position in the panel
<1, 3>YIntegerThe control's y position in the panel
<1, 4>WidthIntegerThe control's width in the panel
<1, 5>HeightIntegerThe control's height in the panel
<1, 6>ColorColorThe control's text color
<1, 7>BackgroundColorThe control's background color

The first value for each field is the windows handle (HWND) to the control, is you can get by getting the control's HANDLE property.

...

ValueDescription
XWhen negative, the left edge of the control is placed that many pixels from the right edge. For example, -500 places the left edge of the control 500 pixels from the right edge of the panel. This is equivalent to selecting Right Anchor in Form Designer.
YWhen negative, the top edge of the control is placed that many pixels from the bottom edge. For example, -1000 places the top edge of the control 1000 pixels from the bottom edge of the panel. This is equivalent to selecting Bottom Anchor in Form Designer.
WidthWhen negative, the right edge of the control is placed that many pixels from the right edge. For example, -10 places the right edge of the control 10 pixels from the right edge of the panel. This is equivalent to selecting Autosize Width in Form Designer.
HeightWhen negative, the bottom edge of the control is placed that many pixels from the bottom edge. For example, -20 places the bottom edge of the control 20 pixels from the bottom edge of the panel. This is equivalent to selecting Autosize Height in Form Designer.

Color

Don't use the Form Designer to set the control's colors if you plan to put it into a Panel control. It won't stick. There are technical reasons for this, but the easiest work around is to pass the desired foreground and background colors into this method.

Example

Code Block
CtrlArray = "" 

// Add the label, placing it in the same place it was added to the form 
hWnd = Get_Property(@Window:".LABEL", "HANDLE") 
OrigSize = Get_Property(@Window:".LABEL", "ORIG_SIZE")
Convert @FM to @VM in OrigSize 
CtrlArray<-1> = hWnd:@VM:OrigSize 

// Add the editline, placing it in the same place it was added to the form 
hWnd = Get_Property(@Window:".EDITLINE", "HANDLE") 
OrigSize = Get_Property(@Window:".EDITLINE", "ORIG_SIZE")
Convert @FM to @VM in OrigSize 
CtrlArray<-1> = hWnd:@VM:OrigSize 

// Add the controls 
Send_Message(@Window:".OLE_PANEL", "OLE.AddCtrls", CtrlArray)

See Also

SetForm