Borde plano en custom control

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

Borde plano en custom control

Post by José Luis Sánchez »

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
Antonio Linares
Site Admin
Posts: 42520
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 75 times
Contact:

Re: Borde plano en custom control

Post by Antonio Linares »

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: 42520
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 75 times
Contact:

Re: Borde plano en custom control

Post by Antonio Linares »

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: 42520
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 75 times
Contact:

Re: Borde plano en custom control

Post by Antonio Linares »

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
karinha
Posts: 7935
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Borde plano en custom control

Post by karinha »

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
José Luis Sánchez
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Re: Borde plano en custom control

Post by José Luis Sánchez »

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
Contact:

Re: Borde plano en custom control

Post by José Luis Sánchez »

¿ 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
Antonio Linares
Site Admin
Posts: 42520
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 75 times
Contact:

Re: Borde plano en custom control

Post by Antonio Linares »

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
hmpaquito
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Borde plano en custom control

Post by hmpaquito »

José Luis,

Sospecho que necesitas poner un

Code: Select all | Expand

::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

oTag:Set3DLook(.t.)

Salu2
User avatar
karinha
Posts: 7935
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Borde plano en custom control

Post by karinha »

Paquito, que hace esto?

Code: Select all | Expand


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


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
hmpaquito
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Borde plano en custom control

Post by hmpaquito »

Perhaps, look like Windows 95

Look at win95lok.c
User avatar
José Luis Sánchez
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Re: Borde plano en custom control

Post by José Luis Sánchez »

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,
Post Reply