Static que no funciona en Dialogo con cláusula TRANSPARENT
Posted: Fri May 06, 2011 8:56 am
Tengo un diálogo definido en recursos (un .rc) editado con Pelles. En la parte inferior uso un rectángulo blanco para enmarcar los botones, declarado como un static. Si uso el diálogo normal, sin cláusulas adicionales y usando los colores por defecto funciona todo bien, pero si le cambio el color de fondo y uso la cláusula TRANSPARENT del diálogo ya no me lo muestra. Si no uso la clausula TRANSPARENT los says no muestran correctamente el color de fondo del diálogo.
El código prg
y el rc
y el problema en vivo:
Aparentemente el problema está en la función FIXSAYS, que altera los STATICS para que no pinten el fondo, el problema es que tambien altera los STATICs que no son SAYS. Estoy adivinando, el código no está disponible en la version FWH 11.04.
El código prg
Code: Select all
DEFINE DIALOG oDlg RESOURCE "CLIENTES_FORM" HELPID 0 COLOR CLR_TEXTO, CLR_FONDO TRANSPARENT
oDlg:lHelpIcon := .f.
REDEFINE GET oRB:Codigo ID 101 OF oDlg VALID NoExiste( oRB:Codigo, 'Clientes', 'Codigo' )
REDEFINE CHECKBOX oRB:Exterior ID 113 OF oDlg
REDEFINE GET oRB:Cif ID 102 OF oDlg VALID CIFValido( oRB:CIF ) .Or. oRB:Exterior
REDEFINE GET oRB:Empresa ID 103 OF oDlg VALID !Empty( oRB:Empresa )
REDEFINE GET oRB:Direccion ID 104 OF oDlg
REDEFINE GET oRB:Localidad ID 105 OF oDlg
REDEFINE GET oRB:Postal ID 106 OF oDlg
REDEFINE GET oRB:Capital ID 107 OF oDlg
REDEFINE GET oRB:Contacto ID 117 OF oDlg
REDEFINE GET oRB:Telefono ID 108 OF oDlg
REDEFINE GET oRB:Telefono2 ID 109 OF oDlg
REDEFINE GET oRB:Fax ID 110 OF oDlg
REDEFINE GET oRB:Movil ID 111 OF oDlg
REDEFINE GET oRB:EMail ID 112 OF oDlg
REDEFINE CHECKBOX oRB:Activo ID 116 OF oDlg
REDEFINE CHECKBOX oRB:Excl347 ID 118 OF oDlg
REDEFINE GET oRB:CtaClte ID 114 OF oDlg
REDEFINE GET oRB:CtaPago ID 115 OF oDlg
REDEFINE BUTTON oBtn ID 201 OF oDlg ACTION (oDlg:End(), lOk:= .T.)
REDEFINE BUTTON oBtn ID 202 OF oDlg ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTER
Code: Select all
CLIENTES_FORM DIALOGEX DISCARDABLE 6, 18, 259, 236
STYLE WS_POPUP|DS_MODALFRAME|DS_3DLOOK|WS_CAPTION|WS_SYSMENU|WS_VISIBLE
CAPTION "Clientes"
FONT 8, "MS Shell Dlg", 0, 0, 1
{
CONTROL "", 4001, "Static", SS_WHITERECT|SS_CENTERIMAGE, 0, 205, 259, 31
CONTROL "Código", 50, "Static", WS_GROUP, 12, 10, 44, 8, WS_EX_TRANSPARENT
CONTROL "", 101, "Edit", ES_RIGHT|WS_BORDER|WS_TABSTOP, 61, 8, 36, 12
CONTROL "Exterior", 113, "Button", BS_AUTOCHECKBOX|WS_TABSTOP, 103, 9, 37, 10
CONTROL "CIF/NIF", 51, "Static", WS_GROUP, 148, 10, 31, 8
CONTROL "", 102, "Edit", WS_BORDER|WS_TABSTOP, 181, 8, 70, 12
CONTROL "Nombre", 52, "Static", WS_GROUP, 12, 25, 44, 8, WS_EX_TRANSPARENT
CONTROL "", 103, "Edit", WS_BORDER|WS_TABSTOP, 61, 23, 190, 12
CONTROL "Domicilio", 53, "Static", WS_GROUP, 12, 40, 44, 8
CONTROL "", 104, "Edit", WS_BORDER|WS_TABSTOP, 61, 38, 190, 12
CONTROL "Localidad", 54, "Static", WS_GROUP, 12, 55, 44, 8
CONTROL "", 105, "Edit", WS_BORDER|WS_TABSTOP, 61, 53, 190, 12
CONTROL "Código postal", 55, "Static", WS_GROUP, 12, 71, 44, 8
CONTROL "", 106, "Edit", ES_RIGHT|WS_BORDER|WS_TABSTOP, 61, 69, 36, 12
CONTROL "Provincia", 56, "Static", WS_GROUP, 106, 71, 36, 8
CONTROL "", 107, "Edit", WS_BORDER|WS_TABSTOP, 142, 69, 109, 12
CONTROL "Contacto", 64, "Static", WS_GROUP, 12, 87, 38, 8
CONTROL "", 117, "Edit", ES_AUTOHSCROLL|ES_WANTRETURN|WS_BORDER|WS_TABSTOP, 61, 85, 190, 12
CONTROL "Teléfono 1", 57, "Static", WS_GROUP, 12, 102, 38, 8
CONTROL "", 108, "Edit", ES_AUTOHSCROLL|ES_WANTRETURN|WS_BORDER|WS_TABSTOP, 61, 100, 190, 12
CONTROL "Teléfono 2", 58, "Static", WS_GROUP, 12, 117, 38, 8
CONTROL "", 109, "Edit", ES_AUTOHSCROLL|ES_WANTRETURN|WS_BORDER|WS_TABSTOP, 61, 115, 190, 12
CONTROL "Fax", 59, "Static", WS_GROUP, 12, 132, 38, 8
CONTROL "", 110, "Edit", ES_WANTRETURN|WS_BORDER|WS_TABSTOP, 61, 130, 75, 12
CONTROL "Móvil", 60, "Static", WS_GROUP, 152, 132, 21, 8
CONTROL "", 111, "Edit", ES_WANTRETURN|WS_BORDER|WS_TABSTOP, 176, 130, 75, 12
CONTROL "correo-e", 61, "Static", WS_GROUP, 12, 147, 38, 8
CONTROL "", 112, "Edit", WS_BORDER|WS_TABSTOP, 61, 145, 190, 12
CONTROL "Activo", 116, "Button", BS_CHECKBOX|WS_TABSTOP, 62, 162, 40, 10, WS_EX_TRANSPARENT
CONTROL "Cuenta cliente", 62, "Static", WS_GROUP, 12, 187, 51, 8
CONTROL "", 114, "Edit", ES_WANTRETURN|WS_BORDER|WS_TABSTOP, 61, 185, 64, 12
CONTROL "Cuenta cobros", 63, "Static", WS_GROUP, 134, 187, 50, 8
CONTROL "", 115, "Edit", ES_WANTRETURN|WS_BORDER|WS_TABSTOP, 187, 185, 64, 12
/// ESTA ES
CONTROL "", 4002, "Static", SS_ETCHEDHORZ|SS_CENTERIMAGE|WS_BORDER, 12, 177, 240, 1
/// ESTA ES
CONTROL "&Aceptar", 201, "Button", WS_TABSTOP, 153, 213, 45, 15
CONTROL "&Cancelar", 202, "Button", WS_TABSTOP, 206, 213, 45, 15
CONTROL "Excluir del 347", 118, "Button", BS_CHECKBOX|WS_TABSTOP, 145, 162, 60, 10, WS_EX_TRANSPARENT
}
Aparentemente el problema está en la función FIXSAYS, que altera los STATICS para que no pinten el fondo, el problema es que tambien altera los STATICs que no son SAYS. Estoy adivinando, el código no está disponible en la version FWH 11.04.