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.
 
 
 
 
 
 

128 lines
2.6 KiB

// dsubmit.cpp
//
// Copyright 2000 Microsoft Corporation, all rights reserved
//
// Created 2-00 anbrad
//
#include "pch.h"
#pragma hdrstop
#include "dsubmit.h"
#include "resource.h"
#include "main.h"
const DWORD c_cbName = sizeof(g_szName)/sizeof(TCHAR);
const DWORD c_cbProblem = sizeof(g_szProblem)/sizeof(TCHAR);
INT_PTR CALLBACK DlgProcSubmit(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
DWORD cbName = c_cbName;
switch (msg)
{
case WM_INITDIALOG:
CentreWindow(hwnd);
SendMessage (GetDlgItem(hwnd, IDC_USER), EM_LIMITTEXT, c_cbName, 0);
SendMessage (GetDlgItem(hwnd, IDC_PROBLEM), EM_LIMITTEXT, c_cbProblem, 0);
GetUserName(g_szName, &cbName);
if (cbName)
{
SetDlgItemText(hwnd, IDC_USER, g_szName);
SetFocus(GetDlgItem(hwnd, IDC_PROBLEM));
return FALSE;
}
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
GetDlgItemText(hwnd, IDC_USER, g_szName, c_cbName);
GetDlgItemText(hwnd, IDC_PROBLEM, g_szProblem, c_cbProblem);
EndDialog(hwnd, TRUE);
break;
case IDCANCEL:
g_szName[0] = '\0';
g_szProblem[0] = '\0';
EndDialog(hwnd, FALSE);
break;
}
return TRUE;
default:
return FALSE;
}
return TRUE;
}
//////////////////////////////////////////////////////////////////////////////
//
// CentreWindow
//
// Positions a window so that it is centered in its parent.
//
//////////////////////////////////////////////////////////////////////////////
void CentreWindow(HWND hwnd)
{
RECT rect;
RECT rectParent;
HWND hwndParent;
LONG dx, dy;
LONG dxParent, dyParent;
LONG Style;
//
// Get window rect.
//
GetWindowRect(hwnd, &rect);
dx = rect.right - rect.left;
dy = rect.bottom - rect.top;
//
// Get parent rect.
//
Style = GetWindowLong(hwnd, GWL_STYLE);
if ((Style & WS_CHILD) == 0)
{
hwndParent = GetDesktopWindow();
}
else
{
hwndParent = GetParent(hwnd);
if (hwndParent == NULL)
{
hwndParent = GetDesktopWindow();
}
}
GetWindowRect(hwndParent, &rectParent);
dxParent = rectParent.right - rectParent.left;
dyParent = rectParent.bottom - rectParent.top;
//
// Centre the child in the parent.
//
rect.left = (dxParent - dx) / 2;
rect.top = (dyParent - dy) / 3;
//
// Move the child into position.
//
SetWindowPos( hwnd,
NULL,
rect.left,
rect.top,
0,
0,
SWP_NOSIZE | SWP_NOZORDER );
SetForegroundWindow(hwnd);
}