reactos操作系统实现(176)
MessageBox函数是一个非常简单提示性窗口函数,那么它是怎么实现显示窗口的呢?现在就来分析它的实现代码,如下: #001 int #002 WINAPI #003 MessageBoxW( #004 HWND hWnd, #005 LPCWSTR lpText, #006 LPCWSTR lpCaption, #007 UINT uType) #008 {
在这里主要调用函数MessageBoxExW来实现。 #009 return MessageBoxExW(hWnd,lpText,lpCaption,uType,LANG_NEUTRAL); #010 }
MessageBoxExW函数实现如下: #001 int #002 WINAPI #003 MessageBoxExW( #004 HWND hWnd, #007 UINT uType, #008 WORD wLanguageId) #009 {
定义一个消息框的结构。 #010 MSGBOXPARAMSW msgbox; #011
设置结构大小,以便实现不同版本兼容。 #012 msgbox.cbSize = sizeof(msgbox);
设置本窗口属于那个窗口的句柄。 #013 msgbox.hwndOwner = hWnd;
设置进程实例为空。 #014 msgbox.hInstance = 0;
设置提示性的文字。 #015 msgbox.lpszText = lpText;
窗口显示的标题。 #016 msgbox.lpszCaption = lpCaption;
窗口显示的类型。 #017 msgbox.dwStyle = uType;
窗口图标为空。 #018 msgbox.lpszIcon = NULL;
窗口帮助索引为空。 #019 msgbox.dwContextHelpId = 0;
窗口回调函数也为空。 #020 msgbox.lpfnMsgBoxCallback = NULL;
不同的语言显示。 #021 msgbox.dwLanguageId = wLanguageId; #022
调用函数MessageBoxTimeoutIndirectW进一步显示。 #023 return MessageBoxTimeoutIndirectW(&msgbox,(UINT)-1); #024} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |