Alle Beiträge von Klotzkopp
-
Listboxeinträge farbig gestalten
Soweit ich weiß, kannst du mit WM_CTLCOLORLISTBOX nur die gesamte Listbox färben, nicht einzelne Einträge. Du kannst auch nur die Farben setzen, die Listbox zeichnet sich immer noch selbst. Du wirst wohl den OwnerDraw-Style setzen und WM_DRAWITEM behandeln müssen.
-
Kontextmenü in Trayleiste
*rotwerd* Nicht doch... Das TrackPopupMenu-Problem bei Trayicons ist angeblich ein Feature. Ich finde den KB-Artikel gerade nicht, aber hier steht etwas darüber, unter "NOTE on TrackPopupMenu": http://www.codeproject.com/shell/systemtray.asp
-
Kontextmenü in Trayleiste
Setz mal ein PostMessage( WM_NULL ); hinter den Aufruf von TrackPopupMenu.
-
Näherungsweise Pi-Berechnen
Wobei genau brauchst du Hilfe? Hast du schon einen Algorithmus ausgewählt? Meinst du mit "Näherungs 1" und "Näherungs 2" eine Ober- und Untergrenze oder zwei aufeinanderfolgende Werte einer Reihenentwicklung? Ein genereller Tip: Da der Genauigkeitsbereich der eingebauten Fließkommatypen kaum ausreichen wird, solltest du entweder eine Bibliothek für beliebig genau Zahlen verwenden (Stichwort: Arbitrary Precision), oder deine Näherung gleich als String speichern.
-
hintergrundfarbe eines Editfeldes
Das hier ist über Google - oder direkt bei CodeGuru - eigentlich leicht zu finden: http://www.codeguru.com/editctrl/ColorWeir.html
-
Eingabe eines Zeichens nicht zulassen
Die VK-Codes beziehen sich auf Tasten, nicht auf Zeichen. Man musste sich also für einen ASCII-Code entscheiden. Das ist VK_OEM_2, es kann also sein, dass ein anderer Tastaturtreiber einen anderen Wert für die #-Taste liefert. Kannst du nicht WM_CHAR abfangen? Da sollte im WPARAM der ASCII-Code drinstehen.
-
Eingabe eines Zeichens nicht zulassen
Es gibt keine #defines vür VK_A bis VK_Z. Stattdessen musst du 'A' bis 'Z' verwenden. Großbuchstaben :mod: 97 ist ein 'a' (Kleinbuchstabe -> anderer ASCII-Code).
-
Eingabe eines Zeichens nicht zulassen
Die VK_-#defines stehen in winuser.h. Da steht auch: /* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */ /* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */
-
Eingabe eines Zeichens nicht zulassen
Weil IsDialogMessage die Nachricht nicht nur prüft, sondern gegebenenfalls auch verarbeitet: Because the IsDialogMessage function performs all necessary translating and dispatching of messages, a message processed by IsDialogMessage must not be passed to the TranslateMessage or DispatchMessage function.
-
Eingabe eines Zeichens nicht zulassen
Vielleicht hilft das: http://fachinformatiker-world.de/forums/showthread.php?s=&threadid=33624
-
Vorkommen eines Zeichens in einem String zählen
@A-RAM: Dass das ganze nur funktionieren kann, wenn sizeof int == sizeof char, hat Crush ja schon geschrieben. Aber auch der Adressoperator vor szString ist in beiden Fällen falsch. Und wenn du statt int* (wieso eigentlich int*?) char* verwendest, sind auch die casts nicht mehr notwendig. @Crush: Die Klammern sind in diesem konkreten Fall nicht zwingend notwendig.
-
Falsche Ausgabe mit cout?
Da verwechselst du etwas. Die Reihenfolge der Funktionsargumente auf dem Stack (und selbst das ist ein Implementierungsdetail) hat mit der Reihenfolge, in der die Argumente ausgewertet werden, nichts zu tun. Da hat der Compiler völlig freie Hand. Das einzige, was sicher ist, ist, dass alle Argumente ausgewertet werden, bevor die Funktion aufgerufen wird.
-
ChooseColor
lpCustColors Pointer to an array of 16 COLORREF values that contain red, green, blue (RGB) values for the custom color boxes in the dialog box. If the user modifies these colors, the system updates the array with the new RGB values. To preserve new custom colors between calls to the ChooseColor function, you should allocate static memory for the array. Da steht nicht, dass das NULL sein darf. Übrigens war meine Info falsch, den Array musst du immer mit angeben, nicht nur bei CC_FULLOPEN. lpCustColors, nicht lCustData
-
ChooseColor
Wenn Du CC_FULLOPEN angibst, erwartet ChooseColor in cc.lpCustColors die Adresse eines Arrays von 16 COLORREFs.
-
Zeichen in einem String ersetzen
Die gesuchte Funktion heißt "Replace".
-
Vorkommen eines Zeichens in einem String zählen
Nicht nur das, denn hat nichts mit Standard-C++ zu tun, und mit C schon gar nichts. --> Thema verschoben. P.S.: GTs Lösung funktioniert trotzdem, wenn du vorher aus dem CString einen const char* machst. Da reicht eine einfache Zuweisung, weil CString dafür einen cast-Operator hat.
-
Wer hat Probleme mit weißer Seite
Ich habe den Eindruck, dass es hauptsächlich bei Weiterleitungsseiten auftaucht. @e@sy: Ist es hilfreich, wenn wir die jeweiligen Links, die zu den leeren Seiten führen, hier auflisten? Vielleich lässt sich da ein Muster erkennen. Bei mir ist es gerade jedenfalls passiert bei search.php?s=&action=getnew (XP Prof SP 1, IE6 SP 1)
-
MFC: Timer Problem
Gar nichts. Timernachrichten sind für so etwas nicht geeignet. Das Problem rührt daher, dass deine Funktion als Reaktion auf eine Nachricht ausgeführt wird. Währenddessen laufen neue Nachrichten in der Messagequeue zur späteren Bearbeitung auf. Eine Eigenart der WM_TIMER-Nachricht ist aber, dass immer nur eine Nachricht pro Timer in deiner Queue steht. Wenn eine WM_TIMER für einen Timer reinkommt, für den schon eine Nachricht in der Queue steht, wird die neue (IIRC) Nachricht ignoriert. Außerdem werden Timernachrichten nur bearbeitet, wenn sonst gerade nichts zu tun ist. Verwende besser GetTickCount, einmal am Anfang und einmal am Ende, und rechne die Differenz aus.
-
Allgemein: Sprache herrausfinden
Pauschal lässt sich das nicht feststellen. Das PE-Dateiformat beinhaltet AFAIK keine diesbezüglichen Informationen. Allerdings können die DLLs, die das Programm braucht, Hinweise geben. Mit dem Dependency Walker (gibts beim Visual Studio 6 oder hier) kann man sich die abhängigen DLLs anzeigen lassen. MSVCRT.DLL oder MSVCRTD.DLL sind ein eindeutiges Indiz für Visual C++, bei VB-Programmen sollte eigentlich immer eine VBRUN*.DLL dabei sein. .NET-Programme brauchen immer MSCOREE.DLL. Eine Unterscheidung zwischen den einzelnen .NET-Sprachen könnte schwierig werden.
-
Text in Bild malen
Es könnte an einem ungültigen Pixelformat liegen. Der Graphics-ctor Graphics::Graphics(Image*) schlägt bei den folgenden Pixelformaten fehl: PixelFormatUndefined PixelFormatDontCare PixelFormat1bppIndexed PixelFormat4bppIndexed PixelFormat8bppIndexed PixelFormat16bppGrayScale PixelFormat16bppARGB1555 Du kannst das testen, indem du nach dem Erzeugen des Graphics-Objekts den Status prüfst: Status s = graphics.GetLastStatus(); Wenn dabei nicht Null (bzw. Ok) rauskommt, hat es nicht geklappt. Dann kannst du versuchen, einfach mal ein anderes Format vorzugeben.
-
Text in Bild malen
Je nach Bitmap kann ein halbtransparenter, grauer Text schwer zu erkennen sein. Mach den Text doch mal gelb und deckend: SolidBrush solidBrush(Color(255, 255, 255, 0));
-
Text in Bild malen
Ist das denn nicht das, was du willst? Wenn der gemalte Text nicht den Bildinhalt überschreibt, sieht man den Text doch nicht. :confused:
-
Text in Bild malen
Wobei brauchst du denn Hilfe? Weißt du nicht, wie man die Dateien durchgeht, oder geht es um den Text? Das sollte mit Graphics::DrawString machbar sein.
-
MFC: PropertyPage und scrollen
Schau doch mal hier rein: http://www.codeproject.com/property/scrollproppage.asp
-
Tastaturpuffer leeren
In diesem Forum: Geht nicht.