计算机 DialogProc 函数
函数功能:该函数为一个应用程序定义可与 DialogBOX 函数一起使用的回调函数。它处理发
送到一个模态的或无模式对话框的消息。DLGPROC 类型定义了一个指向此回调函数的指针。
DialogProc 函数是应用程序定义函数名的一个占位符。
函数原型: BOOL CALLBACK DialogProc(HWND hwndDlg,UINT UMsg,WPARAM wParam,LPARAM
IParam);
参数:
hwndDlg:指定对话框。
uMsg:指定消息。
wParam:指定消息特定的其他信息。
Iparam:指定消息特定的其他信息。
返回值:除了对 MM_INITDIALOG 消息的响应之外如果函数处理消息,则对话框应用程序应该
返回非零值.
如果函数不处理消息,则对话框应用程序应该返回零值。再响应 WM_INITDIALOG 消息时,如
果函数调用 SetFocus 设置对话框中控制中的一个焦点,则对话框应用程序应该返回零值,否
则对话框应用程序应该返回非零值在,这种情况下系统对能够有焦点的对话框中的第一个控
制设置焦点。
备注:只要为对话框使用对话框类时才应该使用对话框应用程序。这是缺省的类,并且在对
话框模板中没有指定明显的类时才使用。尽管对话框应用程序同 Windows 应用程序类似,但
它不能调用 DefWindowProc
函数来处理不需要的消息。不需要的消息通过对话框窗口应用程序内部处理。
速查:Windows NT:3.1 及以上版本;Windows:95 及以上版本;Windows CE:1.0 及以上
版本;头文件:Winser.h;库文件:用户定义。
2.7.11 EndDialog
函数功能:该函数清除一个模态对话框,并使系统中止对对话框的任何处理。
函数原型:BOOL EndDialog(HWND hDlg,int nResult);
参数:
hDlg:表示要被清除的对话框窗口。
NResult:指定从创建对话框函数返回到应用程序的值。
返回值:如果函数调用成功,则返回值为非零值;如果函数调用失败则返回值为零。若想获
得错误信息请调用 GetLastError 函数。
备注:由 DialogBox,DialogBoxParam、DialogBoxlndirect 和 DialogBoxlndirectParam
函数创建的对话框一定要用 EndDialog 函数来清除。应用程序从对话框应用程序内部调用
EndDialog 函数,该函数不能为其他目的而供使用。
对话框应用程序可以在任何时间调用 EndDialog 函数;甚至在 WM_INITDIALOG 消息处理
过程中。如果应用程序在 WM_INTDIALOG 消息处理过程中调用该函数,则对话框在显示和输
入焦点被设置之前对话框被清除。
EndDialog 函数并不立即清除对话框。而是设置一个标志,并且允许对话框应用程序把
控制权返回系统。系统在试图从应用程序队列检索下一个消息之前检测标志。如果已经设置
了标志则系统中止消息循环,清除对话框,且用 nResUlt 中的值作为从创建对话框的函数中
返回的值。