能力值:
(RANK:350 )
|
-
-
2 楼
这是一个处理消息的循环,windows程序特点,不断循环执行。
静态变量又称局部变量,在子程序内部说明的变量,其作用域是其所在的子程序。
全局变量可以在整个程序中调用。
|
能力值:
(RANK:410 )
|
-
-
3 楼
//改成这样效果也一样。
switch (message)
{
case WM_INITDIALOG:
break;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
break;
}
default
return FALSE;
}
return TRUE;
|
能力值:
( LV8,RANK:130 )
|
-
-
4 楼
对于C语言来说:
静态变量和全局变量的区别在于作用域和出生期不一样---我的理解。
|
能力值:
( LV12,RANK:660 )
|
-
-
5 楼
关于break和return要看整个函数内容了,就是看switch后面有没有代码,如果还有要执行的代码,那么break后就去执行代码,但如果是return就直接返回了,后面的代码不会得到执行。
通俗地说静态变量只初始化一次,呵呵。比如下面的代码:
for (int i = 0; i < 3; i++)
{
static int n = 3;
n++;
printf("\n%d\n", n);
}
看看会得到什么就知道了。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
受用,谢谢大家的讲解,
可能我没问清楚,是这样的平常我们用switch一般一个条件只对应一个case语句,然后用break跳出防止执行下面无关case语句,但是我发现SDK里面用到return TRUE,他到底和break有什么联系,或者在SDK里面switch完全有不同的用法
|
能力值:
(RANK:1010 )
|
-
-
7 楼
WndProc ( 参数 1,2,3,4)
{
switch (message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
}
return false;
}
return true只是为了表示对该消息已经处理。否则还会把消息传递给系统默认的处理过程。
switch语句中一般用的是break,这是因为通常在switch语句后还需要作额外的处理,此时就需要break,表示结束switch 但不结束 这个函数
然而在消息 处理过程中,通常情况下只有switch语句和最后的一个RETURN语句,如果用break的 话,接下来还需要继续执行最后一个return语句 。
一般在SDK中处理完特定的 消息就可以 直接返回,false表示需要继续传递给系统默认的消息处理过程,true就表示对该消息的处理已经完成。
switch 语法在SDK与VC中没有区别
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
谢谢,前面是我没问清楚
|
能力值:
( LV12,RANK:660 )
|
-
-
9 楼
最初由 llac 发布 受用,谢谢大家的讲解, 可能我没问清楚,是这样的平常我们用switch一般一个条件只对应一个case语句,然后用break跳出防止执行下面无关case语句,但是我发现SDK里面用到return TRUE,他到底和break有什么联系,或者在SDK里面switch完全有不同的用法
晕了,你完全没懂我们说的。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
呵呵,理解误差
刚接触SDK不久,有些东西还比较迷糊,谢谢你们的讲解
|
能力值:
(RANK:1010 )
|
-
-
11 楼
不急,刚开始就这样
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
谢谢鼓励
在我能力下我尽可能为这个版块贡献一份力量
|
|
|