HICON



  • Hallo ich hab folgendes Programm:

    in der .h datei:

    HICON m_pIconList[3];
    

    in der .cpp datei:

    m_pIconList[0] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME));
    m_pIconList[1] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME));
    m_pIconList[2] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME));
    

    das problem ist, ich habe ein Programm da bekommen die arrays einen wert u. beim anderen aber nicht, obwohl alles genau so geschrieben ist. da schreibt er immer hin, Error: Symbol "" not found. verstehe ich nicht.

    danke



  • Hi

    vielleicht existiert in diesen Projekten kein Symbol Namens IDR_MAINFRAME (kein icon mit dem Namen).

    Tendiert übrigends stark zu WinApi 😉 .

    Grüße Rapha



  • Das Icon IDR_MAINFRAME gibt es aber!!!



  • Ist IDR_MAINFRAME in resource.h definiert (mit #define)?



  • Ja ist sie:
    #define IDR_MAINFRAME 128



  • Braucht man bei der MFC-Version von LoadIcon keinen HINSTANCE angeben?



  • weiß ich nicht, aber ganz genau der gleiche source code funktioniert in einem anderen Programm, dass verstehe ich nicht.



  • Der einzige LoadIcon-Aufruf, den ich in der MSDN gefunden habe, der KEINEN HINSTANCE benötigt, ist in der CWinAPP-Klasse:

    CWinApp::LoadIcon



  • Hier das cpp-file:

    // SystemMonitor.cpp : Definiert das Klassenverhalten für die Anwendung.
    //
    
    #include "stdafx.h"
    #include "SystemMonitor.h"
    #include "SystemMonitorDlg.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    
    // CSystemMonitorApp
    
    BEGIN_MESSAGE_MAP(CSystemMonitorApp, CWinApp)
    	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
    
    END_MESSAGE_MAP()
    
    // CSystemMonitorApp-Erstellung
    
    CSystemMonitorApp::CSystemMonitorApp()
    {
    	// TODO: Hier Code zur Konstruktion einfügen
    	// Alle wichtigen Initialisierungen in InitInstance positionieren
    	// Load Icons for Tray 
    
    }
    
    // Das einzige CSystemMonitorApp-Objekt
    
    CSystemMonitorApp theApp;
    
    // CSystemMonitorApp Initialisierung
    
    BOOL CSystemMonitorApp::InitInstance()
    {
    	// InitCommonControls() ist für Windows XP erforderlich, wenn ein Anwendungsmanifest
    	// die Verwendung von ComCtl32.dll Version 6 oder höher zum Aktivieren
    	// von visuellen Stilen angibt. Ansonsten treten beim Erstellen von Fenstern Fehler auf.
    	InitCommonControls();
    
    	CWinApp::InitInstance();
    
    	CoInitialize(NULL);
    	CoInitializeSecurity
    		( NULL, -1, NULL, NULL, 
    		RPC_C_AUTHN_LEVEL_PKT_PRIVACY, 
    		RPC_C_IMP_LEVEL_IMPERSONATE, 
    		NULL, 
    		EOAC_SECURE_REFS, //change to EOAC_NONE if you change dwAuthnLevel to RPC_C_AUTHN_LEVEL_NONE
    		NULL );
    
    	AfxEnableControlContainer();
    
    	/**#ifdef _AFXDLL
    		Enable3dControls();			// Call this when using MFC in a shared DLL
    	#else
    		Enable3dControlsStatic();	// Call this when linking to MFC statically
    	#endif*/
    
    	// Load Icons for Tray 
    	m_pIconList[0] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME));
    	m_pIconList[1] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME));
    	m_pIconList[2] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME));
    
    	CSystemMonitorDlg dialog;
    	m_pMainWnd = &dialog;
    
    	INT_PTR nResponse = dialog.DoModal();
    
    	if (nResponse == IDOK) {
    	}
    	else if (nResponse == IDCANCEL) {
    	}
    
    	return FALSE;
    }
    

    und hier das header-file:

    // SystemMonitor.h : Hauptheaderdatei für die SystemMonitor-Anwendung
    //
    #if !defined(AFX_ASHSYSTRAY_H__4861817C_B708_4733_B220_51AEC32F88D1__INCLUDED_)
    #define AFX_ASHSYSTRAY_H__4861817C_B708_4733_B220_51AEC32F88D1__INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    
    #ifndef __AFXWIN_H__
    	#error include 'stdafx.h' before including this file for PCH
    #endif
    
    #include "resource.h"		// Hauptsymbole
    
    // CSystemMonitorApp:
    // Siehe SystemMonitor.cpp für die Implementierung dieser Klasse
    //
    
    class CSystemMonitorApp : public CWinApp
    {
    public:
    
    	HICON m_pIconList[3];
    	CSystemMonitorApp();
    
    // Überschreibungen
    	public:
    	virtual BOOL InitInstance();
    
    // Implementierung
    
    	DECLARE_MESSAGE_MAP()
    };
    
    extern CSystemMonitorApp theApp;
    #endif
    

    vielleicht hilft das


Anmelden zum Antworten