Page 2 of 2

Re: Print preview in HMG Console mode

Posted: Mon Sep 20, 2010 3:11 pm
by Roberto Lopez
Thanks Grigory!

Print preview in HMG Console mode

Posted: Mon Feb 23, 2015 11:09 pm
by Pablo César
Nice sample, Grigory !

I have note time before, but only now I could fully undertand it.

Thank you.

Re: Print preview in HMG Console mode

Posted: Wed Apr 24, 2024 3:01 pm
by mol
Hi!

Strange, but in 2024 I need to call some forms (hmg window) from console mode.
Do someone working solution of this problem?
When I call window form, some of controls don't work and application hangs up

Re: Print preview in HMG Console mode

Posted: Wed Apr 24, 2024 9:40 pm
by edk

Code: Select all

#include "hmg.ch"

REQUEST HB_GT_WIN_DEFAULT
*----------------------------------------------------------------------------------*
Function Main
*----------------------------------------------------------------------------------*

DEFINE WINDOW startCons AT 0 , 0 WIDTH 0 HEIGHT 0 TITLE "" MAIN;
   ON INIT Console();
   NOSHOW; 
   NOMINIMIZE; 
   NOMAXIMIZE; 
   NOSIZE; 
   NOSYSMENU; 
   ICON Nil;
   BACKCOLOR Nil;
   NOCAPTION
END WINDOW
ACTIVATE WINDOW startCons
Return Nil

**************************** MAIN *****************************
Procedure Console
Public cons_hwnd := GETCONSOLEWINDOW()
SETCONSOLETITLE ( "New console title" )

SETMODE(25,80)
@0,0 CLEA

DO WHILE .T.
	@2,2 SAY 'PRESS F10 TO CALL FORM 1'
	@4,2 SAY 'PRESS F11 TO HIDE CONSOLE AND CALL FORM 1'
	@6,2 SAY 'PRESS ESC TO EXIT'
	INKEY(0)
	IF LASTKEY()=27
		QUIT
	ENDIF
	IF LASTKEY()=-9
		Form1()
		SetForegroundWindow(cons_hwnd)
	ENDIF
	IF LASTKEY()=-40
		HideConsole(cons_hwnd)
		Form1()
		ShowConsole(cons_hwnd)
	ENDIF
	KEYBOARD ""
ENDDO
RETURN


**********************************************************
FUNCTION Form1()

