/*
* MINIGUI - Harbour Win32 GUI library Demo
*
* Copyright 2002-05 Roberto Lopez <roblez@ciudad.com.ar>
*
http://www.geocities.com/harbour_minigui/ *
* Copyright 2006 Grigory Filatov <gfilatov@freemail.ru>
*/
ANNOUNCE RDDSYS
#include "minigui.ch"
#define PROGRAM 'Draw Curves'
#define PS_SOLID 0
PROCEDURE Main
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 800 HEIGHT 600 ;
TITLE PROGRAM + " - Contributed by Grigory Filatov" ;
MAIN ;
ICON "demo.ico" ;
NOMAXIMIZE ;
ON INIT OnInit() ;
ON PAINT DrawCurves() ;
BACKCOLOR WHITE ;
FONT "MS Sans Serif" SIZE 8
DEFINE MAIN MENU
DEFINE POPUP "Test"
MENUITEM "Do it!" ACTION RefreshWnd( _HMG_MainHandle )
MENUITEM "Exit" ACTION ThisWindow.Release()
END POPUP
END MENU
@ 10,Form_1.Width - 120 BUTTON Button_1 ;
CAPTION 'Close' ;
ACTION Form_1.Release
END WINDOW
Form_1.Center
ACTIVATE WINDOW Form_1
Return
PROCEDURE OnInit
Form_1.Button_1.Setfocus
CLEAN MEMORY
RETURN
#define WM_PAINT 15
*--------------------------------------------------------*
Static Procedure RefreshWnd( hWnd )
*--------------------------------------------------------*
SendMessage( hWnd, WM_PAINT, 0, 0 )
Do Events
Return
*--------------------------------------------------------*
Function DrawCurves()
*--------------------------------------------------------*
local nHeight := Form_1.Height - 20, nWidth := Form_1.Width - 20
local hWnd := GetActiveWindow()
local hDC := GetDC( hWnd )
local n, hPen, hOldPen
local cPoints
for n = 1 to 20
hPen = CreatePen( PS_SOLID, 5, Random( 65535 ) )
hOldPen = SelectObject( hDC, hPen )
cPoints = L2Bin( Random( nWidth ) ) + ;
L2Bin( Random( nHeight ) ) + ;
L2Bin( Random( nWidth ) ) + ;
L2Bin( Random( nHeight ) ) + ;
L2Bin( Random( nWidth ) ) + ;
L2Bin( Random( nHeight ) ) + ;
L2Bin( Random( nWidth ) ) + ;
L2Bin( Random( nHeight ) )
PolyBezier( hDC, cPoints, 4 )
SelectObject( hDC, hOldPen )
DeleteObject( hPen )
next
ReleaseDC( hWnd, hDC )
return nil
DECLARE DLL_TYPE_LONG GetDC( DLL_TYPE_LONG hWnd ) ;
IN USER32.DLL
DECLARE DLL_TYPE_LONG ReleaseDC( DLL_TYPE_LONG hWnd, DLL_TYPE_LONG hDC ) ;
IN USER32.DLL
DECLARE DLL_TYPE_LONG PolyBezier( DLL_TYPE_LONG hDC, DLL_TYPE_LPSTR Points, DLL_TYPE_LONG Amount ) ;
IN GDI32.DLL
DECLARE DLL_TYPE_LONG CreatePen( DLL_TYPE_LONG Style, DLL_TYPE_LONG Width, DLL_TYPE_LONG Color ) ;
IN GDI32.DLL
DECLARE DLL_TYPE_LONG SelectObject( DLL_TYPE_LONG hDC, DLL_TYPE_LONG hGDIobj ) ;
IN GDI32.DLL
DECLARE DLL_TYPE_LONG DeleteObject( DLL_TYPE_LONG hGDIobj ) ;
IN GDI32.DLL