在C MessageBox()中调整是或否

时间:2013-06-16 21:17:49

标签: c winapi conditional-statements messagebox

当用户点击“是”或“否”时,我遇到了调整我想要这个MessageBox()的问题。

这是我的伪代码显示我的意思:

MessageBox(0,"Click \"Yes\" or \"No\".","A MessageBox() Example",4);
    if(TheUserClickedYes){
        //Do something
    }else if(TheUserClickedNo){
       // Do Something else
    }

最后一个参数中的4显示“是”或“否”按钮。我可以让盒子显示,但是当我尝试调节按钮时,我不知道该怎么做。我试图谷歌它,结果中显示的所有内容都是C ++或C#。我想在C中这样做。先谢谢你。

2 个答案:

答案 0 :(得分:2)

如果成功,

MessageBox将返回一个整数,指示单击了哪个按钮。

重写代码以使用适当的常量而不是硬编码数字:

switch (MessageBox(NULL, TEXT("Click \"Yes\" or \"No\".", TEXT("A MessageBox() Example"), MB_YESNO)) {
case IDYES:
    MessageBox(NULL, TEXT("Yes!"), TEXT("Yes"), MB_OK);
    break;
case IDNO:
    MessageBox(NULL, TEXT("No!"), TEXT("No"), MB_OK);
    break;
default:
    /* An error occurred. */
}

请务必仔细阅读使用 之前使用的API的文档。

答案 1 :(得分:0)

MessageBox有一个整数结果,告诉用户点击了什么。

请参阅文档以了解可能的返回值:http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx

此外,使用4代替MB_YESNO并不是一个非常好的风格。