Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

1

15.11.2005, 18:44

WinAPI baukasten

Hi ho,
ich such ne vereinfachung für windows. ich kanns nich in einem satz formulieren, deshalb mach ichs einfach so.

also, bei uns an der schule ham wir ne art bastel AG. wir wollen da nun recht einfach und schnell mit windows anwendungen arbeiten können. am besten wär nen system, das wie folgt aufgebaut ist:
von dem ganzen aufbau wie WinMain oder fenster erzeugen darf man nichts sehen. das programm startet für den bastler in einer Init() funktion. dadrin kann man dann bestimmten ereignissen bestimmte funktionen zuordnen. zB maus bewegt, oder taste gedrückt. dann muss es außerdem noch ne funktion geben, die von anfang bis ende durch läuft und dann das prog beendet, wie konsolenapp (am besten mit thread). das war so das grobe. Sollte unbedingt in c++ sein, weil das aus gründen der basteleien, die wir machen brauchen. und es wäre nich schlecht, wenn kapselungen für die GDI drin wären.

meine frage: kennt jemand son ding und kann mir verraten wo's das gibt? ich könnts mir ja auch selber schreiben, aber zum einen soviel zeit hab ich nich unbedingt und zum anderen bock hab ich dazu nochweniger.
sollte möglichst nicht viel oop benutzen, weil ich in dieser ag der einzige bin der programmieren kann und ich den anderen das beibringen muss...
ich kann zwar oop, aber ich weiß, dass es länger dauert das jemandem beizubringen und außerdem wirds da wirklich nich gebraucht.
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

15.11.2005, 19:06

ich würde dir raten denen wenn de schon soetwas machen musst, was wichtigeres beizubringen. Windows Programme kann man nicht vertstehen ohne Vorkenntnisse im Programmieren. Dazu wird dir auch so ein Baukasten nichts nützen.

Mein Tip also: die Basics anschaulich erklären das bringt dir mehr und denen auch.

Zu deiner Frage:
es gibt MFC, dass ist zwar OOP, An OOP wirst du aber nicht drumherumkommen, weil es entwerder Funktionsbasierendes gibt (WinAPI) oder eben OOP, Objektorientiertes. Menschen kommen aber in der Regel sehr gut mit OOP klar.


Ich würde dir aber wie gesagt davon abraten. Man muss die Basics kennen um das ganze abstrahieren zu können. Maan kann nicht die Funktion eines Hallbleiters erklären ohne Spannung und Stromstärke eingeführt zu haben.

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

3

15.11.2005, 19:12

Zitat von »"koschka"«

ich würde dir raten denen wenn de schon soetwas machen musst, was wichtigeres beizubringen. Windows Programme kann man nicht vertstehen ohne Vorkenntnisse im Programmieren. Dazu wird dir auch so ein Baukasten nichts nützen.
mir geht es ja gerade darum denen kein windows beizubringen (ich weiß die überschrift ist blöd aber mir ist keine bessere eingefallen). mein prob is der lehrer der das ganze leitet kann nur DOS proggen. und der sollte den schülern dann die programmiererei auch selber beibringen (der is pedagoge, ich nich!). Es geht "nur" darum ne umgebung zu schaffen, die nen DOS aufbau erlaubt und die vorteile von windows (die messages) trotzdem nutzt.
ich weiß, aus sicht eines windows-proggers ist das totaler schwachsinn, aber so wie ich mir das ausgerechnet habe dürfte es der weg des geringsten widerstandes sein *g*.
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

15.11.2005, 19:16

Was willst du mit Dos, wenn du Windows Programmierung zeigen willst.

Ich würde dir raten, wenn das wirklich ein Referat sein soll, die Funktionsweise (Messages) eines einfachen Fensters zu zeigen. Auuch wie man dann Steuerelemente erstellt u.s.w.
Gerade dooch weil man dann die zunehmende Komplexität sieht, auch als Zuhörer. Ich glaube das das dein Referat wesentlich aufpeppen würde, weil man windows so besser versteht.

Dann kann man das ja abstrahieren und noch etwas auf MFC eingehen.

Aber es ist wichtig, auch wenn das ganze nur informell ist, die funktionsweise eines echten Windows Programmes zu zeigen. Sonst wirst du Fragen bekommen, die du nicht mit MFC erklären kannst.

Nochmal zu dem Dos.
Dir ist eines wahhrscheinlich nicht klar. Im Dos hat man direkt eine Ausgabeschnittstelle. Im Windows nicht. Man kann aber trootzdem z.b. printf und scanf benutzen! Man muss eben das ganze nur nach dem Nachrichtenprimzip machen. Das heisst, man kann z.B.

C-/C++-Quelltext

1
2
3
4
char sString[100];
sprintf(sString, "Hallo ich bin ein Steuerelement");

SendMessage(....);


ob das nun schöön ooder nicht schn ist steht nicht zur Debatte.

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

5

15.11.2005, 19:22

