Möglichkeit ein Icon zu verkleinern??



  • ich hab mehere Icon welche ein Status später in einer Grafik sinalisieren.. aber die icons sind noch etwas zu grpß gibt es ne möglichkeit sie kleiner zu machen??

    ich setzte die icson später mit

    oDC.DrawIcon(0,0,AfxGetApp()->LoadIcon(IDR_ICON_WET));
    


  • du kannst doch die icons in verschiedenen größen erstellen 16x16 32x32
    also auch einem Icon mehrere verschieden größen zuweisen diese kannst du dann später wieder abrufen bzw auch so erstellen. aus eine 16x16 icon nen 20x20 zu machen geht glaub ich nicht, es sei den es ist ein bitmap *kopfkratz* ka denk nur laut 😉



  • ja 16x16 wäre gut... aber das kann ich bei mir im VC++ wen ich ein neue icon machen will nicht aus wählen !
    Im eingenschaften Fenster bei der größe steht 32x32 und ist grau hinterlegt bzw. deaktiviert



  • Du kannst die Icons doch in mit DrawIcon(Ex) in einen Speicherkontext schreiben und anschließend diese als HICON wieder heraus selektieren.



  • hmm also auch wenn du dir ein neues icon im resourcenmanager anlegst auf das icon doppelklickst kannst du das icon ja bearbeiten, im dropdown wählst du ja die aktuelle größe die du bearbeiten willst rechts daneben ist doch der kleine button neues Geräteabbild (Ins) dort draufklicken und normalerweise solltest du dort doch eine neue größe anlegen können sogar benutzerdefiniert sprich 20x20 also so gehts das bei mir (vc6).



  • jo.. habs gefunden.. allerding hat das ganze ein bug oder so, ich kann ein 16x16 icon auswählen es malen, aber nich speichern.. wenn ich speicher dann sites wieder weg.. er speicher nur 32x32 icons.. ein bug


  • Mod

    Nein! Er speichert immer mehere Images. Du kannst die einzelnen Images über das Image Menü auswählen und theoretisch auch das 32x32 Icon löschen.



  • ohh.. ok.. naja hab ein icon edior gezogen.. und die icons dann in die rc datei eingebunden... 😉 sehen auch schöne aus :xmas1:

    ABER ABER ..... aber er läd irgendwie nur die 32x32 icons... wenn ich mit LoadIcon meine 16x16 icons (die definitiv in der rc datei drin sind) nicht laden



  • NERV,,, doch sie werden gezeiuchnet aber sie werden gestreched in 32 x 32 ... menno.. gibt noch ne andere möglich keit auser mit icons?


  • Mod

    LoadIcon kann nur 32x32 laden, bzw. die Systemstandard Größe. Lies doch enfach mal die Dokumentation.
    Nur mit LoadImage kann man unterschiedliche Icons laden.



  • m_hIcon	= AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    SetIcon(m_hIcon, TRUE);	// Großes Symbol verwenden
    SetIcon(m_hIcon, FALSE);	// Kleines Symbol verwenden
    

    bzw. gibt es noch die möglichkeit es über nen image zu erstellen dafür bräuchtest du aber bitmaps die du als icon verwendest damit könntest du auch in ein bitmap zb 8 icons hintereinander legen. das bitmap ware dann zb 16x128 groß

    CImageList m_Image16,m_Image32;
    CBitmap bitmap16,bitmap32;
    
    bitmap16.LoadBitmap(IDB_ICON16);
    bitmap32.LoadBitmap(IDB_ICON32);
    
    m_Image16.Create(16, 16, ILC_COLOR16|ILC_MASK, 2, 1);
    m_Image16.Add(&bitmap16, RGB(0,0,0));
    
    m_Image32.Create(32, 32, ILC_COLOR16|ILC_MASK, 2, 1);
    m_Image32.Add(&bitmap32, RGB(0,0,0));
    
    SetIcon(m_Image32.ExtractIcon(0), TRUE);
    SetIcon(m_Image16.ExtractIcon(0), FALSE);
    


  • ok danke... 👍 🙂



  • so habs hinbekommen:

    //Laden
    HICON m_Icon = (HICON)::LoadImage(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_WIZARD),IMAGE_ICON,0,0,0);
    
    //Zeichnen
    ::DrawIconEx(*pDC,xPos,yPos,m_Icont,0,0,0,0,DI_NORMAL);
    

  • Mod

    Warum gibst Du nicht die gewünschte Größe bei LoadImage an?
    Dein Code funktioniert nur, wenn ein Image in dem Icon ist. Der Vorteil ist das LoadImage auch entsprechend der Farbanzahl das korrekte Icon laden kann.


Anmelden zum Antworten