Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Cocina PowerCOBOL (https://www.cobolforo.es/forumdisplay.php?f=24)
-   -   [PowerCOBOL v3] Obtener el Handle (HWND) de un control (https://www.cobolforo.es/showthread.php?t=296)

Kuk 21 de diciembre de 2015 21:53

Obtener el Handle (HWND) de un control
 
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).


La franja horaria es GMT +2. Ahora son las 04:44.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.