Was muss ich als ersten Parameter für die CreateWindowEx - Funktion angeben? Ich hab keine Ahnung, was Classname sein soll. Wenn ich fertige Projekte erstellen lasse, ist das kein Problem, denn da geschieht das automatisch, aber ich hab keine Ahnung, was ich eingeben muss, wenn ich mit einem leeren Projekt anfange. Ich hab rausgefunden, dass nur ein Fenster erscheint, wenn ich den Namen meines Projekts in Grossbuchstaben als String angebe, aber woran liegt das?
Danke im Vorraus, Reaper82
Das scheint aber der 2. Parameter zu sein, der 1. ist irgendwie Style…
du musst anscheind erst mal mit RegisterClassEx das irgendwie registrieren steht in der Hilfe… schau mal unter dieser Funktion nach…
Bruno
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Das scheint aber der 2. Parameter zu
sein, der 1. ist irgendwie Style…
du musst anscheind erst mal mit
RegisterClassEx das irgendwie
registrieren steht in der Hilfe… schau
mal unter dieser Funktion nach…
Stimmt, hatte mich vertan, auf jeden Fall meine ich den Parameter, der den Classname angibt
PS: kein MFC
Ja also,
wie gesagt
du musst anscheinend erst RegisterClassEx machen, dann kriegste was zurück was für das Ding taugt…
Hilfe:
http://msdn.microsoft.com/library/psdk/winui/winclas…
Hallo Reaper,
unter Win32 hat jedes Fenster eine bestimmte Fensterklasse, zum Beispiel haben alle Buttons die Klasse ‚Button‘, die definiert, was ein Button kann und wie er aussieht. Der Name der Fensterklasse ist völlig egal. Bei kleineren Projekten kannst Du sie ruhig so nennen wie das Projekt selbst. Da Windows nicht zwischen Groß- und Kleinschreibung unterscheidet, wundert es mich, daß das Prinzip nur bei groß geschriebenem Name funktioniert.
Das tolle am Win32-API ist ja, daß Du in ein Fenster auch einen Button mit Titelzeile (WS_CAPTION) einfügen kannst. Versuch das mal mit einer IDE!!!
Roland
Buttons und so
Cool, das mit den Buttons kannte ich ja noch gar nicht. Damit komme ich dann gleich zu meiner nächsten Frage: Wie füge ich normale Buttons ein?
Ich meine, Buttons als Fenster sind ja ganz lustig, nur bewegen sie sich beispielsweise nicht mit dem Parentwindow mit, ausserdem ist das Elternfenster deaktiviert, wenn man einen Button klickt.
Ach ja, das mit dem Grossschreiben stimmte doch nicht, ich musste lediglich den gleichen Namen verwenden wie auch in RegisterClassEx. Kann mir übrigens jemand sagen, wozu diese Funktion gut ist? Ich habe nur festgestellt, dass das Hauptfenster nicht erscheint, wenn ich diese Funktion nicht vorher ausführe.
unter Win32 hat jedes Fenster eine
bestimmte Fensterklasse, zum Beispiel
haben alle Buttons die Klasse ‚Button‘,
die definiert, was ein Button kann und
wie er aussieht. Der Name der
Fensterklasse ist völlig egal. Bei
kleineren Projekten kannst Du sie ruhig
so nennen wie das Projekt selbst. Da
Windows nicht zwischen Groß- und
Kleinschreibung unterscheidet, wundert es
mich, daß das Prinzip nur bei groß
geschriebenem Name funktioniert.Das tolle am Win32-API ist ja, daß Du in
ein Fenster auch einen Button mit
Titelzeile (WS_CAPTION) einfügen kannst.
Versuch das mal mit einer IDE!!!
Kann mir übrigens jemand sagen, wozu diese Funktion gut ist? Ich habe nur festgestellt, dass das Hauptfenster nicht erscheint, wenn ich diese Funktion nicht vorher ausführe.
Hmm, ich dachte, das hätte ich schon gesagt. Also nochmal: Es gibt unter Windows verschiedene Fensterklassen, die jeweils einen eigenen Namen tragen. diese Fensterklassen bestimmen, wie ein bestimmtes Fenster aussieht und wie es sich verhält. (Damit Windows weiß, welches Fenster zu welcher Fensterklasse gehört, mußt Du beim Erzeugen die Fensterklasse mit angeben.)
Die Klasse ‚Button‘ ist aber nicht nur für die normalen PushButtons, sondern auch für Radiobuttons (die runden) oder Checkboxes (die eckigen) und andere Fenster zuständig.
Um ein Fenster zu erzeugen, das individuellen Charakter hat (braucht jedes Programm), mußt Du zuerst eine Fensterklasse für das Fenster anlegen. Danach erzeugst Du ein Fenster dieser Klasse. Das hat den Vorteil, daß Du mehrere Fenster auf einmal erzeugen kannst, die alle das gleiche machen (vgl. Buttons).
Einen normalen Button an der Position (x;y) mit den Ausmaßen (w;h) fügst Du in das Fenster (wnd) so ein:
var button: hWnd;
...
button := CreateWindow('Button', '&Ok', WS\_VISIBLE or WS\_CHILD or BS\_PUSHBUTTON,
x, y, w, h, wnd, 1023, hInstance, nil);
SendMessage(button, WM\_SETFONT, GetStockObject(ANSI\_VAR\_FONT), 1);
Zuerst hat der Button den Font von Win3.1, deshalb der zweite Befehl. Die 1023 ist die ID-Nummer des Buttons. Ein komplettes Listing bekommst Du per E-Mail.
Roland
Danke schön! nt
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]