Bug in checkbox in folder (dot border) with themes (fixed)

Post Reply
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Bug in checkbox in folder (dot border) with themes (fixed)

Post by carlos vargas »

Hola Antonio,

este codigo muestra un error que tiene hace tiempo fwh con los checkbox
cuando estan contenidos en folder, si empiezas a presionar la tecla tab para moverte entre los controls del dialogo miraras que la primera vez quel el chekbox obtenga foco no mostrara el tipico borde punteado, la siguiente ves lo tomara pero al perder el foco mantiene el borde.

esto no ocurre cuando no aplicas el tema de winxp.

Code: Select all

//win32.prg
#include "fivewin.ch"

PROCEDURE Main()

	LOCAL oDlg, oFolder
	LOCAL cVar0, cVar1, cVar2, lVar1, lVar2

	cVar0 := space(10)
	cVar1 := space(20)
	cVar2 := space(20)
	lVar1 := .t.
	lVar2 := .t.

	DEFINE DIALOG oDlg NAME "Main"

	REDEFINE GET cVar0 ID 101 OF oDlg

	REDEFINE FOLDER oFolder ID 102 OF oDlg ;
		PROMPT "&Uno", "&Dos" ;
		DIALOGS "Page1", "Page2"

		REDEFINE GET cVar1 ID 101 OF oFolder:aDialogs[1]
		REDEFINE CHECKBOX lVar1 ID 102 OF oFolder:aDialogs[1]

		REDEFINE GET cVar2 ID 101 OF oFolder:aDialogs[2]
		REDEFINE CHECKBOX lVar2 ID 102 OF oFolder:aDialogs[2]

	REDEFINE BUTTON ID 103 OF oDlg ACTION oDlg:end()

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIL

Code: Select all

//win32.rc
1 24 "winxp.man"

main DIALOG 8, 53, 262, 200
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Error de Checkbox en folder"
FONT 8, "MS Sans Serif"
{
 LTEXT "Codigo", -1, 9, 8, 32, 8
 EDITTEXT 101, 43, 8, 53, 12
 CONTROL "", 102, "SysTabControl32", 0 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 4, 27, 256, 151
 PUSHBUTTON "Cerrar", 103, 210, 182, 50, 14
}


Page1 DIALOG 6, 15, 161, 114
STYLE 0x4L | WS_CHILD | WS_VISIBLE
FONT 8, "MS Sans Serif"
{
 LTEXT "Codigo", -1, 9, 9, 30, 8
 EDITTEXT 101, 36, 9, 51, 12
 CHECKBOX "Casado", 102, 37, 24, 49, 12, BS_AUTOCHECKBOX | WS_TABSTOP
}


Page2 DIALOG 6, 15, 161, 114
STYLE 0x4L | WS_CHILD | WS_VISIBLE
FONT 8, "MS Sans Serif"
{
 LTEXT "Codigo", -1, 9, 9, 30, 8
 EDITTEXT 101, 36, 9, 51, 12
 CHECKBOX "Casado", 102, 37, 24, 49, 12, BS_AUTOCHECKBOX | WS_TABSTOP
}

Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Post by carlos vargas »

caba aclarar con fwh 2.6, xharbour y harbour, bcc55.

una imagen del problema

Image

salu2
carlos vargas[/url]
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Carlos,

El build de Febrero de FWH soluciona este problema. Hemos tardado en cazarlo, pero al final lo hemos conseguido :)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Post by carlos vargas »

Gracias Antonio, :-) ya empezaba a temer que lo hubieras olvidado, o que estuviera dificil la cosa :-(, no es posible modificar los fuentes ?

salu2
gracias
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Carlos,

En FWH 2.7 Febrero se han implementado _, sin embargo esto puede solucionarlo,

En el método Colors( hDC ) de checkbox y radio, hay que implementar este cambio:

Code: Select all

METHOD Colors( hDC ) CLASS ...

   ...

   if IsAppThemed()
      DrawPBack( ::hWnd,  hDC )
   endif   

return ::oBrush:hBrush
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Post by carlos vargas »

gracias antonio, funciono de esta forma (solo en xharbour)

Code: Select all

...
/*al inicio de la aplicación*/
EXTEND CLASS TRADIO		WITH METHOD Colors
EXTEND CLASS TCHECKBOX  WITH METHOD Colors
...

Code: Select all

/*en cualquier parte :-)*/
STATIC FUNCTION Colors( hDC )
	LOCAL SELF := HB_QSelf()

	IF IsAppThemed()
		DrawPBack( ::hWnd,  hDC )
	ENDIF

RETURN ::oBrush:hBrush
salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Post by carlos vargas »

Antonio, si bien se corrigio el problema de borde puntedo en el checkbox cuando tienes temas aplicados en winxp, cuando no tiene tema aparece dentro de la region del borde un color blanco de fondo. :-(

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Carlos,

Hemos probado el ejemplo samples\TestFold.prg con y sin temas y está bien. De todas formas hemos implementado una serie de cambios que publicaremos en el build de Marzo.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply