Every Day's Gain

Larry.Zhao's Coding Diary
随笔 - 23, 文章 - 1, 评论 - 2, 引用 - 0
数据加载中……

窗体消息处理函数的局部变量

总是不注意细节!终于把位图显示出来了,昨天困扰了我1个多小时的问题,今天用了20分钟终于查出来了,还是细节的问题.
测试我写的类,在窗体消息处理函数WndProc里面定义:
bool flag=false;
CMyBitMapFile   file1;
然后响应加速键弹出通用对话框选择要打开的文件,然后把flag=true,再调用 InvalidRect来呼叫WM_PAINT,然后响应PAINT里面if(flag){//显示位图},一开始什么反应都没有,我广设MessagBox发现没有进入if(flag)块,这个就让我想了很长时间,最后才想到,每发一次消息就调用一次WndProc,InvalidRect呼叫了WM_PAINT后,flag又被设置成false了,改正之后,又发现我类里的数据成员的指针变成NULL了,一开始我还觉得很奇怪,还好有了flag的警示,很快就想到了我的file1也是局部变量.
唉,当时看书的时候就很奇怪WndProc里很多变量都声明成static,不得其解,现在教训让我明白了这个道理.

posted on 2005-07-13 10:28 Larry.Zhao's Coding Diary 阅读(271) 评论(0)  编辑 收藏 引用 所属分类: Windows App Programing

只有注册用户登录后才能发表评论。