195 lines
4.3 KiB
C
195 lines
4.3 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (C) 1996-1999 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
expldlg.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
explain dialog box functions
|
|||
|
|
|||
|
Revision History
|
|||
|
|
|||
|
Bob Watson (bobw) mar-97 Created
|
|||
|
|
|||
|
--*/
|
|||
|
#include <windows.h>
|
|||
|
#include <tchar.h>
|
|||
|
#include <pdh.h>
|
|||
|
#include "pdhidef.h"
|
|||
|
#include "pdhdlgs.h"
|
|||
|
#include "expldlg.h"
|
|||
|
#include "pdhui.h"
|
|||
|
|
|||
|
//
|
|||
|
// Constants used in this module
|
|||
|
//
|
|||
|
WCHAR PdhiszTitleString[MAX_PATH+1];
|
|||
|
|
|||
|
|
|||
|
STATIC_BOOL
|
|||
|
ExplainTextDlg_WM_INITDIALOG (
|
|||
|
IN HWND hDlg,
|
|||
|
IN WPARAM wParam,
|
|||
|
IN LPARAM lParam
|
|||
|
)
|
|||
|
{
|
|||
|
RECT ParentRect;
|
|||
|
RECT rectDeskTop;
|
|||
|
RECT rectDlg;
|
|||
|
BOOL bResult = FALSE;
|
|||
|
|
|||
|
UNREFERENCED_PARAMETER (lParam);
|
|||
|
UNREFERENCED_PARAMETER (wParam);
|
|||
|
|
|||
|
bResult = GetWindowRect(GetDesktopWindow(), & rectDeskTop)
|
|||
|
&& GetWindowRect(hDlg, & rectDlg);
|
|||
|
GetWindowTextW (hDlg, PdhiszTitleString, MAX_PATH);
|
|||
|
|
|||
|
if (GetWindowRect (GetParent(hDlg), & ParentRect)) {
|
|||
|
int x = ParentRect.left;
|
|||
|
int y = ParentRect.bottom + 1;
|
|||
|
|
|||
|
if (bResult) {
|
|||
|
if ( y + (rectDlg.bottom - rectDlg.top)
|
|||
|
> (rectDeskTop.bottom - rectDeskTop.top)) {
|
|||
|
// Explain dialog will be off-screen at the bottom, so
|
|||
|
// reposition it to top of AddCounter dialog
|
|||
|
//
|
|||
|
y = ParentRect.top - (rectDlg.bottom - rectDlg.top) - 1;
|
|||
|
if (y < 0) {
|
|||
|
// Explain dialog will be off-screen at the top, use
|
|||
|
// original calculation
|
|||
|
//
|
|||
|
y = ParentRect.bottom + 1;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
SetWindowPos (hDlg, HWND_TOP, x, y, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
|
|||
|
} else {
|
|||
|
ShowWindow (hDlg, SW_SHOW);
|
|||
|
}
|
|||
|
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
|
|||
|
STATIC_BOOL
|
|||
|
ExplainTextDlg_WM_COMMAND (
|
|||
|
IN HWND hDlg,
|
|||
|
IN WPARAM wParam,
|
|||
|
IN LPARAM lParam
|
|||
|
)
|
|||
|
{
|
|||
|
WORD wNotifyMsg;
|
|||
|
|
|||
|
UNREFERENCED_PARAMETER (lParam);
|
|||
|
UNREFERENCED_PARAMETER (hDlg);
|
|||
|
|
|||
|
wNotifyMsg = HIWORD(wParam);
|
|||
|
|
|||
|
switch (LOWORD(wParam)) { // select on the control ID
|
|||
|
default:
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
STATIC_BOOL
|
|||
|
ExplainTextDlg_WM_SYSCOMMAND (
|
|||
|
IN HWND hDlg,
|
|||
|
IN WPARAM wParam,
|
|||
|
IN LPARAM lParam
|
|||
|
)
|
|||
|
{
|
|||
|
UNREFERENCED_PARAMETER (lParam);
|
|||
|
|
|||
|
switch (wParam) {
|
|||
|
case SC_CLOSE:
|
|||
|
PostMessageW (GetParent(hDlg), EDM_EXPLAIN_DLG_CLOSING, 0, 0);
|
|||
|
EndDialog (hDlg, IDOK);
|
|||
|
return TRUE;
|
|||
|
|
|||
|
default:
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
STATIC_BOOL
|
|||
|
ExplainTextDlg_WM_CLOSE (
|
|||
|
IN HWND hDlg,
|
|||
|
IN WPARAM wParam,
|
|||
|
IN LPARAM lParam
|
|||
|
)
|
|||
|
{
|
|||
|
UNREFERENCED_PARAMETER (lParam);
|
|||
|
UNREFERENCED_PARAMETER (wParam);
|
|||
|
UNREFERENCED_PARAMETER (hDlg);
|
|||
|
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
STATIC_BOOL
|
|||
|
ExplainTextDlg_WM_DESTROY (
|
|||
|
IN HWND hDlg,
|
|||
|
IN WPARAM wParam,
|
|||
|
IN LPARAM lParam
|
|||
|
)
|
|||
|
{
|
|||
|
UNREFERENCED_PARAMETER (lParam);
|
|||
|
UNREFERENCED_PARAMETER (wParam);
|
|||
|
UNREFERENCED_PARAMETER (hDlg);
|
|||
|
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
BOOL
|
|||
|
ExplainTextDlgProc (
|
|||
|
IN HWND hDlg,
|
|||
|
IN UINT message,
|
|||
|
IN WPARAM wParam,
|
|||
|
IN LPARAM lParam
|
|||
|
)
|
|||
|
{
|
|||
|
WCHAR szCaption[MAX_PATH*2];
|
|||
|
|
|||
|
switch (message) {
|
|||
|
case WM_INITDIALOG:
|
|||
|
return ExplainTextDlg_WM_INITDIALOG (hDlg, wParam, lParam);
|
|||
|
|
|||
|
case WM_COMMAND:
|
|||
|
return ExplainTextDlg_WM_COMMAND (hDlg, wParam, lParam);
|
|||
|
|
|||
|
case WM_SYSCOMMAND:
|
|||
|
return ExplainTextDlg_WM_SYSCOMMAND (hDlg, wParam, lParam);
|
|||
|
|
|||
|
case WM_CLOSE:
|
|||
|
return ExplainTextDlg_WM_CLOSE (hDlg, wParam, lParam);
|
|||
|
|
|||
|
case WM_DESTROY:
|
|||
|
return ExplainTextDlg_WM_DESTROY (hDlg, wParam, lParam);
|
|||
|
|
|||
|
case EDM_UPDATE_EXPLAIN_TEXT:
|
|||
|
if (lParam != 0) {
|
|||
|
SetWindowTextW (GetDlgItem(hDlg, IDC_EXPLAIN_TEXT), (LPCWSTR)lParam);
|
|||
|
} else {
|
|||
|
SetWindowTextW (GetDlgItem(hDlg, IDC_EXPLAIN_TEXT), cszEmptyString);
|
|||
|
}
|
|||
|
return TRUE;
|
|||
|
|
|||
|
case EDM_UPDATE_TITLE_TEXT:
|
|||
|
lstrcpyW (szCaption, PdhiszTitleString);
|
|||
|
if (lParam != 0) {
|
|||
|
if (*(LPWSTR)lParam != 0) {
|
|||
|
lstrcatW (szCaption, cszSpacer);
|
|||
|
lstrcatW (szCaption, (LPCWSTR)lParam);
|
|||
|
}
|
|||
|
}
|
|||
|
SetWindowTextW (hDlg, (LPCWSTR)szCaption);
|
|||
|
return TRUE;
|
|||
|
|
|||
|
default:
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
}
|