FloodFill works with Preview, not with printer
Ralf Prien -- ralf@sfb313.uni-kiel.d400.de
Friday, April 12, 1996
Environment: VC++ 4.0 / Win95 and VC++1.52 / Win95 & 3.1
I have a problem with the FloodFill (ExtFloodFill) function:
It works pretty good with the Preview but I don't get
filled objects on the printer. Filled polygons are shown
correctly in both, Preview and Printer. The german developer
support said that FloodFill only works with DC's having a
pixelarray background and they suggested to use polygons
but in my application I can't do that.
In tracing down the problem I also found, that no device
seems to be capable of performing floodfills itself (
GetDeviceCaps allways says that the device can't do that)
so I wonder what the RC_FLOODFILL flag is good for.
I hope that anybody out there can help me with this
problem since I'm really stuck.
Thanks
----------------------------------------------------------
Ralf Prien ralf@sfb313.uni-kiel.d400.de
----------------------------------------------------------
Mukesh Prasad Development Contractor -- mukesh@everest.XAIT.Xerox.COM
Tuesday, April 16, 1996
[Mini-digest: 2 responses]
You can create a memory bitmap and a DC, and
floodfill into the memory bitmap. Then bitblt the
bitmap into the printer DC.
/Mukesh
> Environment: VC++ 4.0 / Win95 and VC++1.52 / Win95 & 3.1
>
> I have a problem with the FloodFill (ExtFloodFill) function:
> It works pretty good with the Preview but I don't get
> filled objects on the printer. Filled polygons are shown
> correctly in both, Preview and Printer. The german developer
> support said that FloodFill only works with DC's having a
> pixelarray background and they suggested to use polygons
> but in my application I can't do that.
>
> In tracing down the problem I also found, that no device
> seems to be capable of performing floodfills itself (
> GetDeviceCaps allways says that the device can't do that)
> so I wonder what the RC_FLOODFILL flag is good for.
>
> I hope that anybody out there can help me with this
> problem since I'm really stuck.
> Thanks
> ----------------------------------------------------------
> Ralf Prien ralf@sfb313.uni-kiel.d400.de
> ----------------------------------------------------------
>
-----From: "David W. Gillett"
It's not inconceivable that some high-end graphics accelerator
might implement FloodFill. I don't actually know of any that do, but
it's a reasonable thing for MS to anticipate that somebody might
implement.
In the absence of hardware support, the GDI implementation may need
to rely on GetPixel() to implement FloodFill. Does GetPixel work on
the printer? I bet not.
What you may be able to do is draw to a memory bitmap, including
calling FloodFill, and then BitBlt that bitmap to the printer. [You
may need to keep this memory bitmap around and BitBlt different parts
of it to "bands" for printing -- no sense in redoing the FloodFill
for each band, and attempts to optimize memory use to fit banding are
likely to screw up the FloodFill.]
Dave
| Вернуться в корень Архива
|