消息循环里的全局变量怎么变成局部变量了?

ghgk 2004-06-29 10:47:35
我在消息循环里加了个全局变量自加,在回调函数里显示这个全局变量却是0。跟踪了一下,发现在消息循环里确实有在自加。但一到回调函数里就等于0了
while (GetMessage(&msg, NULL, 0, 0))
{
test++;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghgk 2004-06-29
  • 打赏
  • 举报
回复
汗~~确实可以,是我在程序中犯了一个很基本的的错误。
lixiaosan 2004-06-29
  • 打赏
  • 举报
回复
应该是程序其他地方有循环造成莫名其妙的变量变化
zhoujiamurong 2004-06-29
  • 打赏
  • 举报
回复
// c01.cpp : Defines the entry point for the application.
//

#include <windows.h>
WNDCLASS wc;
MSG msg1;
HWND hwnd;
int test=0;
/*消息处理函数 WndProc 的函数声明*/
long WINAPI WndProc(HWND ,UINT,WPARAM,LPARAM);
/*WinMain 函数的声明 */
//Windows 程序的入口函数
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
//初始化 WNDCLASS 结构变量
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszClassName = "TheMainClass";
//注册 WNDCLASS 结构变量
RegisterClass(&wc);

//创建主窗口
hwnd = CreateWindow("TheMainClass","Our Window",
WS_OVERLAPPEDWINDOW,0,0,400,500,0,0,hInstance,0);

//显示主窗口
ShowWindow(hwnd,SW_SHOWMAXIMIZED);
//消息循环
while(GetMessage(&msg1,NULL,0,0))
{
//将消息发送到当前进程的窗口消息处理过程
test++;
DispatchMessage(&msg1);
}
return msg1.wParam ;
}

long WINAPI WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
}
return DefWindowProc(hwnd,message,wParam,lParam);
}


zhoujiamurong 2004-06-29
  • 打赏
  • 举报
回复
没有这回事吧,我试了,都有变

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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