如果我使用(done_dialog 1)为对话框赋值为1,我如何能获得对话框的这个新值
时间: 2024-02-12 22:02:21 浏览: 38
在 Lisp 中,可以使用函数 `(dialog-value dialog-object)` 来获取对话框的返回值。当您调用 `(done-dialog 1)` 函数时,它会关闭对话框并将值 1 返回给 Lisp。您可以通过将对话框对象作为参数传递给 `(dialog-value)` 函数来获取这个返回值。
下面是一个示例,展示如何获取对话框的返回值:
```
(let ((d (start-dialog "请选择一个选项:"))
(result nil))
(if (= (dialog-value d) 1)
(setq result "您选择了第一个选项。")
(setq result "您没有选择第一个选项。"))
(done-dialog 1)
(message result))
```
在这个示例中,我们首先使用 `(start-dialog)` 函数创建一个对话框,并将其存储在变量 `d` 中。然后,我们使用 `(dialog-value d)` 函数获取对话框的返回值,并将其与值 1 进行比较。如果返回的值是 1,则将 `result` 变量设置为字符串 "您选择了第一个选项。";否则将其设置为字符串 "您没有选择第一个选项。"。最后,我们使用 `(done-dialog 1)` 函数关闭对话框,并在消息区域中显示 `result` 变量的值。
相关问题
MFC模式下,我的DIALOG中有IDD_DIALOG1,为什么在使用的时候还显示未定义类IDD_DIALOG1
IDD_DIALOG1是一个对话框模板资源的标识符,它用于在资源文件中标识一个特定的对话框模板。在MFC中,对话框模板资源通常定义在.rc文件中,并且在编译后会生成一个资源ID,这个资源ID可以用来创建对话框实例。
如果在使用IDD_DIALOG1时显示未定义类的错误,可能是因为没有正确包含对话框模板资源的头文件。在使用对话框模板资源时,需要包含包含对话框模板资源的头文件,例如:
```
#include "resource.h"
```
另外,如果在资源文件中修改了IDD_DIALOG1的标识符,需要确保在代码中使用的标识符也做相应的修改。
IDD_DIALOG1 dlg;这样写来打开一个新的Dialog
是的,这样的代码可以用来打开一个新的Dialog窗口,其中IDD_DIALOG1是Dialog的ID。通常情况下,还需要使用CreateDialog或DialogBox函数来创建并显示Dialog窗口。例如:
```
// 在主窗口的消息处理函数中打开Dialog
case WM_COMMAND:
switch (LOWORD(wParam))
{
case ID_OPEN_DIALOG:
// 打开Dialog
DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DialogProc);
break;
//...
}
break;
// Dialog的消息处理函数
INT_PTR CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
// 初始化Dialog
return (INT_PTR)TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
// 处理OK按钮的点击事件
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
case IDCANCEL:
// 处理Cancel按钮的点击事件
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
//...
}
break;
}
return (INT_PTR)FALSE;
}
```
在这个例子中,当主窗口接收到ID_OPEN_DIALOG按钮的点击事件后,会调用DialogBox函数打开一个名为IDD_DIALOG1的Dialog窗口,并将DialogProc函数作为消息处理函数。DialogProc函数中处理Dialog窗口中各个控件的事件,例如点击OK或Cancel按钮。最后,通过EndDialog函数结束Dialog窗口的消息循环。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)