/**************************************************************************** * * Display Doctor Windows Interface Code * * ====================================================================== * |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW| * | | * |This copyrighted computer code is a proprietary trade secret of | * |SciTech Software, Inc., located at 505 Wall Street, Chico, CA 95928 | * |USA (www.scitechsoft.com). ANY UNAUTHORIZED POSSESSION, USE, | * |VIEWING, COPYING, MODIFICATION OR DISSEMINATION OF THIS CODE IS | * |STRICTLY PROHIBITED BY LAW. Unless you have current, express | * |written authorization from SciTech to possess or use this code, you | * |may be subject to civil and/or criminal penalties. | * | | * |If you received this code in error or you would like to report | * |improper use, please immediately contact SciTech Software, Inc. at | * |530-894-8400. | * | | * |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW| * ====================================================================== * * Language: C++ 3.0 * Environment: Win16 * * Description: Dialog driven configuration program for UniVBE and * WinDirect Professional products. * ****************************************************************************/ #include "center.h" /*------------------------------ Implementation ---------------------------*/ void _EXPORT CenterWindow(HWND hWndCenter, HWND parent, BOOL repaint) /**************************************************************************** * * Function: CenterWindow * Parameters: hWndCenter - Window to center * parent - Handle for parent window * repaint - true if window should be re-painted * * Description: Centers the specified window within the bounds of the * specified parent window. If the parent window is NULL, then * we center it using the Desktop window. * ****************************************************************************/ { HWND hWndParent = (parent ? parent : GetDesktopWindow()); RECT RectParent; RECT RectCenter; int CenterX,CenterY,Height,Width; GetWindowRect(hWndParent, &RectParent); GetWindowRect(hWndCenter, &RectCenter); Width = (RectCenter.right - RectCenter.left); Height = (RectCenter.bottom - RectCenter.top); CenterX = ((RectParent.right - RectParent.left) - Width) / 2; CenterY = ((RectParent.bottom - RectParent.top) - Height) / 2; if ((CenterX < 0) || (CenterY < 0)) { /* The Center Window is smaller than the parent window. */ if (hWndParent != GetDesktopWindow()) { /* If the parent window is not the desktop use the desktop size. */ CenterX = (GetSystemMetrics(SM_CXSCREEN) - Width) / 2; CenterY = (GetSystemMetrics(SM_CYSCREEN) - Height) / 2; } CenterX = (CenterX < 0) ? 0: CenterX; CenterY = (CenterY < 0) ? 0: CenterY; } else { CenterX += RectParent.left; CenterY += RectParent.top; } /* Copy the values into RectCenter */ RectCenter.left = CenterX; RectCenter.right = CenterX + Width; RectCenter.top = CenterY; RectCenter.bottom = CenterY + Height; /* Move the window to the new location */ MoveWindow(hWndCenter, RectCenter.left, RectCenter.top, (RectCenter.right - RectCenter.left), (RectCenter.bottom - RectCenter.top), repaint); } void _EXPORT CenterLogo(HWND hWndLogo, HWND hWndParent, int CenterY) /**************************************************************************** * * Function: CenterLogo * Parameters: hWndLogo - Window to center * hWndParent - Handle for parent window * CenterY - Top coordinate for logo * * Description: Centers the specified window within the bounds of the * specified parent window in the horizontal direction only. * ****************************************************************************/ { RECT RectParent; RECT RectCenter; int CenterX,Height,Width; GetWindowRect(hWndParent, &RectParent); GetWindowRect(hWndLogo, &RectCenter); Width = (RectCenter.right - RectCenter.left); Height = (RectCenter.bottom - RectCenter.top); CenterX = ((RectParent.right - RectParent.left) - Width) / 2; /* Copy the values into RectCenter */ RectCenter.left = CenterX; RectCenter.right = CenterX + Width; RectCenter.top = CenterY; RectCenter.bottom = CenterY + Height; /* Move the window to the new location */ MoveWindow(hWndLogo, RectCenter.left, RectCenter.top, (RectCenter.right - RectCenter.left), (RectCenter.bottom - RectCenter.top), false); }