I can't get that code to compile in GCC, but my best guess is that logo is an ImageBuffer - When DrawImage is called it converted to an Image and this clears the ImageBuffer so that next Refresh it is empty.
Try changing logo to an Image and doing:
ImageBuffer ib(150,30);
RGBA *pixel = ~ib;
...
logo = ib;
James
thats exactly what it was ... it perfectly solved the problem .... thanks a lot, the change made were exact ... but why does it clears the ImageBuffer in DrawImage()?? let me guess , it is a trade off for performance and stuff?? that works perfectly fine with me (off course it would be fine ... there is another 'clean' method of doing my requirement )
thanks a lot ... i was using ImageCtrl as a solution but there were some side effect as ImageCtrl is a control itself and hence did not behave like the rest of surface client on mouse functions.