Quick question on object instantiation!
Hello,
In Windows programming, is it bad practice or uncommon to instatiate an
object outside WndProc and then using the object in WndProc.
Please consider the following code:
===========================================
class Shape
{
public:
Shape(); //Default constructor
Shape(Shape&); //Copy constructor
~Shape(); //Destructor
int GetCounter() const {return iCounter;}
void operator++();
private:
int iCounter;
};
Shape *pShape = new Shape; //Object instatiated outside WndProc
LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
WM_PAINT:
pShape->SetTitles(hdc,rect); //Object now manipulated in WndProc
return 0;
case WM_DESTROY:
delete pShape; //Object deleted only when I exit
application
PostQuitMessage(0);
return 0;
......WndProc code.....
}
===================================================
The thing is that, I would like my object to stay in scope as long as my
program is running. However if I instantiate my object in WndProc, then every
time I return from a handler within my WndProc function, I loose the data
stored in the members of my class. So I figure if I instantiate it outside
WndProc, the class members would be preserved.... right or not?
I just would like to know if this type of coding is acceptable in VC++?
All guidence towards this question is greatly appreciated!
--
Best regards
Robert