Re: Print preview in HMG Console mode
Posted: Mon Sep 20, 2010 3:11 pm
Thanks Grigory!
Exclusive forum for HMG, a Free / Open Source xBase WIN32/64 Bits / GUI Development System
http://www.hmgforum.com/
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