0

![]() |
![]() |
Acabo de llegar... |
Por favor me pueden ayudar. Necesito desactivar la X, de la ventana pero que deje habilitados los otros dos botones de minimizar y cambiar el tamaño.
He intentado en las propiedades de la forma en Style desactivar el controlbox, sí lo hace pero desactiva los tres botones. Gracias.
![]() |
![]() |
Administrador |
@Ciro, para qué necesitas deshabilitarlo? Si puedes controlarlo en el evento "OnClose", hay un campo en LINKAGE al cual si le mueves POW-FALSE no cierra el Form!
De todos modos se puede hacer por WinAPI, tengo un ejemplo en casa, intentaré pasártelo esta tarde.
Añadido despues de 2 horas 10 minutos
@Ciro, pon este código en el evento "Opened" del Form donde quieres deshabilitar el botón de cerrar:
COBOL Código:
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-HWND PIC S9(9) COMP-5. 01 WS-HWND-M PIC S9(9) COMP-5. 01 WS-HWND-P PIC S9(9) COMP-5. PROCEDURE DIVISION. MOVE "hwnd" OF POW-SELF TO WS-HWND CALL "GetParent" WITH STDCALL USING BY VALUE WS-HWND RETURNING WS-HWND-P CANCEL "GetParent" CALL "GetSystemMenu" WITH STDCALL USING BY VALUE WS-HWND-P POW-FALSE RETURNING WS-HWND-M CANCEL "GetSystemMenu" CALL "DeleteMenu" WITH STDCALL USING BY VALUE WS-HWND-M BY VALUE h"F060" BY VALUE 0 CANCEL "DeleteMenu"
Última edición por Kuk; 28.10.2015 a las 12:35 Razón: Post añadido
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el editor al botón
y escribiendo su nick.
![]() |
![]() |
Acabo de llegar... |
Hola Kuk, en la forma no me sale el evento "OnClose". Sale el Evento "Close" y no tiene LINKAGE.
También coloque el código que me envia en el "Opened", pero sale unos errores, no se si es por lo que es WINAPI hay que hacer algun otro proceso?, ya que nunca he usado WINAPI.
Los errores son:
Muchas graciasCódigo:NI0201.obj : error LNK2001: unresolved external symbol _DELETEMENU@12 NI0201.obj : error LNK2001: unresolved external symbol _GETSYSTEMMENU@8 NI0201.obj : error LNK2001: unresolved external symbol _GETPARENT@4 D:\CONTABILIDAD\SYDWIN\Debug\CONTABILIDAD.exe : fatal error LNK1120: 3 unresolved externals
![]() |
![]() |
Administrador |
@Ciro, llevas razón, es "Close", pero debería llevar LINKAGE y un campo numérico en ella, donde puedes mover POW-TRUE, creo que se llama POW-ARG-CANCEL o algo así.
Qué versión de PowerCOBOL usas?
Para que te funcione el WinAPI, debes hacer click con el botón derecho en el TreeView del proyecto sobre el item llamado "Script", donde se reúnen los códigos COBOL que has codificado. En el menú que aparece elige "Options" (si no me equivoco), donde puedes definir opciones de compilación. En la pestaña COMPILE, en el campo que aparece pones lo siguiente:
Luego haces ReBuild de todo el proyecto. Si no compila dando errores de LINK diciendo que no encuentra las funciones del WinAPI como ahora, añade al proyecto USER32.LIB.Código:ALPHAL(WORD)
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el editor al botón
y escribiendo su nick.
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)