Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Написание прог (http://forum.oszone.net/showthread.php?t=30859)

Apis.NET 30-05-2002 21:50 210423

Мне нужно написать калькулятор под Windows. Я нарисовал калькулятор (по типу стандартного Виндового).Как релизовать отображение нажатой цифры на табло калькулятора.
Пример : нажата цифра 1 на табло 1, нажата цифра 2 на табло 12.
Заранее благодарю.

ivank 30-05-2002 23:36 210424

Apis.NET
Читать книжки на тему sprintf/ostrstream. И всё у тебя получится :) А вообще, если что бы научить тебя программровать тебе дают подобные задания, то твои курсы надо выкинуть.

astrolac 31-05-2002 02:14 210425

К сожалению, ты не указал в какой среде ты пишешь. :biglaugh:
На самом деле всё просто (я пишу на С/C++):
для начала определим какой-нибудь массив типа char (если ты не определил его ранее), примерно так
char szDigits[n]; // где n - максимальное количество цифр + 1 (для символа конца строки - '\0')
и int nSymbols;
затем в этот массив необходимо перенести текст из импровизированного табло, например в Borland C++ Builder это будет выглядить так:
nSymbols=wsprintf(szDigits, "%s", TabloEdit->Text.c_str()); // где TabloEdit - окно  редактирования; Text - свойство этого окна (всё это можно узнать из help'а)
далее в szDigits[nSymbols] заносим нужный нам символ, а szDigits[nSymbols+1]='\0';
Затем szDigits возвращаем обратно в - TabloEdit->Text=szDigits;

Вот в общем и всё. Если что непонятно оставь здесь сообщение, захочешь подробнее оставляй e-mail отвечу подробнее.

Удачи ! :)

Apis.NET 31-05-2002 06:33 210426

ivank
помниш наш разговор о смысловых нагрузках?
mfr вот это и есть пример твоей смысловой нагрузки!?
ты сам хоть одну прогу написал?
Тебя родители что кроме обсерания, ни чему не научили?

astrolac
Цитата:

К сожалению, ты не указал в какой среде ты пишешь
вроде писал что это Visual C++ если я тебя правильно понял.
(Fail->New->MFC AppWizard (exe)

Добавлено:

astrolac
а есть ли какай нить аналогичный исходник?

vasketsov 31-05-2002 07:02 210427

Apis.NET
примеров куча, на codeguru.com поищи или codetools.com
а вообще поддерживаю ivank, к программированию на C/C++ это имеет очень отдаленное отношение, и научить такими заданиями ничему нельзя.
и никогда не используй wsprintf, по многим причинам.
лучше s(w)printf для этого.

ivank 31-05-2002 08:46 210428

Apis.NET
http://firststeps.ru , Я тебе эту ссылку давал? Там в разделе Visual C++ подробно для тех, кто вообще ничего не знает о программировании, рассмотрен процесс написания приложений с использованием MFC.

Цитата:

mfr вот это и есть пример твоей смысловой нагрузки!?
Помню... Просто я не вижу других проблем в создании такого приложения, кроме как получение строки из числа.

Цитата:

ты сам хоть одну прогу написал?
Не так уж и много, если честно... Самая большая, которой я занимаюсь чуть менее полугода,  сейчас тянет на мег исходников.

Цитата:

Тебя родители что кроме обсерания, ни чему не научили?
Меня бесит, когда человеку лень пойти в поисковик/почитать документацию. Если честно, меня тоже иногда посещают мысли а-ля: "я не знаю как это сделать, не буду напрягаться, спрошу на форуме..." Но это и есть проявление ламерства.

Апис, а теперь смотри на волшебства, я иду в гугл и набираю "windows calculator MFC": http://www.google.com.ru/search?q=wi...UTF8&hl=ru . И ссылка, на страницу где лежит целых два (простой и продвинутый) калькулятора находится _первой_ в списке: http://darkeldar77.tripod.com/source.html . На поиск я потратил от-силы секунд двадцать...

Apis.NET 01-06-2002 11:05 210429

ivank
Цитата:

На поиск я потратил от-силы секунд двадцать
а я 2 часа!

Добавлено:

и ннашол!
искать тоже нужно уметь, но это уже другой топик

Добавлено:

ivank
кстати спасибо, это почти то что мне нужно.

Apis.NET 02-06-2002 01:16 210430

всё написал !
Всё решилось с помощью : * * * UpdateData(true);
m_Tablo = m_Tablo*10 + цифра;
UpdateData(false);

Всем спасибо!
Особая благодарность Иванику!

[s]Исправлено: Apis.NET, 7:34 3-06-2002[/s]

Apis.NET 15-06-2002 01:21 210431

Нужно написать текст. редактор
но у меня не получаеться реализовать чтение/сохранение
CFileDialog fd(0);
fd.DoModal();
вызывает картинка, а как заставить её сохранять/читать

vasketsov 17-06-2002 08:13 210432

Apis.NET
это только диалог.
он позволяет только выбрать файл(ы).
сохраняешь/читаешь САМ после вызова диалога и анализа того, что вернулось и свойств.

Apis.NET 18-06-2002 06:46 210433

CFileDialog fd(1);
fd.DoModal();

ifstream ifs(fd.m_ofn.lpstrFile);
if(!ifs)
{
MessageBox("Can't open file", "File open error");
return;
}
char str[999];
while ( !ifs.eof() )
{
ifs.getline(str,999);
m_Tablo  = str;
m_Text.SetWindowText(str);  
}
//UpdateData(false);
так читает последнюю строку файла.
а как заставить читать весь файл?

ivank 18-06-2002 10:17 210434

Apis.NET
Какой-то ты не последовательный, раз уж используешь CFileDialog, то используй и CFile и CString...

Можно, например, зачитать всё построчно в список строк (тафтология, маленько-сь получилась):
Код:

#include <fstream>
#include <list>
#include <string>
using namespace std;

void read_file( string, filename, list< string > * out )
{
 * *ifstream ifs( filename, ios::in|ios::binary );
 * *for( ;; )
 * *{
 * * * *string str;
 * * * *getline( ifs, str );
 * * * *if( ifs.eof() )
 * * * * * *break;
 * * * *out->push_back( str );
 * *}
}

Можно функцией WinAPI узнать размер файла, и целиком считать его с диска... Можно создать strstream, зачитать всё в него, и потом сбросить в строку. В обсчем, говори точнее что тебе надо.

Apis.NET 28-06-2002 15:45 210435

Теперь нужно граф. редактор.
как сделать чтоб опред. координаты курсора?

ivank 28-06-2002 19:00 210436

Apis.NET
В MFC -- копай на тему OnMouseMove. Ты же вроде им пользуешься...


Время: 02:33.

Время: 02:33.
© OSzone.net 2001-