Me encuentro en que en un diálogo con CheckBox éste no se repinta correctamente si hay un factor externo que cambia su estado (activo a no activo). En este pequeño ejemplo que adjunto se puede observar lo que ocurre. El Checkbox inicialmente desactivado, se activará al seleccionar el 2º radio, se observa cómo borra todo el diálogo desde su posición hacia abajo.
He conseguido aislar el problema en diálogos transparentes y cuando se incluye en el rc el aspecto xp (windowsxp.manifest). El problema es que tengo todos los diálogos de este modo (transparentes) y no me interesa quitar el manifest, claro.
¿Se trata de un bug de la versión? Cabe decir que con la que usaba anteriormente no había observado este comportamiento.
Aquí el prg y el rc para probarlo.
Code: Select all
#include "fivewin.ch"
Function Main()
Local oDlg, oCheck, oRadio, nRadio:=1, lCheck:=.F.
DEFINE DIALOG oDlg NAME "TEST" TRANSPARENT COLOR CLR_BLACK, CLR_WHITE
REDEFINE CHECKBOX oCheck VAR lCheck ID 103 OF oDlg WHEN nRadio=2
REDEFINE RADIO oRadio VAR nRadio ID 104,105 OF oDlg
ACTIVATE DIALOG oDlg CENTERED
Return (nil)
Code: Select all
// RESOURCE SCRIPT generated by "Pelles C for Windows, version 9.00".
#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"
LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US
TEST DIALOG DISCARDABLE 45, 45, 339, 143
STYLE WS_POPUP|DS_MODALFRAME|WS_CAPTION|WS_VISIBLE
CAPTION "Prueba Check "
FONT 8, "Segoe UI"
{
CONTROL "&Check 1", 103, "Button", BS_AUTOCHECKBOX|BS_FLAT|WS_TABSTOP, 15, 30, 132, 12
CONTROL "No &activo", 104, "Button", BS_AUTORADIOBUTTON, 189, 30, 60, 12
CONTROL "&Activo\r\n\r\n", 105, "Button", BS_AUTORADIOBUTTON, 189, 45, 74, 12
CONTROL "Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno Texto de relleno ", -1, "Static", WS_GROUP, 15, 71, 283, 49
}
// Add this to your resources RC file
#ifdef __FLAT__
1 24 "WindowsXP.Manifest"
#endif
#ifdef __64__
1 24 "WinXP/WindowsXP.Manifest64"
#endif