+++
Mariusz: c++ win api....napisz program....zgadywarke liczb...(ma być to bardzo prosty program jak
najprostszy)...jestem słaby z programowania...teraz nie chce się uczyć bo uczę się wyłącznie
do matury i nie mam czasu. Proszę o pomoc.
7 mar 20:38
Braun:
Najpierw Twoja próba, nikt nie będzie odrabiał za Ciebie pracy domowej bo dziecko ma maturę..
Co to wgl za tłumaczenie ?
7 mar 20:54
Draghan: Mariusz, nikt nie będzie za Ciebie pisał gotowców.
Włącz sobie Code::Blocks i stwórz nowy projekt. Przy wyborze typu, zaznacz Win32 GUI Project.
Potem "frame based".
IDE wygeneruje Ci najprostszy program z szablonu − po skompilowaniu będziesz miał czyste
okienko (w trybie "debug" pojawi się jeszcze konsola w tle).
Teraz zostają Ci trzy rzeczy do zrobienia:
1) napisać logiczną obsługę losowania liczby i zapisywania jej do jakiejś, np. globalnej
zmiennej,
2) dodać do programu dwie kontrolki: okienko, gdzie user wpisze liczbę i przycisk "OK",
3) napisania prostej funkcji, która po naciśnięciu przez usera przycisku, sprawdza czy podana
liczba się zgadza z tą wylosowaną i wyświetlania odpowiednich komunikatów.
Punkt trzeci jest zdecydowanie najtrudniejszy, gdyż musisz pobrać tekst z okienka i sprawdzić,
czy to w ogóle jest liczba. Chyba, że zamiast okienka tekstowego, zastosujesz sprytną sztuczkę
i wstawisz, np. ChoiceBox.
7 mar 20:57
Braun:
Trzeba użyć srand(time(NULL)) i biblioteki iostream, cstdlib, time.h, stdio.h
pętal while i pęta if i tak już za dużo powiedziałem.
7 mar 21:02
Draghan: Miało być w WinApi, więc włączanie bibliotek iostream i stdio.h jest niezasadne.
Poza tym
już samo łączenie bibliotek iostream z stdio.h jest nie na miejscu, ponieważ ich
funkcjonalność się dubluje.
7 mar 21:07
Braun:
Nie doczytałem, i nie chcę mi się pisać za kogoś kodu
7 mar 21:08
Draghan: Mi też nie. Odwalanie za kogoś roboty nigdy nie jest fajne, chyba że to jakieś ambitne zadanie.
Mam nadzieję, że
Mariusz chociaż skorzysta z naszych wskazówek...
7 mar 21:11
7 mar 21:29
Dziadek Mróz:
Nie bawiłem się WinApi w C++
7 mar 21:31
Dziadek Mróz:
Losuj liczbę
Dopóki nie zgadłeś:
Wypisz Nie zgadłeś
zgaduj
Wypisz Zgadłeś
Spytaj o kolejne losowanie lub koniec
7 mar 21:32
Draghan: Dziadek, ten model się w WinApi nie sprawdzi, to będzie bardziej aplikacja oparta na
zdarzeniach.
Po prostu niech zrobi tak, jak napisałem w pierwszym poście moim, a funkcja z punktu trzeciego
niech będzie podpięta pod button. I będzie śmigać.
7 mar 21:35
Antonio: Dziwne jest tylko to że program ma być napisany w winApi to musi być jakaś pomyłka, tworzenie
okienka i kontrolek takich jak przyciski, i pola edycji zajmie kilkaset a może nawet tysiące
linijek kodu.
Tu chyba chodzi bardziej o funkcji Api takie jak okienka dialogowe do wprowadzania danych.
7 mar 21:41
Draghan: Antonio, nie jest tak tragicznie.
"tworzenie
okienka i kontrolek takich jak przyciski, i pola edycji zajmie kilkaset a może nawet tysiące
linijek kodu" − nieprawda. Stworzenie kontrolki to jedna, dwie linijki.
A utworzenie okienka jest wygenerowane przez IDE (cały szablonowy program, wraz z include'ami,
komentarzami i formatowaniem ma 94 linijki) , więc − choć stosunkowo sporo miejsca zajmuje −
nie jest tym obciążony programista.
Inna sprawa, że czyste WinAPI jest niewygodne w użyciu − lepiej zastosować jakąś bibliotekę do
GUI. Z kolei takie biblioteki też rządzą się swoimi własnymi prawami... Za każdym razem należy
sobie wykonać bilans zysków i strat − jednak IMO zazwyczaj przewaga jest po stronie
nie−WinAPI.
7 mar 22:05
Mariusz: Widzę że ktoś tu ma problem z czytaniem ze zrozumieniem...skoro nazwałeś mnie "dzieckiem" to
ciekawe jakim cudem zdałeś maturę, skoro nawet czytać nie potrafisz. "Proszę o pomoc" a nie o
napisanie gotowca. Pozostałym dziękuję za pomoc. Oczywiście skorzystam
7 mar 22:13
Antonio: "Draghan" zintegrowane środowisko programistyczne IDE (Integrated Development Environment) to
nie jest API. API są to funkcje windowsa czyli te które znajdują się w bibliotekach w
folderach win, sys32 itp. IDE opakowuje API i dlatego można stworzyć przycisk za pomocą jednej
linijki kodu. W czystym API to przycisk zajmuje kilkadziesiąt linijek kodu
Ale to nie jest
tematem tego forum, tylko chodzi o pomoc koledze który ma problem z programowaniem. Dlatego
zamieściłem 2 programiki które napisałem 11 lat temu żeby sobie zobaczył jak może to wyglądać.
Oczywiście programiki są bardzo prościutkie ale doskonale się nadają do tego zadania
.
7 mar 22:35
Draghan: Antonio, proszę Cię. Nie ucz ojca...
Nigdzie nie napisałem, że API = IDE, tylko że Code::Blocks zgrabnie generuje nam szablon.
W czystym API Windows, tzw. WinAPI, stworzenie kontrolki ogranicza się do funkcji
CreateWindow(). Funkcja zwraca nam uchwyt do kontrolki, a pobiera tylko kilka argumentów.
Polecam poczytać dokumentację.
Chyba że chodzi Ci o to, że API udostępnia nam funkcję CreateWindow, a
kod tej funkcji
zajmuje kilkaset linijek. Wtedy się mogę ewentualnie zgodzić, ale co programistę obchodzi, jak
zorganizowana jest zamknięta biblioteka...?
7 mar 22:43
Dziadek Mróz: Spróbujcie Gtk+, bardzo fajnie się w tym pisze
7 mar 23:04
Draghan: Ja się świetnie bawię z wxWidgets. Ciężko było ogarnąć na początku, ale w sumie to nie jest tak
straszna, jak wygląda.
No i jest multi−platformowa, więc dodatkowa korzyść.
7 mar 23:08