XBrowse, ajustar aspecto de las barras de scroll*Solucionado

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

Postby cnavarro » Thu Jul 09, 2015 2:53 pm

Pues si tiene buena pinta lo que muestras, enhorabuena

Oye, de la struct del font
Code: Select all  Expand view  RUN

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
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby AngelSalom » Thu Jul 09, 2015 3:04 pm

Pues de momento pensaba quedarme con :

Code: Select all  Expand view  RUN
  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

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

Postby AngelSalom » Thu Jul 09, 2015 3: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: Select all  Expand view  RUN

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
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

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

Postby cnavarro » Thu Jul 09, 2015 3: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: Select all  Expand view  RUN

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
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby AngelSalom » Thu Jul 09, 2015 4:07 pm

Ok, lo cambio.
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

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

Postby cnavarro » Thu Jul 09, 2015 4: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: Select all  Expand view  RUN


&(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
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby FranciscoA » Wed May 25, 2016 3: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: Select all  Expand view  RUN
#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
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

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

Postby cnavarro » Wed May 25, 2016 10:09 am

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
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

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

Postby FranciscoA » Wed May 25, 2016 3: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
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 53 guests