STARTDRAW ... ENDDRAW procedure
Purpose: STARTDRAW ... ENDDRAW defines a block inside which graphics drawing produces a persistent image, that is, an image which does not have to be repainted when it is moved behind other windows or when other windows are moved on top of the image.
Syntax: hDestDC = STARTDRAW(Canvas) 'Graphics drawing functions are placed here ENDDRAW(Canvas, hDestDC) Parameters:
|
Example:
GUI
"PGUDB"
CONST
IDC_BM1=
101
'*******************************************************************
GLOBAL
FormAS
HWNDGLOBAL
Butt1AS
HWNDGLOBAL
CanvasAS
HWND'*******************************************************************
SUB
FORMLOAD Form=
BCX_FORM
(
"Persistent Graphics Using Dynamic Bitmaps"
,0
,0
,400
,250
)
Canvas=
BCX_BITMAP
(
0
, Form, IDC_BM1,10
,5
,300
,200
)
Butt1=
BCX_BUTTON
(
"Draw Stuff"
, Form,1
,350
,5
)
CENTER
(
Form)
SHOW
(
Form)
END
SUB
BEGIN
EVENTS
SELECT
CASE
CBMSG
CASE
WM_COMMANDSELECT
CASE
CBCTL
CASE
1
DIM
RAW
hDestDCAS
HDC hDestDC=
STARTDRAW
(
Canvas)
BCX_FLOODFILL
(
0
,0
,0
,RGB
(
RND
*
255
,RND
*
255
,RND
*
255
)
,RGB
(
RND
*
255
,RND
*
255
,RND
*
255
)
,hDestDC)
BCX_PSET
(
0
,2
,2
,0
,hDestDC)
BCX_LINE
(
0
,5
,5
,300
,250
,RGB
(
RND
*
255
,RND
*
255
,RND
*
255
)
,hDestDC)
BCX_LINETO
(
0
,300
,5
,RGB
(
RND
*
255
,RND
*
255
,RND
*
255
)
,hDestDC)
BCX_ARC
(
0
,90
,90
,130
,150
,95
,95
,130
,70
,RGB
(
RND
*
255
,RND
*
255
,RND
*
255
)
,hDestDC)
BCX_RECTANGLE
(
0
,40
,40
,100
,100
,RGB
(
RND
*
255
,RND
*
255
,RND
*
255
)
,TRUE,hDestDC)
BCX_ROUNDRECT
(
0
,120
,80
,100
,150
,20
,20
,RGB
(
RND
*
255
,RND
*
255
,RND
*
255
)
,TRUE,hDestDC)
BCX_ELLIPSE
(
0
,330
,10
,60
,100
,RGB
(
RND
*
255
,RND
*
255
,RND
*
255
)
,TRUE,hDestDC)
ENDDRAW(
Canvas, hDestDC)
END
SELECT
END
SELECT
END
EVENTS