wer hat von nem referat gesprochen??? ???
AG heißt bei uns soviel wie ArbeitsGemeinschaft. dh nen paar leut, die sich außerhalb des unterrichts unter "aufsicht" eines lehrers treffen und da ihren interessen nachgehen und dafür dann nen tollen eintrag ins zeugnis kriegen.
und da in dieser AG nicht nur leut aus meinem jahrgang drin sind (wir sind sogar nur 3).
sondern nen ganzer stapel "kinder"(so 8 klasse oder so) die von jetzt auf sofort mit bunten sachen programmieren wollen. wäre sone umgebung recht praktisch. und das mit der DOS umgebung is so gemeint: der lehrer kann nur DOS, dem das prinzip einer typischen move-funktion beizubringen is praktisch nich möglich... also thread, damit so sachen wie while(...)do
möglich sind ohne win zu killen. (bevor der eindruck entsteht, DX is ausgeschlossen. der rechner auf dem das läuft is ne krücke)


EDIT:

Zitat von »"koschka"«

Nochmal zu dem Dos.
Dir ist eines wahhrscheinlich nicht klar. Im Dos hat man direkt eine Ausgabeschnittstelle. Im Windows nicht. Man kann aber trootzdem z.b. printf und scanf benutzen! Man muss eben das ganze nur nach dem Nachrichtenprimzip machen.
doch doch weiß ich, aber darum gehts nicht primär. was in dieser richtung praktischer wäre, wäre nen prinzip, dass malereien mit der GDI bei bedarf erneuert. also nich das übliche prob, schieb ich das fenster unter nen anderes verschwindet das halbe rechteck
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

6

15.11.2005, 19:27

ich glaub nicht das es soetwas gibt. Entweder MFC benutzen oder besser WinAPI.

sry, da hab ich was falsch verstanden ^^.

Aber wieso willst du dann ein Windows Projekt starten? Das ist für die doch viel zu hoch.
Ich denke wesentlich besser wäre es dann wenn du mit denen ein ppaar Kreise malst im Dos (Stichwort BGI) und ein paar Pixel einfärbst. Ich weiss nun nicht welchen Compiler du hast, wir hatten damals in der Schule Borland. Damit geht das ganz einfach.
Wie gesagt wenn ich dich jetzt riichtig verstanden habe, benötigst du einfach nur eine Schnitstelle für Graphik oder?

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

7

15.11.2005, 19:38

ich hab da .NET (is meines, nich das von der schule. is aber auch nen privat PC den wir nutzen).
der lehrer und die 8 klässler geben sich nich mit bgi ab, wär mir auch lieber...
ich werd mal sehen, was ich mir so basteln kann, falls es sowas wirklich nich gibt.
In diesem sinne kennt jemand ne site, wo die winapi richtig gut erklärt wird?
(außer msdn, die kenn ich auch ;) ) evtl. auch so sachen, wie ne vereinfachung der GDI.
Bin übrigens kein fan von der MFC. ich glaube auch, die würde das hier nur komplizierter gestalten...

PS: nicht nur grafik, aber erstmal hauptsächlich... wir ham da sonen tolles usb spielzeug mit dlls und so die würd ich in dieses system dann per hand einbinden. es wäre auch nich schlecht relativ einfach nen eingabefeld oder ne scrollbar oder so erzeugen zu können...
da ich ahne selber basteln zu müssen, hoffe ich auf viele links, wo das kurz und einfach erklärt wird. (wies geht weiß ich ja größtenteils, ich kenn nur die WinAPI nich auswendig und die msdn find ich zumTeil etwas unübersichtlich.)
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

15.11.2005, 19:41

man kann die WinAPI nicht wirklich vereinfachen. BGI wäre wirklich das passende, versteh ich nicht.... von 8 Klässler kann man doch dafür kein Verständnis erwarten, komischer Lehrer, aber unserer hatte auch keinen Plan davon, nur uns hat er freie Wahl gelassen, weil er es wusste das er davon keinen Plan hatte ^^.

Vllt. kennen die anderen ja andere Sachen, aber ich bin mir sicher das MFC und .NET es verkomplizieren würden, wenn noch nicht mal Grundverständnis da ist.

MFC ist ja die "Vereinfachung" oder besser die oop Variante von WinAPI.. Ob das nun geglückt ist muss jeder selber wissen.

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

9

15.11.2005, 19:52

wie gesagt. die 8. klässler sollen davon ja gar nichts sehen. für die soll das zB so aussehen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Init() // die init funktion, die nur einmal aufgerufen wird. 

        // Hier können Ereignissen Funktionen zugeordnet werden

{
    BeiTasteEnter(ZeichneDenKuchen); // hier weden funktionspointer übergeben

    BeiTasteLeertaste(LoescheDenKuchen);
}

HauptProgramm() // besagte thread funktion, im DOS schema...

{
    Ampel = grün;
    sleep(1000);
    Ampel = gelb;
    sleep(1000);
    //....

}

ZeichneKuchen(PUNKT klickPos)
{
    //           x, y, r, farbe

    ZeichneKreis(5,10,4,gruen);
}
so nur mal ein ganz ganz grobes beispiel, wie ich mir das vorstelle. Ach ja die funktionen haben absichtlich keine rückgabewerte. die werden später wahrscheinlich auch alle void kriegen, da die meisten nich unbedingt rallen werden, was sie mit nem rückgabewert in Init machen sollen.
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

10

15.11.2005, 20:41

Hmm.. man hört hier öfters MFC... ich benutz die zwar auch, aber die Qt Lib soll gut sein... und ich hab die Freeware Version davon acuh auf meiner HDD :P
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige