Re: Where is GDI+ initialised?
"Joseph M. Newcomer" wrote in message
I was not aware that GDI+ required any explicit initialization by the
user. And to the
best my knowledge, if such a call is required, there was never an option to
have this code
automatically inserted anywhere. I imagine that like many other
explicit initialization is required, you would have to hand-edit it into the
handler of your app class.<
An interesting comment - let me explain below.
First the routines I was referring to are
Now here's my experience:
I created a new workspace/solution/project based on CWinAppEx after I got
VS2010 - about last April or so, and imported a lot of my old code into it
(*excluding* calls to the above GDIplus routines).
GDI+ just worked, and I assumed that the initialisation was built into
members of CWinAppEx which I was calling. But I didn't bother checking.
Then a couple of weeks ago GDI+ just didn't work any more: GDI calls drew
nothing. As I say - I didn't do anything, honest squire. So I looked
for the initialisation in the MFC classes (in order to track through and see
what was happening) but couldn't find it. Maybe its not there, which
would back up what you're saying - at least it would make you right up to a
fortnight ago :-)
So after getting no immediate answer to my question her, I put explicit
calls in exactly as you have suggested, and exactly as I had been doing with
the old VS2008 project. And GDI+ works again.
It's a mystery.
-- David Webber
Mozart Music Software
For discussion and support see
// Routines called from InitInstance and ExitInstance:
gdiSI.SuppressBackgroundThread = TRUE;
Status s = GdiplusStartup( &apd_gdiplustoken, &gdiSI, &gdiSO );
gdiSO.NotificationHook( &gdiHookToken );
GdiplusShutdown( apd_gdiplustoken );