Hola,
Estoy interesada en saber como puedo poner un GUI dentro de un window de un programa.
Quiero que ese GUI pertenezca a la window del programa y no a una window diferente.
Imaginaros que en la window del programa aparece un botón que pone "Aceptar" otro que sale "Cancelar", me gustaría poner otro que pusiera "+".
¿Hay alguna forma?
Gracias!
Hacer un FORM o GUI dentro de uno ya existente.
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Hacer un FORM o GUI dentro de uno ya existente.
Pues si te refieres a poder meter varias ventanas en una misma ventana, te recomiendo que mires este ejemplo: http://www.emesn.com/autoitforum/viewto ... &hilit=mdi
Si quieres meter un botón nuevo en una ventana ya creada mira la función _GUICtrlButton_Create de la udf guibutton.au3. Mirala en la ayuda.
Saludos.
Si quieres meter un botón nuevo en una ventana ya creada mira la función _GUICtrlButton_Create de la udf guibutton.au3. Mirala en la ayuda.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Hacer un FORM o GUI dentro de uno ya existente.
Muchas gracias.
Es lo que buscaba.
¿Me podéis decir la diferencia entre _GUICtrlButton_Create y GUICtrlCreateButton?
Gracias!
Es lo que buscaba.
¿Me podéis decir la diferencia entre _GUICtrlButton_Create y GUICtrlCreateButton?
Gracias!
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Hacer un FORM o GUI dentro de uno ya existente.
Pues a groso modo, es que guictrlcreatebutton es una función nativa de AutoIt, y se utiliza para crear botones solamente en sus ventanas (guicreate).joana escribió:¿Me podéis decir la diferencia entre _GUICtrlButton_Create y GUICtrlCreateButton?
_guictrlbutton_create no es nativa. Es una función realizada por una persona experta. En este caso pertenece a un grupo de funciones que han sido testeadas y comprobadas, y finalmente viendo su utilidad, integradas en el grupo de udfs de AutoIt. Este grupo de funciones tienen un tema en común. En este caso es todo lo relacionado con botones gráficos de windows.
Si te vas al directorio de instalación de autoit, en la carpeta include (en mi caso, en w7, el camino completo sería C:\Program Files (x86)\AutoIt3\Include), verás todas las udfs definidas. Puedes abrirlas y ver sus códigos. A veces te pueden dar una pista para hacer otras cosas que necesitas y no están implementadas. Pero estos grupos de funciones son bastantes completos y suele estar todo lo que necesitas, sin tener que complicarte más la vida . El código de estas funciones es bastante complicado y avanzado, ya que suele tirar directamente de la api de windows. NO SE DEBEN TOCAR!!!!.
El código de esta función (lo que se ejecuta cuando la utilizas):
Código: Seleccionar todo
; #FUNCTION# ====================================================================================================================
; Name...........: _GUICtrlButton_Create
; Description ...: Creates a Button control
; Syntax.........: _GUICtrlButton_Create($hWnd, $sText, $iX, $iY, $iWidth, $iHeight[, $iStyle = -1[, $iExStyle = -1]])
; Parameters ....: $hWnd - Handle to parent or owner window
; $sText - Text to add to Button
; $iX - Horizontal position of the control
; $iY - Vertical position of the control
; $iWidth - Control width
; $iHeight - Control height
; $iStyle - Control style:
; | $BS_AUTO3STATE - Creates a three-state check box in which the state cycles through selected, unavailable, and cleared each time the user selects the check box.
; | $BS_AUTOCHECKBOX - Creates a check box in which the check state switches between selected and cleared each time the user selects the check box.
; | $BS_AUTORADIOBUTTON - Same as a radio button, except that when the user selects it, the button automatically highlights itself and removes the selection from any other radio buttons with the same style in the same group.
; | $BS_FLAT - Specifies that the button is two-dimensional; it does not use the default shading to create a 3-D image.
; | $BS_GROUPBOX - Creates a rectangle in which other buttons can be grouped. Any text associated with this style is displayed in the rectangle’s upper-left corner.
; | $BS_PUSHLIKE - Makes a button (such as a check box, three-state check box, or radio button) look and act like a push button. The button looks raised when it isn't pushed or checked, and sunken when it is pushed or checked.
; -
; | $BS_DEFPUSHBUTTON - Creates a push button with a heavy black border. If the button is in a dialog box, the user can select the button by pressing the ENTER key, even when the button does not have the input focus. This style is useful for enabling the user to quickly select the most likely option, or default.
; -
; | $BS_BOTTOM - Places the text at the bottom of the button rectangle.
; | $BS_CENTER - Centers the text horizontally in the button rectangle.
; | $BS_LEFT - Left-aligns the text in the button rectangle on the right side of the check box.
; | $BS_MULTILINE - Wraps the button text to multiple lines if the text string is too long to fit on a single line in the button rectangle.
; | $BS_RIGHT - Right-aligns text in the button rectangle on the right side of the check box.
; | $BS_RIGHTBUTTON - Positions a check box square on the right side of the button rectangle.
; | $BS_TOP - Places text at the top of the button rectangle.
; | $BS_VCENTER - Vertically centers text in the button rectangle.
; -
; | $BS_ICON - Specifies that the button displays an icon.
; | $BS_BITMAP - Specifies that the button displays a bitmap.
; -
; | $BS_NOTIFY - Enables a button to send BN_KILLFOCUS and BN_SETFOCUS notification messages to its parent window. Note that buttons send the BN_CLICKED notification message regardless of whether it has this style. To get BN_DBLCLK notification messages, the button must have the BS_RADIOBUTTON or BS_OWNERDRAW style.
; -
; | Vista Sytles:
; | $BS_SPLITBUTTON - Creates a split button. A split button has a drop down arrow
; | $BS_DEFSPLITBUTTON - Creates a split button that behaves like a $BS_PUSHBUTTON style button, but also has a distinctive appearance.
; | $BS_COMMANDLINK - Creates a command link button
; | $BS_DEFCOMMANDLINK - Creates a command link button that behaves like a $BS_PUSHBUTTON style button.
; -
; |Default: ( -1) : none
; |Forced : $WS_CHILD, $WS_TABSTOP, $WS_VISIBLE, $BS_NOTIFY
; -
; $iExStyle - Control extended style. These correspond to the standard $WS_EX_ constants.
; Return values .: Success - Handle to the Button control
; Failure - 0
; Author ........: Gary Frost
; Modified.......:
; Remarks .......: Above constants require ButtonConstants.au3
;+
; This function is for Advanced users and for learning how the control works.
; Related .......: _GUICtrlButton_Destroy
; Link ..........:
; Example .......: Yes
; ===============================================================================================================================
Func _GUICtrlButton_Create($hWnd, $sText, $iX, $iY, $iWidth, $iHeight, $iStyle = -1, $iExStyle = -1)
If Not IsHWnd($hWnd) Then
; Invalid Window handle for _GUICtrlButton_Create 1st parameter
Return SetError(1, 0, 0)
EndIf
If Not IsString($sText) Then
; 2nd parameter not a string for _GUICtrlButton_Create
Return SetError(2, 0, 0)
EndIf
Local $iForcedStyle = BitOR($__BUTTONCONSTANT_WS_TABSTOP, $__UDFGUICONSTANT_WS_VISIBLE, $__UDFGUICONSTANT_WS_CHILD, $BS_NOTIFY)
If $iStyle = -1 Then
$iStyle = $iForcedStyle
Else
$iStyle = BitOR($iStyle, $iForcedStyle)
EndIf
If $iExStyle = -1 Then $iExStyle = 0
Local $nCtrlID = __UDF_GetNextGlobalID($hWnd)
If @error Then Return SetError(@error, @extended, 0)
Local $hButton = _WinAPI_CreateWindowEx($iExStyle, $__BUTTONCONSTANT_ClassName, $sText, $iStyle, $iX, $iY, $iWidth, $iHeight, $hWnd, $nCtrlID)
_SendMessage($hButton, $__BUTTONCONSTANT_WM_SETFONT, _WinAPI_GetStockObject($__BUTTONCONSTANT_DEFAULT_GUI_FONT), True)
Return $hButton
EndFunc ;==>_GUICtrlButton_Create
También tiene cosas que puede que no puedas hacer o que sea muy complicado de hacer con las funciones nativas de autoit. Pues mira estas funciones, que seguramente aquí encontrarás la solución .
Esto se extiende a casi cualquier udf. Hay muchísimas no oficiales que te pueden ser de mucha utilidad en algunos temas. Todo sería cuestión de buscar en el foro o en el foro de habla inglesa.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Hacer un FORM o GUI dentro de uno ya existente.
Gracias. La explicación me sirve! xD Voy entendiendo Autoit!