Re: Needing some Windows programming help

new topic     » goto parent     » topic index » view thread      » older message » newer message

DB James wrote:
> 
> Hi,
> 
> I am having a lot of programming fun with updates to L and D (the report
> version) and have arrived at a place I need some help with.
> 
> Background: I am drawing in two child windows.  The top one contains the
> colored blocks of L and D, and the bottom one is a continuous graph that
> reports on two features of the plants and animals.  When the drawings are
> erased by minimizing, or by having other windows come up in front of the drawn
> areas, the drawings are erased.  This isn't a problem with the colored blocks
> as they are redrawn constantly, but the graph *was* a problem.
> 
> So, I created a sequence to "draw" into such that I could periodically do my
> own refresh of the graph window.  After much head-scratching, I got that to
> work.  The fake-refresh is slow, so I do it after each 100 data-writes to
> the graph window.  So far, so good, but of course, it is a hack.  I also have
> the option to save bitmaps of the graphs for later inspection.
> 
> Some of the coding relating to this:
> }}}
<eucode>
> if curX=cw67Coord[5] or not remainder(frame,100) then --update
> 	SetShadowImage(CWindow67,shadowImage,Black)--draw the shadow image
> end if
> curX+=1
> if curX>cw67Coord[5] then
> 	curX=cw67Coord[1]
> if isChecked(CheckBox73) then
> 	a1=copyToTrueColorBitmapFile( CWindow67, GetBMPName(), cw67Coord[1],
> cw67Coord[2], cw67Coord[5], cw67Coord[6] )
> end if
> end if
> </eucode>
{{{

> 
> Questions: how can I get Windows to refresh the graph window?  And, because
> a minimized window couldn't save the bitmap, how can I save as a bitmap the
> sequence that I use to refresh the child window?  It only contains the
> pixel-colors of the graph.
> 
> Thanks for any help here,
> 
> --Quark

I'd take this problem the other way round:
1/ draw your graph on a memory bitmap (Pixmap in win32lib)
2/ handle the w32HPaint event fr your graph window and bitBlt() the relevant
section of the
graph.
3/ To improve smoothness, your bitmap should be wider than the window
it will update, and, from time to time, just bitBlt() the "later" part onto
the "earlier" part.

This is scrolling on a double buffered window.

CChris

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu