Leaked source code of windows server 2003
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.
 
 
 
 
 
 

72 lines
2.1 KiB

// ddxm.cpp : implementation file
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1995 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#include "stdafx.h"
#include "ddxm.h"
#include "wordpad.h"
#include "resource.h"
// this routine prints a floatingpoint number with 2 digits after the decimal
void PASCAL DDX_Twips(CDataExchange* pDX, int nIDC, int& value)
{
HWND hWndCtrl = pDX->PrepareEditCtrl(nIDC);
TCHAR szT[64];
if (pDX->m_bSaveAndValidate)
{
::GetWindowText(hWndCtrl, szT, sizeof(szT)/sizeof(szT[0]));
if (szT[0] != NULL) // not empty
{
if (!theApp.ParseMeasurement(szT, value))
{
AfxMessageBox(IDS_INVALID_MEASUREMENT,MB_OK|MB_ICONINFORMATION);
pDX->Fail(); // throws exception
}
theApp.PrintTwips(szT, ARRAYSIZE(szT), value, 2);
theApp.ParseMeasurement(szT, value);
}
else // empty
value = INT_MAX;
}
else
{
// convert from twips to default units
if (value != INT_MAX)
{
theApp.PrintTwips(szT, ARRAYSIZE(szT), value, 2);
SetWindowText(hWndCtrl, szT);
}
}
}
void PASCAL DDV_MinMaxTwips(CDataExchange* pDX, int value, int minVal, int maxVal)
{
ASSERT(minVal <= maxVal);
if (value < minVal || value > maxVal)
{
// "The measurement must be between %1 and %2."
if (!pDX->m_bSaveAndValidate)
{
TRACE0("Warning: initial dialog data is out of range.\n");
return; // don't stop now
}
TCHAR szMin[32];
TCHAR szMax[32];
theApp.PrintTwips(szMin, ARRAYSIZE(szMin), minVal, 2);
theApp.PrintTwips(szMax, ARRAYSIZE(szMax), maxVal, 2);
CString prompt;
AfxFormatString2(prompt, IDS_MEASUREMENT_RANGE, szMin, szMax);
AfxMessageBox(prompt, MB_ICONEXCLAMATION, AFX_IDS_APP_TITLE);
prompt.Empty(); // exception prep
pDX->Fail();
}
}