Zum Inhalt springen

Filou

Mitglieder
  • Gesamte Inhalte

    1090
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Filou

  1. Dankeschön!! Hat geklappt *freu* :)
  2. Oh danke! Wie würdest Du es machen? Wie soll ich innerhalb des Threads den Dialog öffnen? Muss ich eine andere WindowsMessage senden?
  3. Der Thread wird in BOOL CPatient::OnInitDialog() gestartet. Und der läuft endlos bis das Programm beendet wird. Das lief die ganze Zeit auch wunderbar, bis heute wo ich diesen zusätzlichen Dialog eingebunden habe. Dieser Thread soll eigentlich nur alle paar Sekunden die Datenbank schließen und wieder neu öffnen, so dass Änderungen von anderen Benutzern des Programms sichtbar werden. Jetzt muss ich halt noch dieses eine Feld auswerten und dann einen Dialog einblenden. [COLOR="Green"]//Thread zur Datenbanküberwachung starten[/COLOR] g_iDBUeberwachung = SERVICE_START; CWinThread *pThread = AfxBeginThread(DBUeberwachung, this, THREAD_PRIORITY_NORMAL);
  4. Hallo liebes Forum Ich habe folgendes Problem. Ich habe einen Hauptdialog der einen Thread startet. Dieser Thread soll die Datenbank abfragen und bei gewissen bedingungen einen Unterdialog öffnen. Dazu schickt der Thread eine WindowsMessage. Soweit klappt das auch. Nur wenn ich den Dialog mit "OK" schließe, knallts. Und ich hab keinen Schimmer wieso. Das hier ist der Thread: UINT DBUeberwachung(void* pParam) { CPatient *pWnd; pWnd=(CPatient*)pParam; pWnd->PostMessage(WM_KEYDOWN,VK_F5,0); [COLOR="seagreen"]// Simulieren, dass die F5-Taste gedrückt wurde[/COLOR] } Und hier gehts dann weiter wenn die Nachricht WM_KEYDOWN,VK_F5 gesendet wurde Hier wird dann die Datenbank abgefragt ob der Unterdialog eingeblendet werden soll. BOOL CPatient::PreTranslateMessage(MSG* pMsg) { if(pMsg->wParam == 116) [COLOR="seagreen"]//WENN F5 gedrückt oder die Nachricht zum Aktuallisieren gesendet wurde[/COLOR] { this->DatenbankenSchliessen(); this->DatenbankenOeffnen(); this->StatusPruefen(); CBenachrichtigungDlg Dlg; Dlg.DoModal(); [COLOR="seagreen"]//<- NACHDEM DER DIALOG GEÖFFNET WURDE GEHT DAS PROGRAMM NICHT MEHR[/COLOR] this->AktuelleAnsichtWiederherstellen(); } Der eigentliche Absturtz tritt aber wo anders auf. Und zwar in der Datei "THRDCORE.CPP" Dort in der Funktion CWinThread::PreTranslateMessage(MSG* pMsg) if (pMainWnd != NULL) { CWnd* pWnd = CWnd::FromHandle(pMsg->hwnd); if (pWnd->GetTopLevelParent() != pMainWnd) [COLOR="seagreen"] //<- HIER IST DAS PROBLEM![/COLOR] return pMainWnd->PreTranslateMessage(pMsg); } Wenn ich dann im Debugger auf "Wiederholen" klicke, nachdems geknallt hat, komme ich hier her: [COLOR="SeaGreen"]// should be a normal window[/COLOR] ASSERT(::IsWindow(m_hWnd)); Könnt Ihr mir weiterhelfen? Wie kann ich den Unterdialog aus dem Thread heraus öffnen?
  5. Meint Ihr es gibt sonst keinen Qualitäts oder Leistungsunterschied???
  6. Na das macht ja auch nix. Ich habe schon Power DVD und wenn ich dafür 80 EUR spare ist das ja ok.
  7. Die Karte ist Bulk. Bei den Anderen könnt ihr einfach mal nach der 6800GT googeln, da findt hier wlche von anderen herstellern. Das hier ist die Karte von AUSU: (Hat 2 DVI-Ausgänge und einen S-VIDEO Out. Unterstützter PCI-Standard PCIe x16 Stromversorgung Anschluss 1 x 6-pin max. Verbrauch ca. 55 Watt (bei Volllast) Grafikchip Bezeichnung GeForce 6800 GT Taktfrequenz 350 MHz Pixel-Pipelines 16 Vertex-Shader 6 Shader Version 3,0 Speicher Kapazität 256 MB vorhanden Typ GDDR3 Taktfrequenz 1000 MHz Speicheranbindung 256 Bit RAMDAC 1. RAMDAC 400 MHz 2. RAMDAC 400 MHz Auflösungen 1024x768x32Bit 200 Hz 1280x1024x32Bit 170 Hz 1600x1200x32Bit 120 Hz 2048x1536x32Bit 85 Hz MPEG2 Wiedergabe Ja Encoding Nein Direkte Anschlüsse 2 x DVI-I Ausgang 1 x S-Video Ausgang Treiber Windows 2000, Windows XP Besonderheiten SLI fähig Bemerkung mit Kühlkörper und schwarzem Lüfter Weitere Infos Unterstützt PCI-Express x16, DirectX 9, OpenGL und Shader Model 3.0. Folgende Ausgabeoptionen sind möglich: DVI, S-Video, DVI+DVI, DVI+S-Video, Schwarzer Lüfter
  8. Hi, ich warte, wie warscheinlich viele von Euch auf das Spiel "Gothic 3". Bin total scharf drauf und kanns kaum noch abwaren Wegen den hohen Systemanforderungen habe ich mir ein neuen PC zusammengestellt. Gestern habe ich Festplatte, RAM und Prozessor gekauft. Jetzt brauche ich nur noch ne Grafikkarte und ein Mainboard. Als Grafikkarte wird für Gothic 3 die NVIDIA Geforce 6800GT empfohlen. Die gibt es von verschiedenen Herstellern und kostet immer so zwischen 199 EUR und 250 EUR. ich habe jetzt eine von ASUS gefunden, die nur 129 EUR kostet. Wie kann das sein? Was ist faul an dem Ding? Macht es einen Unterschied wenn ich eine Geforce 6800GT von welchem Hersteller die ist?
  9. Filou

    PC verkaufen

    Hi, ich habe 2 PCs "übrig" die ich gern verkaufen möchte. Ich wollte von Euch mal wissen was ein angemessener Preis ist, wenn ich es einem Kollegen anbiete. PC 1 : Schickes ATX Gehäuse mit 350 Watt Netzteil MSI Mainboard (Modell weiß ich nicht auswendig) AMD Athlon XP 2000+ 512 MB DDR RAM NVIDIA GeFroce igendwas mit 128 MB LAN OnBoard, Sound OnBoard PC 2: 0815 Gehäuse mit 350 Watt Netzteil Shuttle Mainboard Intel Pentium 4 (Im Bios steht 1900 MHZ, in Windows steht 1400 MHz) Wieso auch immer... 512 MB RAM, 8 MB ATI Grafikkart LAN OnBoard, Sound OnBoard Die Modellbeschreibungen weiß ich jetzt nicht weil ich noch auf der Arbeit bin. Aber vielleicht könnt ihr mal schätzen was jeder einzele noch bringen könnte? Gruß Filou
  10. Ich würde mich über ein schickes Tastatur-Maus-Set freuen. Sowas richtig edles von Microsoft oder Logitech.... Kommt natürlich drauf an wieviel ihr ausgeben möchtet.
  11. Ja das haben wir odch auch oben gesagt, weil es eine Memberfunktion ist, sonst kommt wieder: Nichtaufgeloestes externes Symbol "public: static int __stdcall CPatient:: DokumenteVergleichen(long,long,long)" (?DokumenteVergleichen@CPatient@@SGHJJJ@Z) Jetzt bin ich total verwirrtt. Wie soll ichs denn jetzt machen?
  12. Ich habe jetzt aus dem int DokumenteVergleichen ein long gemacht. Jetzt kommt: MSDEV.EXE hat ein Problem festgestellt und muss beendet werden...
  13. Kommt die Selbe Fehlermeldung :-( PS: 'SortItems' : Konvertierung des Parameters 1 von 'int (__stdcall CPatient::*)(long,long,long)' in 'int (__stdcall *)(long,long,long)' nicht moeglich
  14. ich meinte ja auch den ersten parameter. ich habe das Andere geändert, aber immernoch: 'SortItems' : Konvertierung des Parameters 1 von 'int (long,long,long)' in 'int (__stdcall *)(long,long,long)' nicht moeglich
  15. Oh nein, es geht immer noch nicht. Das ist ja zum verrückt werden.... Und wir sind erst ganz am Anfang. es tut ja noch überhaupt nix sortieren Sorry dass ich mich so doof anstelle.... ich habe es jetzt so deklariert: int CALLBACK CPatient:: DokumenteVergleichen(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort); und auch so definiert: int CALLBACK CPatient:: DokumenteVergleichen(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) {...} und es kommt immernoch ein Fehler: m_ctrlList.SortItems(DokumenteVergleichen,LPARAM(&m_ctrlList)); SortItems' : Konvertierung des Parameters 1 von 'int (long,long,long)' in 'int (__stdcall *)(long,long,long)' nicht moeglich und der Aufruf mit * oder & geht auch nicht...
  16. Ja so hätte ich es auch gemacht, so lege ich jede Funktion an, aber Du sagtest doch es MUSS static sein... :confused:
  17. Dekalriet ist die Funktion in der Headerdatei von CPatient. Und zwar so: (Patient.h) // Konstruktion public: static int CALLBACK DokumenteVergleichen(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort); Und definiert ist sie in der Patient.cpp: static int CALLBACK DokumenteVergleichen(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) {...} Ich weiß jetzt nur nicht ob mit CPatient:: DokumenteVergleichen oder ohne. Beides funktioniert jedenfalls nicht.
  18. Also so wie bei: char test[50]; CString test = CString (test); Wenn ichs aber so veruche: m_ctrlList.SortItems(CPatient:: DokumenteVergleichen,LPARAM(&m_ctrlList)); passiert: Nichtaufgeloestes externes Symbol "public: static int __stdcall CPatient:: DokumenteVergleichen(long,long,long)" (?DokumenteVergleichen@CPatient@@SGHJJJ@Z) Und wenn ich die Funktion DokumenteVergleichen mit CPatient:: DokumenteVergleichen anlege, bekomme ich die Fehlermeldung hier: 'DokumenteVergleichen' : 'static' sollte nicht für Member-Funktionen verwendet werden, die ausserhalb der Klasse definiert werden
  19. Was ist ein Cast? :hells:
  20. In den Beispiel oben nicht, aber ich habe es auch schon als Memberfunktion versucht: m_ctrlList.SortItems(DokumenteVergleichen,*m_ctrlList); 'SortItems' : Konvertierung des Parameters 2 von 'struct HWND__' in 'unsigned long' nicht moeglich m_ctrlList.SortItems(*DokumenteVergleichen,*m_ctrlList); '*' : Ungueltige Operation auf Ausdruck einer gebundenen Member-Funktion PS: Obwohls ja im orberen Beispiel an m_ctrlList liegen muss, oder?
  21. Ok, also: m_ctrlList.SortItems(*DokumenteVergleichen,*m_ctrlList); 'DokumenteVergleichen' : nichtdeklarierter Bezeichner UND 'DokumenteVergleichen' : Neudefinition; unterschiedliche Modifizierer m_ctrlList.SortItems(:: DokumenteVergleichen,*m_ctrlList); DokumenteVergleichen' : Ist kein Element von '`global namespace'' UND 'DokumenteVergleichen' : Neudefinition; unterschiedliche Modifizierer m_ctrlList.SortItems(*:: DokumenteVergleichen,*m_ctrlList); DokumenteVergleichen' : Ist kein Element von '`global namespace'' UND 'DokumenteVergleichen' : Neudefinition; unterschiedliche Modifizierer m_ctrlList.SortItems(::*DokumenteVergleichen,*m_ctrlList); Syntaxfehler : Fehlendes ')' vor '<tag>::*'
  22. Ok, mal für blööde.... ich hab die Funktion so definiert: static int CALLBACK DokumenteVergleichen(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) {...} aber wie rufe ich sie auf? m_ctrlList.SortItems(*:: DokumenteVergleichen,*m_ctrlList); m_ctrlList.SortItems(::*DokumenteVergleichen,*m_ctrlList); m_ctrlList.SortItems(:: DokumenteVergleichen,*m_ctrlList); m_ctrlList.SortItems(*DokumenteVergleichen,*m_ctrlList); m_ctrlList.SortItems(DokumenteVergleichen,*m_ctrlList); geht alles nicht...
  23. Das ist aber sehr verwirrend. Ich habe es jetzt mal so geweit gemacht. Aber mir fehlen noch viele Parameter und ich weiß noch nicht was das ganze funktionieren soll?? [COLOR="seagreen"]///////////////////////////////////////////////////////////////////////////// // Sortiert die Dokumentenliste nach Datum[/COLOR] [COLOR="SeaGreen"]//[/COLOR] [COLOR="Blue"]void [/COLOR]CPatient::DokumenteSortieren() { [COLOR="blue"]int [/COLOR]iCount = [COLOR="darkred"]0[/COLOR]; //while m_ctrlList.SortItems([COLOR="blue"]this[/COLOR]->DokumenteVergleichen(),IRGENDWAS); } [COLOR="SeaGreen"]///////////////////////////////////////////////////////////////////////////// // Vergleicht Dokumente[/COLOR] [COLOR="seagreen"]//[/COLOR] [COLOR="blue"]int [/COLOR]CALLBACK CPatient::DokumenteVergleichen(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) { [COLOR="blue"]int [/COLOR]iSelected = m_ctrlList.GetSelectionMark(); DWORD Item = m_ctrlList.GetItemData(iSelected); [COLOR="blue"]if[/COLOR](Item <= wasmusshierrein?) { [COLOR="blue"]return [/COLOR][COLOR="darkred"]1[/COLOR]; ?? } [COLOR="blue"]return [/COLOR][COLOR="DarkRed"]0[/COLOR]; }
  24. Ich hab versucht den Code hier aus diesem thread zu verstehen aber ich weiß gar nicht wo und wie ich anfangen soll http://forum.fachinformatiker.de/c-compiler-ides-apis/61235-sortitems-tut-bug.html?highlight=%2ASortItems
  25. Hi, ich habe eine CListCtrl in den Eine Beschreibung und ein Datum angezeigt wird. Ich möchte jetzt alle Einträge in der Liste absteigend nach Datum sortieren. Wie geht das? Ist CListCtrl::SortItems die richtige Funktion? Und wenn ja, wie funktioniert das? http://msdn2.microsoft.com/en-us/library/b4ceh1za.aspx Das verstehe ich nämlich nicht!

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...