I have a strange problem. Right at startup of my program my AppUi class creates a welcome view, it calls AddViewL(welcomeview). My welcome view has a Welcomecontainer wich contains a class that can display a image on the screen. Like a startup image. This class is called CImageHandler, the imageHandler is a CCoeControl and draws it image by it sealf.
At startup everything is just fine, the background is printed and my picture is drawn at center of the window. I´ve noticed that when the image is displayed and I´m waiting for the user to press OK, my DoDeactivateL function in CWelcomeView is called, in this functio I delete my container and the view removes it sealf from the stack by calling RemoveFromViewStack(this, iContainer).
Now when I change to landscape mode, I reset the rect and redraws everything but it looks real bad. The view name is not shown any longer. And at the top of the screen and at the bottom of the screen everything is white, not like it used to be with it´s skin. In Draw in my Container I clear my rect (wich is correct) and the I do the the following.
MAknsSkinInstance *skin = AknsUtils::SkinInstance();
AknsDrawUtils:rawCachedImage( skin, gc, Rect(), KAknsIIDQsnBgAreaMain);
AknsDrawUtils:rawCachedImage( skin, gc, Rect(), KAknsIIDQsnBgAreaStatus);
rect_m = aRect;
rect_m.iTl = iNormalTopLeft;
AknsDrawUtils:rawCachedImage( skin, gc, rect_m, KAknsIIDQsnBgAreaMain);
In my CImageHandler:raw, the background color is drawn and then I bitblt my picture at the center of the screen but as I said it looks real bad.
I have overloaded HandleResourceChange but since teh DoDeactivate is called those functions are not called by the system. I have done this manully but no effect.
It is a bit hard to explain but I hop you guys do understand what I mean and will be able to help me out.