0

当用户单击“是”或“否”时,我在调节我希望此 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 中执行此操作。在此先感谢您。

4

2 回答 2

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 的文档。

于 2013-06-17T04:03:46.153 回答
0

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

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

此外,使用4而不是MB_YESNO不是一个很好的风格。

于 2013-06-16T21:21:48.310 回答