/* FinalSun/FinalAlert 2 Mission Editor Copyright (C) 1999-2024 Electronic Arts, Inc. Authored by Matthias Wagner This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ // // FloatEdit.cpp: Implementierungsdatei // #include "stdafx.h" #include "FinalSun.h" #include "FloatEdit.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CFloatEdit CFloatEdit::CFloatEdit() { } CFloatEdit::~CFloatEdit() { } BEGIN_MESSAGE_MAP(CFloatEdit, CEdit) //{{AFX_MSG_MAP(CFloatEdit) ON_WM_ACTIVATE() ON_CONTROL_REFLECT(EN_KILLFOCUS, OnKillfocus) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // Behandlungsroutinen für Nachrichten CFloatEdit void CFloatEdit::OnKillfocus() { // okay, we need to convert it to a float CString text, originaltext; GetWindowText(text); originaltext = text; if (strlen(text) < 1) { //SetWindowText("0.000000"); return; } double res = atof(text); int c, d; char* j = _fcvt(res, 6, &c, &d); int i, slen = strlen(j); char j2[50]; for (i = 0; i < 6 - slen; i++) { strcpy(j2, j + i); j[i] = 0; strcat(j, "0"); strcat(j, j2); } if (j == NULL) return; //MessageBox(j,text); text = j; text.Insert(c, "."); //MessageBox(text); if (strchr(text, '.') == text) text.Insert(0, "0"); //delete[](j); if (originaltext == text) return; SetWindowText(text); }