XBrowse, ajustar aspecto de las barras de scroll*Solucionado

User avatar
cnavarro
Posts: 6558
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by cnavarro »

Pues si tiene buena pinta lo que muestras, enhorabuena

Oye, de la struct del font

Code: Select all | Expand


typedef struct tagLOGFONT {
  LONG  lfHeight;
  LONG  lfWidth;
  LONG  lfEscapement;
  LONG  lfOrientation;
  LONG  lfWeight;
  BYTE  lfItalic;
  BYTE  lfUnderline;
  BYTE  lfStrikeOut;
  BYTE  lfCharSet;
  BYTE  lfOutPrecision;
  BYTE  lfClipPrecision;
  BYTE  lfQuality;
  BYTE  lfPitchAndFamily;
  TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT, *PLOGFONT;
 


Estás pensando en darle tratamiento a todos los elementos?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by AngelSalom »

Pues de momento pensaba quedarme con :

Code: Select all | Expand

  LONG  lfHeight;
  LONG  lfWidth;
  LONG  lfWeight;
  BYTE  lfItalic;
  TCHAR lfFaceName[LF_FACESIZE];
 


Me da a mí que con estas tengo suficiente ...
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by AngelSalom »

Aquí la función que habías puesto con el añadido del cuarto parámetro pasado por array para definir la fuente. ¿Qué te parece el planteamiento? No estoy muy ducho en C ... funcionar, funciona pero igual estoy haciendo alguna burrada :? :?

Code: Select all | Expand


HB_FUNC ( SETNONCLIENT )    // nPos , uVal, ActWinIni, aFont[cName,nHeight,nWidth]
{
   INT nPos     = hb_parni( 1 );
   INT nVal     = hb_parni( 2 );
   BOOL bActIni = hb_parl( 3 );
   LPSTR cFuente;
   INT nAltoFuente;
   INT nAnchoFuente;
   
   NONCLIENTMETRICS mi;
   
   cFuente = ( LPSTR ) hb_parvc( 4, 1 );
   nAltoFuente = ( INT ) hb_parvni ( 4 , 2);
   nAnchoFuente = ( INT ) hb_parvni ( 4 , 3);
   
   memset( ( char * ) &mi, 0, sizeof( NONCLIENTMETRICS ) );
   mi.cbSize = sizeof( NONCLIENTMETRICS );
   SystemParametersInfo( SPI_GETNONCLIENTMETRICS, 0, &mi, 0);

   switch( nPos )
   {
      case  0:   // Actualizar todo (pendiente)
           //mi.iBorderWidth     = nVal;
           mi.iScrollWidth     = nVal+12;
           mi.iScrollHeight    = nVal+12;
           mi.iCaptionWidth    = nVal+21;
           mi.iCaptionHeight   = nVal+17;
           mi.iSmCaptionWidth  = nVal+17;
           mi.iSmCaptionHeight = nVal+17;
           mi.iMenuWidth       = nVal+12;
           mi.iMenuHeight      = nVal+12;
           break;
      case  1:
           mi.iBorderWidth = nVal;
           break;
      case  2:
           mi.iScrollWidth = nVal;
           break;
      case  3:
           mi.iScrollHeight = nVal;
           break;
      case  4:
           mi.iCaptionWidth = nVal;
           break;
      case  5:
           mi.iCaptionHeight = nVal;
           break;
      case  6:
           mi.iSmCaptionWidth = nVal;
           break;
      case  7:
           mi.iSmCaptionHeight = nVal;
           break;
      case  8:
           mi.iMenuWidth = nVal;
           break;
      case  9:
           mi.iMenuHeight = nVal;
           break;
      case 10:
           strcpy (mi.lfCaptionFont.lfFaceName, cFuente);
           mi.lfCaptionFont.lfHeight = nAltoFuente;
           mi.lfCaptionFont.lfWidth = nAnchoFuente;
           break;
   }

   if ( bActIni )
     SystemParametersInfo( SPI_SETNONCLIENTMETRICS, sizeof( mi ), &mi, SPIF_SENDCHANGE);  // Update Win.ini
   else
     SystemParametersInfo( SPI_SETNONCLIENTMETRICS, sizeof( mi ), &mi, 0 ); // NO Update Win.ini

}

 
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
cnavarro
Posts: 6558
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by cnavarro »

AngelSalom wrote:Aquí la función que habías puesto con el añadido del cuarto parámetro pasado por array para definir la fuente. ¿Qué te parece el planteamiento? No estoy muy ducho en C ... funcionar, funciona pero igual estoy haciendo alguna burrada :? :?

Code: Select all | Expand


HB_FUNC ( SETNONCLIENT )    // nPos , uVal, ActWinIni, aFont[cName,nHeight,nWidth]
{
   INT nPos     = hb_parni( 1 );
   INT nVal     = hb_parni( 2 );
   BOOL bActIni = hb_parl( 3 );
   LPSTR cFuente;
   INT nAltoFuente;
   INT nAnchoFuente;
   
   NONCLIENTMETRICS mi;
   
   cFuente = ( LPSTR ) hb_parvc( 4, 1 );
   nAltoFuente = ( INT ) hb_parvni ( 4 , 2);
   nAnchoFuente = ( INT ) hb_parvni ( 4 , 3);
   
   memset( ( char * ) &mi, 0, sizeof( NONCLIENTMETRICS ) );
   mi.cbSize = sizeof( NONCLIENTMETRICS );
   SystemParametersInfo( SPI_GETNONCLIENTMETRICS, 0, &mi, 0);

   switch( nPos )
   {
      case  0:   // Actualizar todo (pendiente)
           //mi.iBorderWidth     = nVal;
           mi.iScrollWidth     = nVal+12;
           mi.iScrollHeight    = nVal+12;
           mi.iCaptionWidth    = nVal+21;
           mi.iCaptionHeight   = nVal+17;
           mi.iSmCaptionWidth  = nVal+17;
           mi.iSmCaptionHeight = nVal+17;
           mi.iMenuWidth       = nVal+12;
           mi.iMenuHeight      = nVal+12;
           break;
      case  1:
           mi.iBorderWidth = nVal;
           break;
      case  2:
           mi.iScrollWidth = nVal;
           break;
      case  3:
           mi.iScrollHeight = nVal;
           break;
      case  4:
           mi.iCaptionWidth = nVal;
           break;
      case  5:
           mi.iCaptionHeight = nVal;
           break;
      case  6:
           mi.iSmCaptionWidth = nVal;
           break;
      case  7:
           mi.iSmCaptionHeight = nVal;
           break;
      case  8:
           mi.iMenuWidth = nVal;
           break;
      case  9:
           mi.iMenuHeight = nVal;
           break;

#if (WINVER >= 0x0600)
      case 10:
           mi.iPaddedBorderWidth = nVal;
#endif

      case 11:
           strcpy (mi.lfCaptionFont.lfFaceName, cFuente);
           mi.lfCaptionFont.lfHeight = nAltoFuente;
           mi.lfCaptionFont.lfWidth = nAnchoFuente;
           break;
   }

   if ( bActIni )
     SystemParametersInfo( SPI_SETNONCLIENTMETRICS, sizeof( mi ), &mi, SPIF_SENDCHANGE);  // Update Win.ini
   else
     SystemParametersInfo( SPI_SETNONCLIENTMETRICS, sizeof( mi ), &mi, 0 ); // NO Update Win.ini

}

 


Angel, el font ha de comenzar en el case 11:
Lo he modificado sobre tu codigo, pero no lo he probado
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by AngelSalom »

Ok, lo cambio.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
cnavarro
Posts: 6558
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by cnavarro »

Ah, para no tener que construir el array en funcion del ofont del Window o dialog activo, o cualquier otro Font definido previamente

Code: Select all | Expand



&(FontToText( oWnd:oFont ))

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
FranciscoA
Posts: 2164
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by FranciscoA »

Amigos del Foro.
Mis conocimientos de "C" son nulos.

Estoy tratando de incluir las funciones creadas aqui por Angel Salomon y Cristobal Navarro, en un proyecto Comandero para ampliar el tamaño de los Scrols Vertical y Horizontal.

Code: Select all | Expand

#pragma BEGINDUMP
#include "windows.h"
#include "hbapi.h"
#include "hbcomp.h"


#pragma BEGINDUMP
#include "windows.h"
#include "hbapi.h"
#include "hbcomp.h"


HB_FUNC ( NONCLIENTGET )
{
   
   NONCLIENTMETRICS mi;
   
   memset( ( char * ) &mi, 0, sizeof( NONCLIENTMETRICS ) );
   mi.cbSize = sizeof( NONCLIENTMETRICS );
   SystemParametersInfo( SPI_GETNONCLIENTMETRICS, 0, &mi, 0);

   // Devuelvo un array con los valores antes de cambiarlos
   
   hb_reta(4);
   hb_storvni(mi.iScrollWidth, -1, 1);
   hb_storvni(mi.iScrollHeight,-1, 2);
   hb_storvni(mi.iCaptionHeight, -1, 3);
   hb_storvni(mi.iMenuHeight, -1, 4);
   
}


HB_FUNC ( NONCLIENTSET )
{
   
   NONCLIENTMETRICS mi;
   
   memset( ( char * ) &mi, 0, sizeof( NONCLIENTMETRICS ) );
   mi.cbSize = sizeof( NONCLIENTMETRICS );
   SystemParametersInfo( SPI_GETNONCLIENTMETRICS, 0, &mi, 0);

   // Grabar el valor

   mi.iScrollWidth = hb_parnl( 1 );
   mi.iScrollHeight = hb_parnl( 2 );
   mi.iCaptionHeight = hb_parnl ( 3 );
   mi.iMenuHeight = hb_parnl ( 4 );
   
   SystemParametersInfo( SPI_SETNONCLIENTMETRICS, sizeof( mi ), &mi, 0 ); //SPIF_SENDCHANGE);  // Update Win.ini

}
 
#pragma ENDDUMP
 


Al compilar me tira el siguiente warning:
Warning W8065 D:\\RESTTO~1\\RESTOR~1\\comndero.prg 1436: Call to function 'hb_storvni' with no prototype in function HB_FUN_NONCLIENTGET

Aunque crea el ejecutable y funciona bien, al salir no devuelve los Scrols a su tamaño original.

Como dije, desconozco el lenguaje C, y por lo tanto no soy capaz de modificar este codigo.

Quizas Cristobal, Angel o alguien mas quiera "darme una luz".

Gracias.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
cnavarro
Posts: 6558
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by cnavarro »

Francisco, estás usando xHarbour?

Si es asi
viewtopic.php?f=3&t=22538&hilit=hb_storvni+xharbour#p120168
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
FranciscoA
Posts: 2164
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by FranciscoA »

Francisco, estás usando xHarbour?

Si es asi
viewtopic.php?f=3&t=22538&hilit=hb_storvni+xharbour#p120168


Cristobal, muchas gracias. Está todo claro.

Decidí usar solo la function NonClient(), ya que mi unica necesidad era el tamaño de los Scrolls:
Al iniciar NonClient(30,30), y al salir del programa NonClient(18,18) //solo dos parametros

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
Post Reply