关于变量的生存时间问题。。急!!、在线等。。。
该程序的功能是::在特定区域显示一张图片,点击窗口图片变为另一张,再点击,变回第一张。现在的程序,点击后可以变成第二张,但是再点击,不会变回第一张。。。。
可能和bool 变量draw 的生存时间有关。。
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
POINT pt;
CGpsView cgpsview1,cgpsview2;//定义两个类的实例对象
CString szFileName,szFileName1;
szFileName = "F:\\我的代码\\1.bmp";//图片的路径
szFileName1="F:\\我的代码\\2.bmp";
static bool draw=true;
static bool *p=&draw;
switch (message)
{
case WM_CREATE:
InvalidateRect(hwnd,NULL,TRUE);
return 0 ;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
cgpsview1.LoadBmp((LPTSTR)(LPCTSTR)szFileName);//显示图片1
cgpsview1.DrawBmp( hdc, 0, 0, 500/4,500/4);
EndPaint(hwnd,&ps);
return 0 ;
case WM_LBUTTONDOWN:
*p=!p;
hdc = GetDC (hwnd) ;
if(*p==false) //判断显示第一张还是第二张。
{
cgpsview2.LoadBmp((LPTSTR)(LPCTSTR)szFileName1);
cgpsview2.DrawBmp( hdc, 0, 0, 500/4,500/4);
}
else
{
cgpsview1.LoadBmp((LPTSTR)(LPCTSTR)szFileName);
cgpsview1.DrawBmp( hdc, 0, 0, 500/4,500/4);
}
ReleaseDC (hwnd, hdc) ;
break;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}