FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posted: Thu Jul 09, 2015 02:53 PM
Pues si tiene buena pinta lo que muestras, enhorabuena

Oye, de la struct del font
Code (fw): Select all Collapse
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
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posted: Thu Jul 09, 2015 03:04 PM
Pues de momento pensaba quedarme con :

Code (fw): Select all Collapse
   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
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posted: Thu Jul 09, 2015 03:15 PM
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 (fw): Select all Collapse
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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posted: Thu Jul 09, 2015 03:47 PM
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 (fw): Select all Collapse
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
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posted: Thu Jul 09, 2015 04:07 PM

Ok, lo cambio.

Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posted: Thu Jul 09, 2015 04:12 PM
Ah, para no tener que construir el array en funcion del ofont del Window o dialog activo, o cualquier otro Font definido previamente

Code (fw): Select all Collapse
&(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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posted: Wed May 25, 2016 03:06 AM
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 (fw): Select all Collapse
#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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posted: Wed May 25, 2016 10:09 AM

Francisco, estás usando xHarbour?

Si es asi

viewtopic.php?f=3t=22538hilit=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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado
Posted: Wed May 25, 2016 03:59 PM
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

Continue the discussion