SE VE DISTINTO
Posted: Wed Feb 03, 2016 3:57 pm
Hola Amigos:
Aquí estoy con un problemilla que me ha desconcertado, trabajo en modo console-gui con la versión 3.0.46 (es la mejor para mi necesidad) ... resulta que la pantalla cuando entra en modo mix se ve bien en unas pantallas y en otras no, en todas hay la resolución 1280 x 768
Son 2 problemas:
1) si dice setmode(43,132) la pantalla y las letras deben aparecer más pequeñas (es lo correcto), pero aparece con letras grandes como si estuviera en setmode(25,80).
2) la Label del Procedure Entrada1 no se ve en unas pantallas, cuando en otras sí se ve (y debería verse porque así está programado).
Adjunto 2 imágenes correctas (Foto1.jpg y Foto2.jpg) y 2 imágenes incorrectas (Foto1a.jpg y Foto2a.jpg que se ven mal)
Adjunto el Código:
Aquí estoy con un problemilla que me ha desconcertado, trabajo en modo console-gui con la versión 3.0.46 (es la mejor para mi necesidad) ... resulta que la pantalla cuando entra en modo mix se ve bien en unas pantallas y en otras no, en todas hay la resolución 1280 x 768
Son 2 problemas:
1) si dice setmode(43,132) la pantalla y las letras deben aparecer más pequeñas (es lo correcto), pero aparece con letras grandes como si estuviera en setmode(25,80).
2) la Label del Procedure Entrada1 no se ve en unas pantallas, cuando en otras sí se ve (y debería verse porque así está programado).
Adjunto 2 imágenes correctas (Foto1.jpg y Foto2.jpg) y 2 imágenes incorrectas (Foto1a.jpg y Foto2a.jpg que se ven mal)
Adjunto el Código:
Code: Select all
#include "HMG.CH"
#define HWND_TOPMOST -1
#define SWP_NOSIZE 0x0001
#define SWP_DRAWFRAME 0x0020
REQUEST HB_GT_WIN_DEFAULT
FUNCTION MAIN()
PUBLIC hWnd:=GetConsoleWindowHandle()
PUBLIC CIA:='MI EMPRESA'
DEFINE WINDOW PRINCIPAL;
AT 0,0 WIDTH 0 HEIGHT 0 NOSHOW MAIN;
ON INIT ENTRADA()
END WINDOW
ACTIVATE WINDOW PRINCIPAL
RETURN
*-----------------------
PROC ENTRADA
DO WHILE .T.
SetMode(43,132)
SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 1, 1, hb_bitOr( SWP_NOSIZE, SWP_DRAWFRAME ) )
SET COLO TO ("GR+*/B+")
CLEA
@ 10,10 SAY 'BIENVENIDO A MI PROGRAMA !!!'
DI=' '
@ 12,10 SAY 'DESEA ACCESAR AL SISTEMA ? <S/N>' GET DI
READ
IF DI='S'
CLEA
HIDE_WIND()
DO ENTRADA1
ELSE
RELEASE WINDOW PRINCIPAL
EXIT
ENDIF
ENDDO
QUIT
RETU
*-----------------------
PROC ENTRADA1
CLEA
DEFINE WINDOW LOGO;
AT 0,0 WIDTH 1240 HEIGHT 58 NOCAPTION ON INIT ENTRADA2()
@ 0,0 LABEL Label_1 WIDTH 1240 HEIGHT 58 VALUE "&CIA" FONT "ALGERIAN" SIZE 36 FONTCOLOR RED BACKCOLOR BLUE
END WINDOW
LOGO.Activate
RETU
*-------------------------
PROC ENTRADA2
SHOW_WIND()
SetMode(20,132)
SetWindowPos( hWnd, HWND_TOPMOST, 0, 58, 1, 1, hb_bitOr( SWP_NOSIZE, SWP_DRAWFRAME ) )
SET COLO TO ("W+*/B+")
DI=SPACE(30)
@ 00,00 SAY 'HOLA'
@ 10,10 SAY 'DIGA SU NOMBRE' GET DI VALID !EMPT(DI)
@ 19,00 SAY 'FIN'
READ
RELEASE WINDOW LOGO
RETU
*-------------------
FUNCTION HIDE_WIND()
local hWnd := GETCONSOLEWINDOWHANDLE()
HIDEWINDOW(hWnd)
Return
*-------------------
FUNCTION SHOW_WIND()
local hWnd := GETCONSOLEWINDOWHANDLE()
SHOWWINDOW(hWnd)
Return
#pragma BEGINDUMP
#define WINVER 0x0600 // for Vista
#define _WIN32_WINNT 0x0600 // for Vista
#include "windows.h"
#include "hbapi.h"
HB_FUNC( GETCONSOLEWINDOWHANDLE )
{
HWND hwnd;
AllocConsole();
hwnd = FindWindowA("ConsoleWindowClass",NULL);
hb_retnl( (LONG) hwnd );
}
HB_FUNC ( SETWINDOWPOS )
{
HWND hwnd = (HWND) hb_parnl(1); // handle to window or control
HWND hWndInsertAfter= (HWND) hb_parnl(2); // placement-order handle
int X = hb_parni(3); // horizontal position
int Y = hb_parni(4); // vertical position
int cx = hb_parni(5); // width
int cy = hb_parni(6); // height
UINT uFlags = (UINT) hb_parni(7); // window-positioning options
hb_retl( (BOOL) SetWindowPos( hwnd, hWndInsertAfter, X, Y, cx, cy, uFlags ) );
}
#pragma ENDDUMP