VallonTip und TTM_SETTITLE


  • Mod

    Wann und wo hast Du commctrl.h inkludiert?

    Zeig mir mal den gesamten Headerabschnitt aus der stdafx.h und aus dem entsprechenden Programmteil wo diese defines nicht gefunden werden.



  • Hier aus meinem Programm:

    #include "windows.h"
    #include "shlwapi.h"
    #include "commctrl.h" 
    
    //...weitere includes für andere Dialogklassen
    //...
    
    //jetzt selbst angelegt:
    #define TTS_BALLOON 0x40
    #define TTM_SETTITLE (WM_USER + 32) 
    #define WM_TRAY_NOTIFY WM_APP + 1000
    

    Die stdafx.h ist noch so unverändert, bis auf

    #ifndef _WIN32_IE            // Lassen Sie die Verwendung von Features spezifisch für IE 4.0 oder später zu.
    #define _WIN32_IE 0x0500    // Ändern Sie den entsprechenden Wert, um auf mindestens IE 5.0 abzuzielen.
    #endif
    

    statt:

    #ifndef _WIN32_IE            // Lassen Sie die Verwendung von Features spezifisch für IE 4.0 oder später zu.
    #define _WIN32_IE 0x0400    // Ändern Sie den entsprechenden Wert, um auf mindestens IE 5.0 abzuzielen.
    #endif
    

  • Mod

    Wenn Dein Programm aber die stdafx.h nicht inkludiert wie soll die windows.h aus Deinem Programm darauf reagieren?

    Vor dem include der Windows.h müsstest Du schon die stdafx.h includen? Warum ist das nicht so. Hast Du Precompiled Header ausgeschaltet?



  • Acha, wenn die defines auskommentiert werden, lande ich
    in meiner OnInitDialog bei:

    _ToolTipCtrl.Create( this, 
    						 // the ToolTip control's style 
    		                 TTS_NOPREFIX | // prevents the system from stripping the ampersand (&) 
    						                // character from a string
    
    						 TTS_BALLOON  | // the ToolTip control has the appearance of
    //HIER IST TTS_BALLOON nicht bekannt...nicht deklarierter Bezeichner!						 
    // 0x40        // a cartoon "balloon," with rounded corners 
    										// and a stem pointing to the item. 
    
    						 TTS_ALWAYSTIP  // the ToolTip will appear when the
    	                                    // cursor is on a tool, regardless of 
    	                                    // whether the ToolTip control's owner
    	                                    // window is active or inactive
    					   );
    


  • Sry, #include "stdafx.h" ist natürlich ganz oben includiert, dachte
    das wäre logisch.

    Vorkompilierte Header werden verwendet!



  • Wie sieht Deine stdafx.h aus?



  • // stdafx.h : Includedatei für Standardsystem-Includedateien,
    // oder häufig verwendete, projektspezifische Includedateien,
    // die nur in unregelmäßigen Abständen geändert werden.
    #pragma once
    
    #ifndef VC_EXTRALEAN
    #define VC_EXTRALEAN		// Selten verwendete Teile der Windows-Header nicht einbinden
    #endif
    
    // Ändern Sie folgende Definitionen für Plattformen, die älter als die unten angegebenen sind.
    // Unter MSDN finden Sie die neuesten Informationen über die entsprechenden Werte für die unterschiedlichen Plattformen.
    #ifndef WINVER	
    // Lassen Sie die Verwendung von Features spezifisch für Windows 95 und Windows NT 4 oder später zu.
    #define WINVER 0x0400		// Ändern Sie den entsprechenden Wert, um auf Windows 98 und mindestens Windows 2000 abzuzielen.
    #endif
    
    #ifndef _WIN32_WINNT		// Lassen Sie die Verwendung von Features spezifisch für Windows NT 4 oder später zu.
    #define _WIN32_WINNT 0x0400		// Ändern Sie den entsprechenden Wert, um auf Windows 98 und mindestens Windows 2000 abzuzielen.
    #endif						
    
    #ifndef _WIN32_WINDOWS		// Lassen Sie die Verwendung von Features spezifisch für Windows 98 oder später zu.
    #define _WIN32_WINDOWS 0x0410 // Ändern Sie den entsprechenden Wert, um auf mindestens Windows Me abzuzielen.
    #endif
    
    #ifndef _WIN32_IE			// Lassen Sie die Verwendung von Features spezifisch für IE 4.0 oder später zu.
    #define _WIN32_IE 0x0500	// Ändern Sie den entsprechenden Wert, um auf mindestens IE 5.0 abzuzielen.
    #endif
    
    #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS	// einige CString-Konstruktoren sind explizit
    
    // Deaktiviert das Ausblenden von einigen häufigen und oft ignorierten Warnungen
    #define _AFX_ALL_WARNINGS
    
    #include <afxwin.h>         // MFC-Kern- und -Standardkomponenten
    #include <afxext.h>         // MFC-Erweiterungen
    #include <afxdisp.h>        // MFC-Automatisierungsklassen
    
    #include <afxdtctl.h>		// MFC-Unterstützung für allgemeine Steuerelemente von Internet Explorer 4
    #ifndef _AFX_NO_AFXCMN_SUPPORT
    #include <afxcmn.h>			// MFC-Unterstützung für allgemeine Windows-Steuerelemente
    #endif // _AFX_NO_AFXCMN_SUPPORT
    


  • Scheint wohl alles richtig so zu sein, oder?


  • Mod

    Ich sehe kein Problem. Außer Du hast mehrere windows.h/commctl32 Versionen installiert und hast die Include Pfade angepasst.

    Kontrolliere doch mal ob Du mehrere commctl Header Dateien findest.



  • Ich habe die Datei einmal unter

    C:\Programme\Microsoft Platform SDK\Include

    und unter

    C:\Programme\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include


  • Mod

    Welche Datei wird zuerst included?


Anmelden zum Antworten