对话框 返回TRUE或者FALSE 有什么区别吗?

时间:2022-08-07 09:26:41
对话框中 
处理完消息后返回TRUE或者FALSE 有什么区别吗?

14 个解决方案

#1


一般已经处理了,就用true返回值告诉后面的函数,我已经处理过了。

#2


这里用TRUE和FALSE来区别,是为了还有其他地方有判断语句时来用的.
比如说我先要从一组数据中查找数字20,如果有就返回TRUE,如果没有就返回FALSE.我将这个函数定义为BOOL型的.假设名字为:BOOL check(int a[20])
然后,我在另一个函数中调用这个函数:
int b[20]={1,2,3,...25};
BOOL result=check(b);
然后我就可以在这里来判断:
if(result)
MessageBox("The number is exist!");
else
MessageBox("There is no such number in the array!");

You See?

#3


这里用TRUE和FALSE来区别,是为了还有其他地方有判断语句时来用的.
比如说我先要从一组数据中查找数字20,如果有就返回TRUE,如果没有就返回FALSE.我将这个函数定义为BOOL型的.假设名字为:BOOL check(int a[20])
然后,我在另一个函数中调用这个函数:
int b[20]={1,2,3,...25};
BOOL result=check(b);
然后我就可以在这里来判断:
if(result)
MessageBox("The number is exist!");
else
MessageBox("There is no such number in the array!");

You See?

#4


引用 1 楼 jennyvenus 的回复:
一般已经处理了,就用true返回值告诉后面的函数,我已经处理过了。 


可以看看OnInitDialog中最后一句自动添加的注释吧

#5


默认的一般都是true,表示你其中的函数已经处理过了,否则没处理

#6


看在哪个函数中了

#7


为什么
我如果没有处理就 返回TRUE
就会引起程序定死。。。

#8


贴代码

#9


代码很简单 下面是对话框消息处理函数 
就是把返回的值全部改成TRUE就程序死了。 
BOOL CALLBACK dia_pro_fun_1(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam) 

    switch(message) 
    { 
case WM_CLOSE: 
    DestroyWindow(hDlg); 
    return (FALSE); 
        case WM_INITDIALOG: 
            return(FALSE); 
        case WM_COMMAND: 
            switch (LOWORD (wParam)) 
    { 
case IDOK2: 
    return(FALSE); 
default: 
    return(FALSE); 
    } 
default: 
return(FALSE); 
    } 
    return(FALSE); 

#10


代码贴了 有问题吗?

#11


处理了该消息返回TRUE。。详情在深入浅出MFC中有提到。。

#12


一般就返回 TRUE 吧

#13



问题是不处理返回TRUE就卡死了。

#14


返回TRUE说明已将处理完成了!

#1


一般已经处理了,就用true返回值告诉后面的函数,我已经处理过了。

#2


这里用TRUE和FALSE来区别,是为了还有其他地方有判断语句时来用的.
比如说我先要从一组数据中查找数字20,如果有就返回TRUE,如果没有就返回FALSE.我将这个函数定义为BOOL型的.假设名字为:BOOL check(int a[20])
然后,我在另一个函数中调用这个函数:
int b[20]={1,2,3,...25};
BOOL result=check(b);
然后我就可以在这里来判断:
if(result)
MessageBox("The number is exist!");
else
MessageBox("There is no such number in the array!");

You See?

#3


这里用TRUE和FALSE来区别,是为了还有其他地方有判断语句时来用的.
比如说我先要从一组数据中查找数字20,如果有就返回TRUE,如果没有就返回FALSE.我将这个函数定义为BOOL型的.假设名字为:BOOL check(int a[20])
然后,我在另一个函数中调用这个函数:
int b[20]={1,2,3,...25};
BOOL result=check(b);
然后我就可以在这里来判断:
if(result)
MessageBox("The number is exist!");
else
MessageBox("There is no such number in the array!");

You See?

#4


引用 1 楼 jennyvenus 的回复:
一般已经处理了,就用true返回值告诉后面的函数,我已经处理过了。 


可以看看OnInitDialog中最后一句自动添加的注释吧

#5


默认的一般都是true,表示你其中的函数已经处理过了,否则没处理

#6


看在哪个函数中了

#7


为什么
我如果没有处理就 返回TRUE
就会引起程序定死。。。

#8


贴代码

#9


代码很简单 下面是对话框消息处理函数 
就是把返回的值全部改成TRUE就程序死了。 
BOOL CALLBACK dia_pro_fun_1(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam) 

    switch(message) 
    { 
case WM_CLOSE: 
    DestroyWindow(hDlg); 
    return (FALSE); 
        case WM_INITDIALOG: 
            return(FALSE); 
        case WM_COMMAND: 
            switch (LOWORD (wParam)) 
    { 
case IDOK2: 
    return(FALSE); 
default: 
    return(FALSE); 
    } 
default: 
return(FALSE); 
    } 
    return(FALSE); 

#10


代码贴了 有问题吗?

#11


处理了该消息返回TRUE。。详情在深入浅出MFC中有提到。。

#12


一般就返回 TRUE 吧

#13



问题是不处理返回TRUE就卡死了。

#14


返回TRUE说明已将处理完成了!