1. displaying bitmaps and deleting old bitmaps
- Posted by "sixs" <sixs at ida.net> Jan 05, 2004
- 365 views
Hello. I am getting different pictures from the internet. They are of various sizes. I display one, then anoher and I may want to redisplay one I had previously displayed. Code is : hBitmap = loadBitmapFromFile(hSle9), then in onPaint I am performing this code if db_table_size() > 0 then if atom(hBitmap) then deleteObject ( Bitmap54) extent = getExtent(MyWin) i = 241 j = 42 drawBitmap( MyWin, hBitmap, i, j) end if end if The pictures are not of the same size and so some of the previous picture is left on the screen. How do I remove the previous picture without forcing each picture to be the same size, or must I edit each picture in a photo program???? Thanks for any help
2. Re: displaying bitmaps and deleting old bitmaps
- Posted by Pete Lomax <petelomax at blueyonder.co.uk> Jan 05, 2004
- 348 views
On Mon, 5 Jan 2004 09:24:34 -0700, sixs <sixs at ida.net> wrote: >picture is left on the screen. How do I remove the previous picture >without forcing each picture to be the same size, or must I edit each >picture in a photo program???? You could perhaps drawRectangle() in the background colour with the fill parameter set, maybe? Pete
3. Re: displaying bitmaps and deleting old bitmaps
- Posted by "Euman" <euman at bellsouth.net> Jan 05, 2004
- 357 views
Whatever the equivalent is for this (below) in Win32lib hdc = c_func(xGetDC, {hwnd}) memdc = c_func(xCreateCompatibleDC, {hdc}) hbit = c_func(xCreateCompatibleBitmap, {hdc, xScreen, yScreen}) junk = c_func(xSelectObject,{memdc, hbit}) if not c_func(xPatBlt, {memdc, 0, 0, vxScreen, vyScreen, PATCOPY}) then end if Euman ----- Original Message ----- From: "sixs" <sixs at ida.net> To: <EUforum at topica.com> Sent: Monday, January 05, 2004 11:24 AM Subject: displaying bitmaps and deleting old bitmaps > > > Hello. > I am getting different pictures from the internet. They are of various > sizes. I display one, then anoher and I may want to redisplay one I had > previously displayed. Code is : > hBitmap = loadBitmapFromFile(hSle9), > then in onPaint I am performing this code > > if db_table_size() > 0 then > if atom(hBitmap) then > deleteObject ( Bitmap54) > extent = getExtent(MyWin) > i = 241 > j = 42 > drawBitmap( MyWin, hBitmap, i, j) > end if > end if > The pictures are not of the same size and so some of the previous > picture is left on the screen. How do I remove the previous picture > without forcing each picture to be the same size, or must I edit each > picture in a photo program???? > Thanks for any help > > > > > TOPICA - Start your own email discussion group. FREE! > >
4. Re: displaying bitmaps and deleting old bitmaps
- Posted by "Derek Parnell" <ddparnell at bigpond.com> Jan 05, 2004
- 358 views
----- Original Message ----- From: "sixs" <sixs at ida.net> To: <EUforum at topica.com> Subject: displaying bitmaps and deleting old bitmaps > > > Hello. > I am getting different pictures from the internet. They are of various > sizes. I display one, then anoher and I may want to redisplay one I had > previously displayed. Code is : > hBitmap = loadBitmapFromFile(hSle9), > then in onPaint I am performing this code > > if db_table_size() > 0 then > if atom(hBitmap) then > deleteObject ( Bitmap54) > extent = getExtent(MyWin) > i = 241 > j = 42 > drawBitmap( MyWin, hBitmap, i, j) > end if > end if > The pictures are not of the same size and so some of the previous > picture is left on the screen. How do I remove the previous picture > without forcing each picture to be the same size, or must I edit each > picture in a photo program???? > Thanks for any help > You might be doing it the hard way. Why not consider using Win32lib's Bitmap control? You don't have to worry about handling paint messages or resizing it as its done automatically for you. Here is an example program ... -- example10.exw -- This example opens a window, and places bitmaps in it. without warning include win32lib.ew constant MainWindow = create( Window, "Click to show another bitmap", 0, Default, Default, 400, 400, 0 ) constant BitmapArea = create( Bitmap, "", MainWindow, 0, 0, 132, 132,0 ) integer vBM_Index object vBM_Files procedure Change_Bitmap(integer self, integer event, sequence parms) if sequence(vBM_Files) and length(vBM_Files) > 0 then -- Every click gets the next bitmap vBM_Index += 1 if vBM_Index > length(vBM_Files) then -- To back to first bitmap vBM_Index = 1 end if setBitmap( BitmapArea, vBM_Files[vBM_Index][D_NAME] ) end if end procedure vBM_Index = 0 vBM_Files = dir("*.bmp") -- Look for any bitmaps. if not sequence(vBM_Files) or length(vBM_Files) = 0 then VOID = message_box("This demo needs one or more bitmap vBM_Files in the directory.","",0) end if setHandler(MainWindow, {w32HActivate, w32HClick}, routine_id( "Change_Bitmap" )) WinMain( MainWindow, Maximize ) -- Derek