mirror of https://github.com/tongzx/nt5src
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
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);
|
|
}
|