Ver Mensaje Individual
  #1
Antiguo 21 de diciembre de 2015, 21:53
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207
Obtener el Handle (HWND) de un control
2 Inactivo Inactivo

No es muy difícil obtener el Handle en PowerCOBOL v3:

Código COBOL:
  1.  ENVIRONMENT DIVISION.
  2.  DATA        DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  WS-HWND-P         PIC S9(9) COMP-5.
  5.  01  WS-HWND-C         PIC S9(9) COMP-5.
  6.  
  7.  PROCEDURE   DIVISION.
  8.      
  9.      CALL "GetActiveWindow" WITH STDCALL
  10.      
  11.      MOVE PROGRAM-STATUS TO WS-HWND-P
  12.      
  13.      CALL "GetDlgItem" WITH STDCALL USING BY VALUE WS-HWND-P
  14.                                           BY VALUE 1. *> Id orden del control
  15.      
  16.      MOVE PROGRAM-STATUS TO WS-HWND-C

Si queremos buscar antes el control por su texto, hacemos:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  WS-TEXTO          PIC X(50).
  3.  01  WS-HWND-P         PIC S9(9) COMP-5.
  4.  01  WS-ID             PIC S9(9) COMP-5.
  5.  PROCEDURE   DIVISION.
  6.      CALL "GetDlgItemTextA" WITH STDCALL USING BY VALUE WS-HWND-P    
  7.                                                BY VALUE WS-ID      
  8.                                                BY REFERENCE WS-TEXTO
  9.                                                BY VALUE 50          

Donde WS-ID es el orden del control (1, 2, 3 etc.) y obtenemos su texto en WS-TEXTO. Cuidado que viene un con X"00" al final (si no me equivoco).



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita