Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Der relevante Code ist der hier: COLORREF startfarbe= RGB( 255, 0, 0 ); CColorDialog dlg( startfarbe); if( IDOK == dlg.DoModal() ) { COLORREF auswahlfarbe = dlg.GetColor(); // jetzt ist die gewählte Farbe in auswahlfarbe }[/CODE]
  2. Wo ist denn das Problem? Das Beispiel war doch in Ordnung. Dialogobjekt mit Startfarbe erzeugen, DoModal aufrufen, mit GetColor die Farbe rausholen. Viel mehr gibt die Klasse wirklich nicht her. Lass Dich von dem SDI-Zeug nicht abschrecken, das ist nur drumherum.
  3. Hier ist ein Beispielprojekt für ein Tool, mit dem solche Verbindungen eingerichtet werden können. Vielleicht hilft's Dir weiter. Nachtrag: Eine der Schlüsselfunktionen scheint RasSetEntryProperties zu sein
  4. Genau so. Alles, was mit LPCSTR bzw. const char* funktioniert, geht auch mit CString. Diese Klasse hat einen überladenen Cast-Operator für eben diesen Typ, der sich darum kümmert. Da strstr zwei Argumente dieses Typs verlangt, kannst Du für eines oder beide Argumente einen CString angeben. Aber wie 007ski bereits sagte, die Klasse bringt auch eigene Suchfunktionen mit. Gegenbeispiel: Das erste Argument von strcat ist nicht const (weil dieser String durch die Funktion verändert wird). Da kannst Du nicht einfach einen CString einsetzen.
  5. Einige dieser Fragen hattest Du hier schon mal gestellt, und auch schon ein paar Tipps erhalten. Ich hatte Dich gebeten, dort nochmal klarzustellen, wo noch Probleme sind, damit die Lösungen konzentriert werden. Es bringt gar nichts, wenn Du auf Tipps kein Feedback bringst, sondern nur die Fragen wiederholst. --> Thema geschlossen, hier geht's weiter.
  6. Wie ich schon sagte, schreib bitte in dem Thread, in dem Du die Fragen ursprünglich gestellt hattest, was die konkreten Probleme sind. Wenn ein anderer Benutzer mal ein ähnliches Problem hat, soll er sich die Antworten nicht über mehrere Threads verteilt zusammensuchen müssen.
  7. War der Aufruf der Funktion möglicherweise im zweiten Thread? Du musst CoInitialize für jeden Thread einzeln aufrufen. Das würde aber auch nicht erklären, warum es unter Windows 98 funktioniert hat...
  8. Ist der Rückgabewert von CoInitialize in Ordnung? Verwendest Du Multithreading? Was für eine Funktion ist es, die den Fehler liefert? API oder selbstgeschrieben?
  9. Klotzkopp

    net use

    hades hat dazu eine wunderbare Checkliste geschrieben, die Du hier finden kannst.
  10. Den ganzen Kram mit CreateEx und LoadToolBar musst Du nur einmal machen. Danach reicht zum Anzeigen und Ausblenden einfach cToolBar.ShowWindow(SW_SHOW); bzw. cToolBar.ShowWindow(SW_HIDE);
  11. Du kannst mit CTreeCtrl::GetItemState testen, ob ein bestimmtes Element geöffnet bzw. geschlossen ist: if( m_deinTreeCtrl.GetItemState(hItem, TVIS_EXPANDED ) == TVIS_EXPANDED ) { // aufgeklappt } else { // nicht aufgeklappt } hItem ist hier das HTREEITEM des Elements, dessen Status Du prüfen willst. Ja, auch wenn sich mir der Sinn nicht ganz erschließt. In dem TNV_SELCHANGING-Handler kannst Du über pNMTreeView->itemOld.hItem an das HTREEITEM des Elements kommen, das jetzt nicht mehr selektiert ist: HTREEITEM hOld = pNMTreeView->itemOld.hItem; if( hOld ) { if( !m_deinTreeCtrl.GetNextSiblingItem( hOld ) ) { // es war das letzte HTREEITEM hParent = m_deinTreeCtrl.GetParentItem( hOld ); if( hParent ) { m_deinTreeCtrl.Expand( hParent, TVE_COLLAPSE ); } } }[/CODE] Dafür solltest Du einen Handler für TVN_ITEMEXPANDED einrichten. Das geht analog zu TVN_SELCHANGING. Da drin kannst Du dann prüfen, wie oft Du GetParentItem aufrufen kannst: [CODE]if( (pNMTreeView->action & TVE_EXPAND) == TVE_EXPAND ) { // aufgeklappt } else { // zugeklappt } int level = 0; HTREEITEM hParent = m_deinTreeCtrl.GetParentItem( pNMTreeView->itemNew.hItem ); while( hParent ) { level++; hParent = m_deinTreeCtrl.GetParentItem( hParent ); } Dann solltest Du in dem entsprechenden Thread schreiben, wo genau Probleme auftauchen.
  12. Bei einem normalen ListControl kann immer nur eine Spalte Icons haben. Das muss allerdings nicht die erste Spalte sein. Man muss dazu beim Einfügen der Spalten den iOrder-Member der LVCOLUMN-Struktur verwenden, um die Spalten anders anzuordnen. Wenn Du Icons in mehr als einer Spalte haben willst, wird Dir wohl nichts anderes übrig bleiben, als die Icons selbst zu malen.
  13. Nein, aber das lässt sich ganz einfach selbst schreiben: vector<int> v; // ...Vector mit Daten füllen int minimum = 0; int maximum = 0; if( v.size() > 0 ) { vector<int>::iterator it = v.begin(); minimum = maximum = *it; for(; it != v.end(); it++ ) { if( *it < minimum ) minimum = *it; if( *it > maximum ) maximum = *it; } }[/CODE]
  14. Ein Sequenzdiagramm ist für die Darstellung von Algorithmen nicht gut geeignet, man verwendet es eher zur Veranschaulichung von Szenarien, eben weil typische Elemente wie Verzweigungen und Schleifen nicht wirklich dargestellt werden können. Ich habe hier eine PDF-Datei gefunden. Auf Seite wird 7 eine Rechteckdarstellung für Schleifen gewählt. Ich bin aber nicht sicher, ob das Bestandteil von UML ist.
  15. Wie wärs damit: =(20+45/60)/8
  16. http://www.symantec.com/avcenter/venc/data/w32.bugbear@mm.removal.tool.html
  17. Dafür hättest Du kein neues Thema beginnen müssen, ich führ das mal zusammen . Aber zur Frage: Um überhaupt etwas davon mitzubekommen, wenn sich die Selektion eines Tree Controls ändert, musst Du im Klassenassistenten für das Control eine Nachrichtenbehandlungsfunktion für die Nachricht TNV_SELCHANGING einrichten. Die generierte Funktion sieht dann in etwa so aus: void CDeinDlg::OnSelchangedTreeXy(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; // TODO: Add your control notification handler code here *pResult = 0; }[/CODE] Diese Funktion wird aufgerufen, wenn sich die Auswahl ändert. An den Text des Elements kommst Du mit CTreeCtrl::GetItemText, dafür brauchst Du das HTREEITEM des Elements als Parameter. Das wird hier aber zum Glück mitgeliefert, in der NM_TREEVIEW-Struktur. Du musst also nur folgenden Code an der TODO-Stelle einfügen, und schon hast Du den Text in einem CString:[CODE]CString strItemText = m_DeinTreeCtrl.GetItemText( pNMTreeView->itemNew.hItem );
  18. Klotzkopp

    Ie 5.5

    Das könnte helfen: http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q260650&
  19. Ich hab hier was gefunden: http://www.wps.com/FidoNet/source/DOS-C-sources/Old%20DOS%20C%20library%20source/ Ist allerdings C und offenbar ohne Dokumentation - wenn man mal von den Kommentaren im Code absieht. Könnte allerdings ein Anhaltspunkt sein.
  20. Du brauchst für jeden Menüpunkt, dessen Verhalten Du beeinflussen willst, einen UpdateUI-Handler. Was das ist, und wie man so was einrichtet, hatte ich hier schon mal beschrieben. Innerhalb des Handlers kannst Du mit pCmdUI->Enable( FALSE ) den Menüeintrag deaktivieren.
  21. Wird schwierig, wenn Du uns die Fehlermeldungen nicht nennst . Was die Kompaktheit angeht, bei dem Code fehlen sogar die Fehlerprüfungen. Alle Funktionsaufrufe in dem Beispiel können fehlschlagen, was natürlich behandelt werden muss. Die Alternative, und IMHO erheblich einfacher, dürfte immer noch sein, aus dem Programm heraus das Tool cacls aufzurufen.
  22. MFC oder nicht? Falls ja, mit CTreeCtrl::InsertItem. Wenn Du mit Level meinst, wo das neue Element eingefügt werden soll: Du musst bei InsertItem das Parent-Element angeben, in Form eines HTREEITEM. Ein solches bekommst Du beim Aufruf von InsertItem für das neu eingefügte Element zurück. Wenn Du ein Element auf der obersten Ebene anlegen willst, musst Du als Parent TVI_ROOT angeben. Siehe auch: http://msdn.microsoft.com/library/en-us/vclib/html/_mfc_CTreeCtrl.3a3a.InsertItem.asp Hat Dir ffGebaecks Antwort nicht weitergeholfen?
  23. Hey, wenn ihr über Tierleichen reden wollt, dann macht ein neues Thema auf
  24. Klotzkopp

    ctfmon.exe

    Hier steht (unter anderem), wie man den Start unterbinden kann: http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q282599&
  25. CListCtrl ist nur ein Wrapper für das List View Control (Klassenname: WC_LISTVIEW). Das gehört zu den Common Controls und funktioniert prima auch ohne MFC. Wenn Du die Common Controls verwenden willst, musst Du vorher InitCommonControlsEx aufrufen. Die Nachrichten für das List View Control fangen alle mit LVM, die Notifications mit LVN an. Damit Du die Spaltenansicht bekommst, muss das Fenster den Style LVS_REPORT haben.

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