Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL v3 (V3L10, Win32)
PowerCOBOL v3 (V3L10, Win32) IDE Freeware compatible con Windows 7/8/10/11
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Compilador] Modificar limitación PERFORM Figu COBOL - General 4 4 de abril de 2020 11:51
[Componente] Control ctList no esta la solapa font... Fito PowerCOBOL (ActiveX, v4 - v11) 2 29 de junio de 2018 02:15
[Componente] ctList de Dbi Tech - Problema con el Font... Fito PowerCOBOL (ActiveX, v4 - v11) 5 10 de mayo de 2017 22:23
[Sintaxis] Modificar Propiedades de un FORM Recato53 PowerCOBOL (ActiveX, v4 - v11) 11 5 de junio de 2015 09:20
[Sintaxis] Modificar el TabIndex en tiempo de ejecución Recato53 PowerCOBOL (ActiveX, v4 - v11) 2 23 de febrero de 2015 17:36

Respuesta

  #1
Antiguo 18 de octubre de 2021, 15:30
Fabio
Forero Junior
Última Actividad 21.03.2025 05:05
Posts Posts: 12
Likes enviados Enviados: 4
Likes recibidos Recibidos: 3
Predeterminado Modificar El Font en un Menu
0 Inactivo Inactivo

Estimados Companeros de forum es possible modificar el tamaño del font de un menu he buscado como hacerlo y no se.
Gracias.
Fabio is offline   Responder Con Cita
  #2
Antiguo 18 de octubre de 2021, 16:07
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Fabio, tienes que pasar por WinAPI.

Tienes que obtener el Handle del Menú: GetMenu function (winuser.h) - Win32 apps | Microsoft Docs

Luego recuperar las propiedades del menú: GetMenuInfo function (winuser.h) - Win32 apps | Microsoft Docs
Lo tienes que hacer en la siguiente estructura de datos: MENUINFO (winuser.h) - Win32 apps | Microsoft Docs

Luego cambias el valor de cbSize y vuelves a setear el menú: SetMenuInfo function (winuser.h) - Win32 apps | Microsoft Docs



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
  #3
Antiguo 19 de octubre de 2021, 18:45
Fabio
Forero Junior
Última Actividad 21.03.2025 05:05
Posts Posts: 12
Likes enviados Enviados: 4
Likes recibidos Recibidos: 3

Muchas Gracias Kuk pero tengo un problema y es que no se utilizar las api donde me pierdo es en definer los parametros de entrada de la function.
Fabio is offline   Responder Con Cita
  #4
Antiguo 21 de octubre de 2021, 12:05
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Fabio,

Código COBOL:
  1.  ENVIRONMENT DIVISION.
  2.  DATA        DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  
  5.  01  HWND-SHEET            PIC S9(9) COMP-5.
  6.  01  HWND-MENU             PIC S9(9) COMP-5.
  7.  
  8.  01  MENUINFO.
  9.      05  cbSize            PIC S9(9) COMP-5.
  10.      05  fMask             PIC S9(9) COMP-5.
  11.      05  dwStyle           PIC S9(9) COMP-5.
  12.      05  cyMax             PIC  9(9) COMP-5.
  13.      05  hbrBack           PIC S9(9) COMP-5.
  14.      05  dwContextHelpID   PIC S9(9) COMP-5.
  15.      05  dwMenuData        PIC  9(9) COMP-5.
  16.      
  17.  PROCEDURE   DIVISION.
  18.  
  19.      CALL "GetActiveWindow" WITH STDCALL *> User32.lib
  20.      
  21.      MOVE PROGRAM-STATUS TO HWND-SHEET
  22.      
  23.      CALL "GetMenu" WITH STDCALL USING BY VALUE HWND-SHEET *> User32.lib
  24.  
  25.      MOVE PROGRAM-STATUS TO HWND-MENU
  26.      
  27.      CALL "GetMenuInfo" WITH STDCALL USING BY VALUE HWND-MENU
  28.                                            BY REFERENCE MENUINFO *> User32.lib
  29.                                            
  30.      ADD 5 TO cbSize *> <----- aqui es donde modificamos el tamaño
  31.      
  32.      CALL "SetMenuInfo" WITH STDCALL USING BY VALUE HWND-MENU
  33.                                            BY REFERENCE MENUINFO *> User32.lib

No olvides de añadir al proyecto la User32.lib

---------- Post añadido el 21 de octubre de 2021 a las 11:08 ----------

@Fabio, ya nos dirás si ha funcionado



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
  #5
Antiguo 23 de octubre de 2021, 15:14
Fabio
Forero Junior
Última Actividad 21.03.2025 05:05
Posts Posts: 12
Likes enviados Enviados: 4
Likes recibidos Recibidos: 3

Kuk disculpa la demora pero tenia problemas con mi internet y si lo probe y me devuelve un valor handle del menu pero la function getmenuinfo no me retorna ningun valor en los parametron.
Fabio is offline   Responder Con Cita
  #6
Antiguo 24 de octubre de 2021, 01:47
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Fabio, pues me he equivocado macho. Es lo que pasa siempre que andamos con prisas, mea culpa amigo.

Por lo pronto las funciones GetMenuInfo y SetMenuInfo sólo aparecen en Windows 10. Con lo cual, no existen en la User32.lib que trae PowerCOBO:


Minimum supported clientWindows 2000 Professional [desktop apps only]
Minimum supported serverWindows 2000 Server [desktop apps only]
Target PlatformWindows
Headerwinuser.h (include Windows.h)
LibraryUser32.lib
DLLUser32.dll
API setext-ms-win-ntuser-menu-l1-1-3 (introduced in Windows 10, version 10.0.14393)


Además, según me he documentado, podemos jugar con varias cosas, pero no con el tamaño del texto, porque este viene de los parámetros generales de Windows...

La única opción es cambiarlo a nivel de parámetros de Windows o pasar por OwerDraw (dibujarlo en "custom"): Change System Menu Text Size



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
  #7
Antiguo 24 de octubre de 2021, 17:04
Fabio
Forero Junior
Última Actividad 21.03.2025 05:05
Posts Posts: 12
Likes enviados Enviados: 4
Likes recibidos Recibidos: 3

Kuk una ultima pregunta y perdoname la insistencia he leido un post tuyo titulado call a cualquier DLL sin lib ni loadlibrary en powercobol podria ser esta una possible solucion?.
saludos,
Fabio is offline   Responder Con Cita
  #8
Antiguo 24 de octubre de 2021, 22:00
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Fabio, efectivamente se puede hacer esto añadiendo las líneas correspondientes en el fichero COBOL85.CBR de la manera siguiente:

Código:
[SHEET1.Entry]
GetMenuInfo=User32.dll
SetMenuInfo=User32.dll
Lo que pasa es que en cuanto al asunto de cambiar el tamaño de la fuente del menú, no se puede hacer.
O lo cambias en los parámetros de Windows, o nos vamos a las historias "OwerDraw" que es dibujarlo tu mismo mediante la API de Windows.



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
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:02.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.