Page 1 of 1

Problema con los menus2007 en una aplicacion MDI no resuelto

Posted: Mon Mar 17, 2008 1:45 pm
by SauroSrl
Hola Antonio:

Por lo visto estas con mucho trabajo, entiendo, por lo que me gustaria saber si ya se encontro la solucion al problema que ocurre cuando se abre ventanas MDI y se tiene los menus2007 activado, los items del menu Windows, correspondientes a las ventanas MDI aparecen cortados.

Aca esta la imagen..

Image

de nuevo gracias por la ayuda

Atentamente,

Posted: Mon Mar 17, 2008 6:46 pm
by Antonio Linares
Rolando,

Hay que hacer esta modificación en source\classes\window.prg:

Code: Select all

...
         MenuMeasureItem( pMitStruct,;
                          0.9 * GetTextWidth( 0, If( ! Empty( oItem:cPrompt ),;
                          StrTran( oItem:cPrompt, "&", "" ), "" ) ) + ;
                          If( oItem:oMenu:hMenu != If( ::oMenu != nil, ::oMenu:hMenu, 0 ), 100, 0 ),;
                          Empty( oItem:cPrompt ) )
...
Observa el valor 100 ahí. Es el que cambia.

Se nos había pasado revisar este tema. Gracias por recordárnoslo :-)

No es buena solucion

Posted: Wed Mar 19, 2008 2:34 pm
by SauroSrl
Hola Antonio:

Como solucion temporal esta bien, pero yo no la aplicare, porque si lo hago todos mis menus cambian y se vuelven mas anchos.

Es preferible que uno de los items del submenu Windows sea mas ancho (como 100) colocandole un punto al final, para evitar algun RTRIM() que hubiera.

Lo extraño es que si el menu no es Look2007 (oMenu:l2007 = .F) y es Look3D, la actualizacion del ancho del submenu Windows es correcta.

Estuve buscando donde es que se actualiza el submenu Windows, pero no lo encontre.

Lo que si sé es que el submenu Windows es el penultimo del menu de la aplicacion, y no se fija que nombre tenga (puede ser xWindows).

Otra observacion que tengo es que por mas ancho que sea este submenu, un nombre de mas de 30 caracteres es truncado a 30. En Look3D muestra los nombres correctamente.

Me gustaria saber por donde puedo buscar, para corregir el error; es decir donde es que se añade el nuevo item al penultimo SubMenu ( llamemosle submenu MDI).
¿ lo hace fivewin ?
¿ lo hace xharbour ?
¿ o lo hace el API de Windows?

Atentamente,