Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
StaticOkDialog
Abstract:
This is an abstraction around a simple non-modal dialog box to make them easier to use.
Author:
Marc Reyhner 7/11/2000
--*/
#include "stdafx.h"
#ifdef TRC_FILE
#undef TRC_FILE
#endif
#define TRC_FILE "rcsokd"
#include "rcontrol.h"
#include "StaticOkDialog.h"
CStaticOkDialog::CStaticOkDialog( )
/*++
Routine Description:
This is the constructor for CStaticOkDialog. This just initializes the member variables. Create must be called to create the dialog.
Arguments:
None
Return Value:
None
--*/ { DC_BEGIN_FN("CStaticOkDialog::CStaticOkDialog");
m_hWnd= NULL;
DC_END_FN(); }
CStaticOkDialog::~CStaticOkDialog( )
/*++
Routine Description:
This is the destructor for CStaticOkDialog. This will call DestroyWindow on the dialog if that has not been already done.
Arguments:
None
Return Value:
None
--*/ { DC_BEGIN_FN("CStaticOkDialog::~CStaticOkDialog"); if (IsCreated()) { DestroyWindow(m_hWnd); }
DC_END_FN(); }
BOOL CStaticOkDialog::Create( IN HINSTANCE hInstance, IN WORD resId, IN OUT HWND parentWnd )
/*++
Routine Description:
This creates the dialog and displays it.
Arguments:
hInstance - The instance for this module.
resId - The resource id of the dialog template.
parentWnd - Handle to the parent window for the dialog
Return Value:
TRUE - The dialog was created.
FALSE - There was an error creating the dialog.
--*/ { DC_BEGIN_FN("CStaticOkDialog::Create");
if (IsCreated()) { DC_END_FN(); return FALSE; } m_hWnd = CreateDialog(hInstance,MAKEINTRESOURCE(resId),parentWnd,_DlgProc); if (m_hWnd) { SetWindowLongPtr(m_hWnd,GWLP_USERDATA,(LONG)this); ShowWindow(m_hWnd,SW_SHOW); SetFocus(m_hWnd); DC_END_FN(); return TRUE; } else {
DC_END_FN(); return FALSE; } }
INT_PTR CALLBACK CStaticOkDialog::_DlgProc( IN OUT HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam )
/*++
Routine Description:
This is the DialogProc for the dialog. If the user hit the "ok" button we close the dialog. Otherwise we ignore the message.
Arguments:
hwndDlg - Handle to the dialog.
uMsg - Message that occurred.
wParam - WPARAM for the message.
lParam - LPARAM for the message.
Return Value:
TRUE - We handled the message
FALSE - We didn't handle the message
--*/ { BOOL retValue = TRUE; CStaticOkDialog *theClass;
DC_BEGIN_FN("CStaticOkDialog::_DlgProc");
theClass = (CStaticOkDialog*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); switch (uMsg) { case WM_COMMAND: switch (wParam) { case IDOK: if (theClass) { theClass->OnOk(); } DestroyWindow(hwndDlg); break; } default: retValue = FALSE; }
DC_END_FN();
return retValue; }
BOOL CStaticOkDialog::IsCreated( )
/*++
Routine Description:
This returns whether or not the dialog is a current valid window.
Arguments:
None
Return Value:
TRUE - The dialog has been created.
FALSE - The dialog has not been created or was destroyed.
--*/ { BOOL result; DC_BEGIN_FN("CStaticOkDialog::IsCreated");
result = IsWindow(m_hWnd);
DC_END_FN();
return result; }
VOID CStaticOkDialog::DestroyDialog( )
/*++
Routine Description:
This destroys the dialog. You can create it again after this if you want.
Arguments:
None
Return Value:
None
--*/ { DC_BEGIN_FN("CStaticOkDialog::DestroyDialog");
DestroyWindow(m_hWnd); m_hWnd = NULL;
DC_END_FN(); }
BOOL CStaticOkDialog::DialogMessage( IN LPMSG lpMsg )
/*++
Routine Description:
This needs to be called by the event loop while this dialog is created to send it windows messages.
Arguments:
lpMsg - The message which was sent.
Return Value:
TRUE - The message was for this dialog.
FALSE - The message was not for this dialog.
--*/ { BOOL result;
DC_BEGIN_FN("CStaticOkDialog::DialogMessage");
if (IsCreated()) { result = IsDialogMessage(m_hWnd,lpMsg); } else { result = FALSE; }
DC_END_FN();
return result; }
VOID CStaticOkDialog::Activate( )
/*++
Routine Description:
This brings the dialog to the foreground.
Arguments:
None
Return Value:
None
--*/ { DC_BEGIN_FN("CStaticOkDialog::Activate");
if (IsCreated()) { SetForegroundWindow(m_hWnd); SetFocus(m_hWnd); }
DC_END_FN();
}
VOID CStaticOkDialog::OnOk( )
{ // this is a temporary function to be removed when
// salem gets remote control notifications correct.
}
|