Borde plano en custom control

Borde plano en custom control

Postby José Luis Sánchez » Sat Dec 18, 2021 4:49 pm

Hola a todos,

en mis programas utilizo la clase TTagEver - https://github.com/JoseluisSanchez/TTagEver - que incorporo en los díalogos como un custom control de esta manera:

CONTROL "", 110, "TTagEver", 0x50A10000, 8, 8, 245, 90

Es decir, en el apartado Style del control indico 0x50A10000 - que confieso que ni se lo que significa ni de donde lo saqué :) y el control se ve de esta manera:

Image

Como podeis ver, el campo donde van las etiquetas tiene efecto 3D y me gustaría que el borde fuera plano como el resto de los controles. ¿ Sabéis cómo lo puedo hacer ? Creo que es algo del estilo del control, pero ni idea de qué valor utilizar.

Saludos,
User avatar
José Luis Sánchez
 
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España

Re: Borde plano en custom control

Postby Antonio Linares » Sat Dec 18, 2021 5:39 pm

José Luis,

La primera idea:

usar Spy++ que viene con Visual Studio Community para comparar los estilos de esos controles
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Borde plano en custom control

Postby Antonio Linares » Sat Dec 18, 2021 5:41 pm

Otra opción:

Usar el editor de recursos de Visual Studio Community para revisar los estilos del recurso

También podrias hacerlo usando ResEdit ó PellesC editor de recursos
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Borde plano en custom control

Postby Antonio Linares » Sat Dec 18, 2021 5:43 pm

En estos foros buscar por 0x50A10000 y tienes algunos mensajes pero no creo que aclaren lo que buscas
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Borde plano en custom control

Postby karinha » Sat Dec 18, 2021 9:47 pm

Esto? No creo sea la misma cosa,

http://forums.fivetechsupport.com/viewtopic.php?f=3&t=40923

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7835
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Borde plano en custom control

Postby José Luis Sánchez » Sun Dec 19, 2021 3:27 pm

Gracias por la contestación.

En la clase original de Paco García el estilo es:

::nStyle = nOR( WS_CHILD, WS_VISIBLE, WS_CLIPSIBLINGS, WS_CLIPCHILDREN, WS_TABSTOP, WS_VSCROLL, WS_BORDER )

Probando a quitar el WS_BORDER me queda el control ... sin el borde. De esta manera:

Image

y en cuanto meto el WS_BORDER el borde me lo pinta en 3D que es lo que no quiero.

Estoy viendo que si abro el .rc con VSCode puedo indicar el estilo con

CONTROL "", 106, "TTagEver", WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_TABSTOP, 50, 85, 256, 33

y luego con ResEdit lo transforma en la cadena hexadecimal apropiada. Muy cómodo para hacer probaturas.

Saludos,
User avatar
José Luis Sánchez
 
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España

Re: Borde plano en custom control

Postby José Luis Sánchez » Sun Dec 19, 2021 3:28 pm

¿ No irán los tiros por el .manifest ?

Lo digo porque los controles normales sí cogen borde plano con el manifest pero sin él salen como en 3D.

Saludos,
User avatar
José Luis Sánchez
 
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España

Re: Borde plano en custom control

Postby Antonio Linares » Sun Dec 19, 2021 5:55 pm

Posiblemente

de todas formas con el Spy++ puedes comparar los estilos y ver que falta, si es que falta algo

Otra opción es que tu pintes el recuadro gris que falta, pero eso es un tanto "chapu", lo suyo es que se pinte por el manifest
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Borde plano en custom control

Postby hmpaquito » Mon Dec 20, 2021 10:04 am

José Luis,

Sospecho que necesitas poner un
Code: Select all  Expand view  RUN
::l3D:= .t.
en ese control. No sé como se incorpora por recursos, nunca utilicé recursos, pero muy probablemente van por ahí los tiros

Tambien chapuceando un poco, en el on init del dialogo podrias poner
Code: Select all  Expand view  RUN
oTag:Set3DLook(.t.)

Salu2
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Borde plano en custom control

Postby karinha » Mon Dec 20, 2021 1:09 pm

Paquito, que hace esto?

Code: Select all  Expand view  RUN

  SET 3DLOOK ON
  SET MULTIPLE OFF
  SetWin95Look(.T.)  // -> ???
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7835
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Borde plano en custom control

Postby hmpaquito » Mon Dec 20, 2021 5:20 pm

Perhaps, look like Windows 95

Look at win95lok.c
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Borde plano en custom control

Postby José Luis Sánchez » Mon Dec 20, 2021 5:44 pm

He conseguido el efecto que quería dejando el control sin borde en los recursos y luego pintando el borde en la propia clase que tiene una data para ello y no lo sabía. Queda de esta manera:

Image

Muchas gracias a todos por vuestra ayuda !!

Saludos,
User avatar
José Luis Sánchez
 
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 42 guests