Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Wie wäre es mit einem #include "MyViewClass.h" in SampleClass.cpp?
  2. element->scrollIntoView(CComVariant(true)); [/CODE] oder[CODE]element->scrollIntoView(CComVariant(false)); je nachdem, wo das Element stehen soll.
  3. Und weil das alles nichts mit C++ zu tun hat: Ab in die Windowsecke...
  4. Varrius, du schickst nur ein Key-Up-Event, d.h. das Loslassen einer Taste. Das reicht nicht. Da ist aber auch noch ein Fehler von mir drin: SetFocus funktioniert nur bei Fenstern, die aus dem aufrufenden Thread erzeugt wurden. Ersetze SetFocus durch SetForegroundWindow. Die Tastenkommandos kannst du dann so senden: INPUT input[2]; input[0].type = INPUT_KEYBOARD; input[0].ki.dwFlags = 0; // Key down input[0].ki.wVk = 'W'; input[0].ki.dwExtraInfo = 0; input[0].ki.time = 0; input[1] = input[0]; input[1].ki.dwFlags = KEYEVENTF_KEYUP; SendInput(2,input, sizeof(INPUT)); [/CODE]
  5. Eine Wrapperklasse ist sozusagen ein objektorientierter Mantel um eine oder mehrere Funktion (wie deine Einstellungsfunktionen). Der Vorteil ist, dass Klasseninstanzen im Gegensatz zu Funktionen einen Zustand haben können, der durch die Membervariablen repräsentiert wird. So könntest du z.B. vermeiden, dass du bei jeder Änderung einer einzelnen Einstellung die komplette Datei neu schreiben musst. Nein, damit meine ich, dass du auf fest im Code vorhandene Abhängigkeiten verzichten sollst. In deinem Code ist der Wert 6 fest mit der Einstellung "Write logfile" verbunden. Warum 6? Warum definierst du nicht eine Abbildung von Schlüsselwörtern auf Einstellungs-IDs? Dann würdest du auch nicht ins Straucheln kommen, wenn ein böser User die Reihenfolge der Zeilen in deiner Datei vertauscht. std::stringstream ist ein Stream, wie z.B. cout oder die Filestreams, nur dass er nicht mit der Konsole oder Dateien arbeitet, sondern mit Strings im Speicher. Und mit str() bekommst du einen String, der alles beinhaltet, was du zuvor in den Stream geschoben hast.
  6. Ich würde eine Wrapperklasse für die Einstellungen schreiben. Du solltest die einzelnen Einstellungen auch nicht fest mit den Benutzereingaben verdrahten. Für den Anfang sollte hier aber ausreichen, dass du nicht den bestehenden String änderst - denn damit bist du zusätzlich noch davon abhängig, dass du zuvor eine korrekt formatierte Datei eingelesen hast - sondern den String neu erstellst: case 1: { stringstream s; s << "CMethod is = " << verwendung; str_CMethod = s.str(); } break;[/CODE]Das " is" würde ich übrigens weglassen. Für einzelne Buchstaben (char) ist dein ursprünglicher Code richtig.
  7. FindWindowEx unterstützt keine Wildcards. Du musst durch alle Top-Level-Fenster iterieren, den Fenstertitel mit GetWindowText holen und darin dann nach "Microsoft Word" suchen.
  8. Jetzt verstehe ich's. Nur als Tipp: Du handelst dir durch diese "Magic Numbers" auf lange Sicht jede Menge Ärger ein. Stell dir vor, du änderst deine Schlüsselworte. Dann musst du diese Zahlen auch ändern. Jetzt stell dir das ganze bei einem größeren Projekt vor... Das Problem ist, dass du einen int in ein Zeichen umwandelst. Dabei wird der Wert des int als ASCII-Code interpretiert. Wenn verwendung also 0 ist, setzt du ein Stringendezeichen ein, ist verwendung 1, dann ist es ein Zeichen mit dem ASCII-Code 1 (auch nichts lesbares). Am einfachsten löst du das hier, indem du den Code des Zeichens '0' addierst: case 1: str_CMethod[13] = verwendung + '0'; Spätestens bei mehrstelligen Zahlen musst du aber den int in einen String umwandeln.
  9. Wenn du die WinAPI-Funktion innerhalb einer Memberfunktion einer von CWnd abgeleiteten Klasse benutzen willst, musst du zwei Doppelpunkte vor den Funktionsnamen schreiben: ::SetFocus(wasauchimmer); Dann wird die Funktion im globalen Namensraum gesucht.
  10. Du bringst zwei unterschiedliche Funktionen durcheinander: Die WinAPI-Funktion HWND SetFocus(HWND) und die MFC-Funktion CWnd* CWnd::SetFocus(). Benutzt du die MFC?
  11. Wenn, dann sizeof(struct tagINPUT). Die tag-Namen sind für C, denn nur da brauchst du überhaupt einen typedef für die struct. Beim typedef-Namen kannst du nämlich das "struct" weglassen. Unter C++ brauchst du gar keinen typedef. SetFocus ist eine Funktion, die du aufrufst, keine Variable, der du etwas zuweisen könntest. Du solltest hier auch nicht die Begriffe "Adresse" und "Zeiger" verwenden. Handles sind etwas anderes als Zeiger.
  12. Leider nicht ganz. sizeof(input) == sizeof(INPUT *) == 4 (wie alle Zeiger auf 32Bit-Windowsplattformen) sizeof(INPUT) passt besser. Die simulierten Tasten landen in dem Fenster, das den sog. Fokus hat. Du kannst einem Fenster den Fokus mit SetFocus zuweisen. Dazu brauchst du ein Fensterhandle, das du z.B. mit FindWindowEx bekommen kannst.
  13. Es funktioniert nicht mit Standard-C oder C++. Du musst betriebssystemspezifische Erweiterungen benutzen, die nicht vom Standard abgedeckt werden. Darum ist dein Thread auch verschoben worden. SendInput sollte dir weiterhelfen.
  14. Das kommt auf das verwendete Betriebssystem an. Mit Standard-C oder C++ geht da gar nichts.
  15. Warum glaubst du, dass die Umwandlung nach float irgendetwas bewirkt? Wenn es immer nur um drei jeweils einstellige Zahlen geht, dann ist maverick82s Ansatz die naheliegendste Lösung. Schau mir auf die Signatur
  16. Hier geht's weiter...
  17. Du gibst die Adresse einer lokalen Variablen zurück. Diese Variable (in diesem Fall das Array dialogs) existiert nicht mehr, nachdem die Funktion beendet ist, der Zeiger ist ungültig. Da kann alles passieren.
  18. http://www.mozilla.org/build/
  19. Ich bin mir nicht sicher, ob du den Aufwand richtig einschätzt. "Kleines System" und "ins Internet können" (bzw. das, was ich vermute, was du dir darunter vorstellst) schließt sich IMHO gegenseitig aus.
  20. Und wer löscht die andere exe?
  21. Der C++-Standard deckt die Kommunikation über serielle (oder sonstige) Schnittstellen nicht ab. Also musst du verraten, für welches Betriebssystem das sein soll. Wegen tippe ich mal auf Windows, richtig? Was möchtest du jetzt erklärt haben? Den Beispielcode? Dann solltest du den posten. Oder die Kommunikation über die serielle Schnittstelle allgemein? Da gibt es in der MSDN-Library passende Artikel (falls es denn wirklich um Windows geht).
  22. Jetzt ab bitte zurück zum Thema. @lennart-rademacher: Wenn du konkrete Fragen hast, raus damit. Du hast gemerkt, eine Komplettlösung wirst du hier nicht umsonst bekommen. @alle anderen: Diskussionen über Softwareentwicklung bitte im DT führen
  23. Das Bluetooth-Symbol lässt sich (wie alle Desktopsymbole) mit den Powertoys für XP entfernen.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...