|laziness, impatience, and hubris|
Re^3: wxPerl: is BitmapFromImage implemented?by jmlynesjr (Hermit)
|on Apr 29, 2013 at 15:09 UTC||Need Help??|
Helen, good question...
No idea off hand. Seems I read about sizers that the control "communicates" a minimum size to the sizer process. Maybe there is a clue there. Most of the documentation refers to stretching controls not compressing them. Your "kludge" may be the way to go, at least until another idea surfaces.
Once again from the wxBook(well worth $38 to Amazon):
"(Sizers)...It is based upon the idea of individual windows reporting their minimal required size and their ability to be stretched if the size of the parent window has changed. This will most often mean that the programmer does not set the initial size of the dialog; instead, the dialog will be assigned a sizer, which will be queried about the recommended size....The minimal size of a control is calculated from the control's notion of it's "best size"(supplied by implementing DoGetBestSize for each control)....However, if you want the initial window size(as passed to the window's constructor) to be used as the initial minimum size instead, you can use the wxFIXED_MINSIZE style when adding the control to the sizer. Note that only some windows can calculate their size....whereas others....don't have any natural width or height and thus require an explicit size."
Update1: The Wx::Image::Rescale seems to work. Try a subset of this in your resize event handler. Two scaling qualities are supported: wxIMAGE_QUALITY_NORMAL and wxIMAGE_QUALITY_HIGH(better quality but slower).
Update2: Fixed a typo.
Update3: Seems you may want to scale from the original Wx::Image each time to avoid compounding any scaling artifacts/losses of resolution.
There's never enough time to do it right, but always enough time to do it over...