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"CONSTIDC_BM1=101'*******************************************************************GLOBALFormASHWNDGLOBALButt1ASHWNDGLOBALCanvasASHWND'*******************************************************************SUBFORMLOADForm=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)ENDSUBBEGINEVENTSSELECTCASECBMSGCASEWM_COMMANDSELECTCASECBCTLCASE1DIMRAWhDestDCASHDC 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)ENDSELECTENDSELECTENDEVENTS