DEFINE WINDOW Form_1 ;
      AT 0,0 ;
      WIDTH 800 HEIGHT 600 ;
      TITLE 'FORM 1'
      
      ON KEY Escape ACTION ThisWindow.Release
   
    DEFINE TEXTBOX Text_1
        ROW    50
        COL    190
        WIDTH  120
        HEIGHT 24
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER Nil
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        READONLY .F.
        RIGHTALIGN .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
        INPUTMASK Nil
        FORMAT Nil
        VALUE "hello!"
    END TEXTBOX

    DEFINE TEXTBOX Text_2
        ROW    90
        COL    190
        WIDTH  120
        HEIGHT 24
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER Nil
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        READONLY .F.
        RIGHTALIGN .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
        INPUTMASK Nil
        FORMAT Nil
        NUMERIC .T. 
        VALUE 100
    END TEXTBOX

    DEFINE TEXTBOX Text_3
        ROW    130
        COL    190
        WIDTH  120
        HEIGHT 24
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER Nil
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        READONLY .F.
        RIGHTALIGN .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
        INPUTMASK Nil
        FORMAT Nil
        DATE .T. 
        VALUE ctod('01/01/01')
    END TEXTBOX

    DEFINE LABEL Label_1
        ROW    50
        COL    60
        WIDTH  120
        HEIGHT 24
        VALUE "Label_1"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        HELPID Nil
        VISIBLE .T.
        TRANSPARENT .F.
        ACTION Nil
        AUTOSIZE .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
    END LABEL

    DEFINE LABEL Label_2
        ROW    90
        COL    60
        WIDTH  120
        HEIGHT 24
        VALUE "Label_2"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        HELPID Nil
        VISIBLE .T.
        TRANSPARENT .F.
        ACTION Nil
        AUTOSIZE .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
    END LABEL

    DEFINE LABEL Label_3
        ROW    130
        COL    60
        WIDTH  120
        HEIGHT 24
        VALUE "Label_3"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        HELPID Nil
        VISIBLE .T.
        TRANSPARENT .F.
        ACTION Nil
        AUTOSIZE .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
    END LABEL

    DEFINE FRAME Frame_1
        ROW    10
        COL    30
        WIDTH  310
        HEIGHT 170
        FONTNAME "Arial"
        FONTSIZE 9
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        CAPTION "Frame_1"
        BACKCOLOR NIL
        FONTCOLOR NIL
        OPAQUE .T.
    END FRAME

    DEFINE FRAME Frame_2
        ROW    190
        COL    30
        WIDTH  310
        HEIGHT 170
        FONTNAME "Arial"
        FONTSIZE 9
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        CAPTION "Frame_2"
        BACKCOLOR NIL
        FONTCOLOR NIL
        OPAQUE .T.
    END FRAME

    DEFINE TEXTBOX Text_4
        ROW    230
        COL    190
        WIDTH  120
        HEIGHT 24
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER Nil
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        READONLY .F.
        RIGHTALIGN .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
        INPUTMASK Nil
        FORMAT Nil
        VALUE ""
    END TEXTBOX

    DEFINE TEXTBOX Text_5
        ROW    270
        COL    190
        WIDTH  120
        HEIGHT 24
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER Nil
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        READONLY .F.
        RIGHTALIGN .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
        INPUTMASK Nil
        FORMAT Nil
        NUMERIC .T. 
        VALUE Nil
    END TEXTBOX

    DEFINE TEXTBOX Text_6
        ROW    310
        COL    190
        WIDTH  120
        HEIGHT 24
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER Nil
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        READONLY .F.
        RIGHTALIGN .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
        INPUTMASK Nil
        FORMAT Nil
        VALUE ""
    END TEXTBOX

    DEFINE LABEL Label_4
        ROW    230
        COL    60
        WIDTH  120
        HEIGHT 24
        VALUE "Label_4"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        HELPID Nil
        VISIBLE .T.
        TRANSPARENT .F.
        ACTION Nil
        AUTOSIZE .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
    END LABEL

    DEFINE LABEL Label_5
        ROW    270
        COL    60
        WIDTH  120
        HEIGHT 24
        VALUE "Label_5"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        HELPID Nil
        VISIBLE .T.
        TRANSPARENT .F.
        ACTION Nil
        AUTOSIZE .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
    END LABEL

    DEFINE LABEL Label_6
        ROW    310
        COL    60
        WIDTH  120
        HEIGHT 24
        VALUE "Label_6"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        HELPID Nil
        VISIBLE .T.
        TRANSPARENT .F.
        ACTION Nil
        AUTOSIZE .F.
        BACKCOLOR NIL
        FONTCOLOR NIL
    END LABEL

    
END WINDOW

SetForegroundWindow ( Form_1.Handle )

CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1

RETURN

#pragma BEGINDUMP
#include "hbapi.h"
#include "hbapiitm.h"
#include <windows.h>

// doesn't work with win32 function GetConsoleWindow()
HWND GetConWin()
{
HWND hwnd;
AllocConsole();
hwnd = FindWindowA("ConsoleWindowClass",NULL);
return hwnd;
}

HB_FUNC( GETCONSOLEWINDOW )
{
hb_retnl((long) GetConWin() );
}

HB_FUNC(HIDECONSOLE )
{
long h = hb_parnl(1);
if (h==NULL)
	h = GetConWin();
ShowWindow(h,SW_HIDE); // SW_HIDE
}

HB_FUNC(SHOWCONSOLE )
{
long h = hb_parnl(1);
if (h==NULL)
	h = GetConWin();
ShowWindow(h,SW_SHOW); // because 1'st time console stays minimized
ShowWindow(h,SW_RESTORE); //SW_SHOW
SetFocus(h);
SetForegroundWindow(h);
}


HB_FUNC(SETCONSOLETITLE)
{ char * szTitle=hb_parc(1);
SetConsoleTitle(szTitle);
}

#pragma ENDDUMP

Re: Print preview in HMG Console mode

Posted: Thu Apr 25, 2024 6:29 am
by mol
Thank you!