Amigos, disculpen mi insistencia. Como expuse anteriormente los RBTN ya me funcionan de manera genral, pero lo que necesito es que se comporten como BTNBMP o BUTTONBMP en los que se puede navegar entre ellos utilizando TabStop o las flechitas.
El c贸digo siguiente lo he construido tomando como base una soluci贸n que el amigo Daniel poste贸 aqu铆 en el foro, pero no me trabaja. 驴Qu茅 estoy haciendo mal?, 驴Qu茅 se puede hacer para los botones RBTN se comporten como los mencionados?
Bueno... si no hay soluci贸n para esto, tendr茅 que seguir utilizando BUTTONBMP a costa de sacrificar una presentaci贸n "m谩s profesional"
#include "FiveWin.ch"
#include "ribbon.ch"
//------------------------------
FUNCTION Transacc()
LOCAL oDlg, oBrush,n
local oBorrar,oBusca,oImpri
local oDoc1,oDoc2,oDoc3,oDoc4,oDoc5,oDoc6,oDoc8, oCata,oCons
DEFINE BRUSH oBrush FILENAME ".\stone.bmp"
DEFINE DIALOG oDlg RESOURCE "Grabar2" ;
TITLE "Prueba mov TRBTN con tabstop o teclas direcc";
BRUSH oBrush TRANSPARENT
REDEFINE RBBTN oCata ID 175 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oCons ID 176 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oBorrar ID 231 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oBusca ID 233 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oImpri Prompt "Reportes " ID 234 OF oDlg BITMAP ".\folder.bmp" LEFT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oDoc1 ID 221 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oDoc2 ID 222 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oDoc3 ID 223 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oDoc4 ID 224 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oDoc5 ID 225 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oDoc6 ID 226 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( Msginfo("hola") )
REDEFINE RBBTN oDoc8 ID 228 OF oDlg BITMAP ".\folder.bmp" RIGHT BORDER TRANSPARENT ACTION ( oDlg:End() )
For n:=1 to len(oDlg:aControls)
if oDlg:aControls[n]:ClassName() ="TRBTN"
oDlg:aControls[n]:nDlgCode = DLGC_WANTALLKEYS
endif
Next
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT BotsRBBTN(oDlg)
oBrush:End()
RETURN NIL
//0000000000
//----------------------//
Function BotsRBBTN(oDlg)
local n
For n:=1 to len(oDlg:aControls)
if oDlg:aControls[n]:ClassName() ="TRBTN"
__ChangeStyleWindow( oDlg:aControls[n]:hWnd, WS_TABSTOP )
oDlg:aControls[n]:bGotFocus = btnGotFocus( oDlg:aControls[n] )
oDlg:aControls[n]:bLostFocus = btnLostFocus( oDlg:aControls[n] )
endif
Next
return nil
//----------------------
FUNCTION btnGotFocus( o )
return {|| o:aGradiant := { { 1/3, nRGB( 255, 253, 222 ), nRGB( 255, 231, 151 ) }, ;
{ 2/3, nRGB( 255, 215, 84 ), nRGB( 255, 233, 162 ) } },;
DeleteObject( o:hBack ),;
o:hBack := NIL,;
o:Refresh() }
//-------------------------
FUNCTION btnLostFocus( o )
local CLR_GRAD1 := nRGB( 236, 245, 255 )
local CLR_GRAD2 := nRGB( 185, 218, 255 )
local CLR_GRAD3 := nRGB( 159, 207, 255 )
local CLR_GRAD4 := nRGB( 0, 111, 221 )
return {|| o:aGradiant := { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
{ 2/3, CLR_GRAD3, CLR_GRAD4 } },;
DeleteObject( o:hBack ),;
o:hBack := NIL,;
o:Refresh() }
//AQUI, EL .RC
// RESOURCE SCRIPT generated by "Pelles C for Windows, version 6.00".
//#include <windows.h>
//#include <commctrl.h>
//#include <richedit.h>
LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US
GRABAR2 DIALOG FIXED IMPURE 7, -49, 511, 293
STYLE WS_POPUP|WS_THICKFRAME|WS_CAPTION|WS_MAXIMIZEBOX|WS_VISIBLE
CAPTION "Grabacion de Documentos"
FONT 8, "MS Sans Serif"
{
CONTROL "C/Diario", 221, "TRBTN", WS_TABSTOP, 2, 24, 62, 26
CONTROL "Rec/Caj", 222, "TRBTN", WS_TABSTOP, 66, 24, 62, 26
CONTROL "Depositos", 223, "TRBTN", WS_TABSTOP, 130, 24, 62, 26
CONTROL "Cheques", 224, "TRBTN", WS_TABSTOP, 194, 24, 62, 26
CONTROL "Rec/Caja", 225, "TRBTN", WS_TABSTOP, 258, 24, 62, 26
CONTROL "Notas DC", 226, "TRBTN", WS_TABSTOP, 322, 24, 62, 26
CONTROL "Salir", 228, "TRBTN", WS_TABSTOP, 448, 24, 62, 26
CONTROL "Catalogo", 175, "TRBTN", WS_TABSTOP, 384, 0, 62, 22
CONTROL "Consultas", 176, "TRBTN", WS_TABSTOP, 448, 0, 62, 22
CONTROL "Borrar", 231, "TRBTN", WS_TABSTOP, 2, 264, 62, 26
CONTROL "Buscar", 233, "TRBTN", WS_TABSTOP, 66, 264, 62, 26
CONTROL "&Reportes", 234, "TRBTN", WS_TABSTOP, 130, 264, 62, 26
}