habe u.A ein/mehrere Dialog's in meinem C-Projekt erstellt. Auch sind da Bitmaps (kleine grüne/rote Punkte) die ich als BMP erstellt habe, und in den Dialog plaziert habe.
Nun möchte ich diese Bitmaps mit der Visible-Eigenschaft sichtbar/unsichtbar machen. Und dies vom C-Code aus.
bitte, mit welchen Befehlen wird dies erreicht?
Wir sind hier bei ganz normalen C.
Habe schon ausgedehnt im Netz gesucht, unter C-HowTo, StackOverflow, ect. . Bin aber nicht fündig geworden. Meine C-Bücher (Api-Bible) sind bislang verschollen.
Dies bringt Fehler:
...r.c(1535) : warning C4022: 'GetDlgItem' : pointer mismatch for actual parameter 1
...r.c(1535) : error C2198: 'GetDlgItem' : too few actual parameters
GetDlgItem braucht ein Handle auf den Dialog als erstes Argument,
Hallo und danke an die Mitwirkende.
Das war es. Das Handle fehlte. Hätte mir auch auffallen sollen/können. Aber danke. Ich dachte vorher, wenn einzelne Editfelder, ect. mit
SetDlgItemInt(hDlg,....
angesprochen werden, dann sollte es auch für dieses Bitmap, das mir nur einen farbigen Punkt darstellt, gelten.
Ich dachte vorher, wenn einzelne Editfelder, ect. mit
SetDlgItemInt(hDlg,....
angesprochen werden, dann sollte es auch für dieses Bitmap, das mir nur
einen farbigen Punkt darstellt, gelten.
Generell wird erstmal alles über Handles angesprochen, es gibt bloss ein paar "Abkürzungen" für besonders häufig benutzte Dinge wie das Befüllen oder Auslesen von Werten.
Unter der Haube schickt SetDlgItemInt() ein WM_SETTEXT an das Window-Handle, das per GetDlgItem() ermittelt wird. Vorher macht es aus dem übergebenen Integer auch noch einen String.
Neben SetDlgItemInt() gibt es im gleichen Stil noch SetDlgItemText() und Get* für den Rückweg.
Was weitere Vereinfachungen angeht, einfach mal die Doku durchlesen, da steht immer dabei, was die einzelnen Funktionen und Macros tun. Meistens läuft es auf das Senden von Window Messages an die jeweiligen Controls hinaus.
Ob man sich die als Quasi-Anfänger heute noch antun will, steht auf
einem anderen Blatt.
Was ist dann als Nachfolger C zu verstehen? - C++, C#?
Objektorientiert ist für mich irgendwie ne Hürde. Hatte ich schon mehrfach versucht zu starten, aber Klassen, Container Vererbung, blabla sind irgendwie abstakt. Hab Bücher schon ewig da, mal sehen.
Nochmal: Es geht hier NICHT um die Programmiersprache, sondern um die Win32-API, die keineswegs der einzige Weg ist, Windows-GUI-Anwendungen zu erstellen.
Plattformübergreifend gibt es z.B. GTK (C) oder Qt (C++). Such Dir was aus:
Was ist dann als Nachfolger C zu verstehen? - C++, C#?
Objektorientiert ist für mich irgendwie ne Hürde.
Ja, das Konzept ist nicht leicht zu knacken, wenn man von rein prozeduraler Programmierung kommt. Hat bei mir auch etwas gedauert, bis es Klick gemacht hat. Ist aber zum Glück Jahrzehnte her, dass ich diese Hürde genommen habe.
Hatte ich schon
mehrfach versucht zu starten, aber Klassen, Container Vererbung, blabla
sind irgendwie abstakt.
Nunja, benutzen tust du es zwangsläufig trotzdem, selbst wenn du nur via WinAPI in C programmierst. Was da letztlich angesprochen wird, sind auch wieder praktisch durchgängig Objekte.
Es ist aber ein wesentlicher Unterschied, ob man bestehende Objekte verwendet oder selbst objektorentiert programmiert. Für ersteres braucht man die OO-Konzepte oft nicht wirklich zu verstehen, insbesondere dann nicht, wenn die Objekte wiederum über ein C-API präsentiert werden. Nützlich ist es allerdings oft trotzdem. Schon um zu verstehen, warum das C-API so aussieht, wie es halt aussieht.
Dein Fehler wäre dir z.B. nicht unterlaufen, wenn du das Konzept kennen würdest. Da wäre dir sofort aufgefallen, dass da wohl noch was fehlen muss.
Allerdings: kurze Lektüre der API-Referenz hätte das Problem genauso geklärt. Ist ja nicht so, das MS die unter Verschluß hält. Nö, man kann die für lau im Internet nachlesen. Jederzeit...