关于变量的生存时间问题。。急!!、在线等。。。

guojinze 2010-05-19 05:00:07


该程序的功能是::在特定区域显示一张图片,点击窗口图片变为另一张,再点击,变回第一张。现在的程序,点击后可以变成第二张,但是再点击,不会变回第一张。。。。

可能和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) ;
}
...全文
46 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
guojinze 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 uc_fly 的回复:]
C/C++ code

...
case WM_LBUTTONDOWN:

*p=!p; //指针取反再赋值,是什么意思啊?

hdc = GetDC (hwnd) ;
...
[/Quote]


就是这个问题。。。我改了下。*p=!(*p);

居然是这么个小问题。。


谢谢。。。
uc_fly 2010-05-19
  • 打赏
  • 举报
回复

...
case WM_LBUTTONDOWN:

*p=!p; //指针取反再赋值,是什么意思啊?

hdc = GetDC (hwnd) ;
...

64,645

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