grafische oberfläche !

utzutz

Mitglied
hi,
ich brauche dringend ein turoial wo erklärt wird wie man bilddateien einbinden kann und diese als buttons verwenden kann !
eventuel auch mit mouseover animationen á la flash !

ich möchte ein skin ähnlich tweakxp kreieren ... aber hab kein plan wie !
grafik schon aber wei binde ich diese in ein MFC projekt ein ?

MfG katharina
 
flipcode tut kenn cih schon und so shapeform dinger sind mir auch bekannt !

aber das brauch ich auch nich direkt .. kann schon normal viereckiger dialog sein aber ich will wissen wie ich den hintegrund verändern aknn die buttons verändern aknn das die nich die langweiligen windows ok ,cancel usw buttons sind sondern eigene jpegs bmps oder anderes !

siehe einer webpage .. button gfx mit ps und diese gfx dann als "button" in mfc einbinden !

mag eventuel simpel sein aber ich weiß nich wie ich das machen soll !
 
Dann musst du dir hald die Buttons selber machen:
Eine Klasse von CButton ableiten und die OnPaint Methode Überladen, hier blittest du dein Bitmap rein und passt das Layout entsprechend deinen Wünschen an.

Daniel
 
Hier eine kleine Erklärung, wie du "Hover-Buttons" in dein Projekt bekommst:

- Füge in dein Projekt einen Button mit zwei Zuständen für den MouseOver-Effekt ein. Also insgesamt 2 Bilder. Sie sollten das .bmp-Format haben. Name der ID´s: IDB_BITMAP1 + IDB_BITMAP2
- Füge 1Bild-Steuerelement ein (Picture-Element) und ändere die ID in IDC_STATIC1. Füge noch für das Bild-Steuerelement eine Member-Variable ein. Name: m_ctlHoverButton1, Typ: CStatic, Kategorie: Control. In den Eigenschaften des Steuerelemente setze unter Typ: "Abbild" und als Abbild wähle das eingefügte Bitmap, also IDB_BITMAP1. Im Register "Formate" setze einen Haken bei "Benachrichtigen" (engl. Notify)
- Füge für deine Hauptklasse 2 Variablen ein: Typ: CBitmap, Name: m_Bitmap1 und m_Bitmap2
- Füge für deine Hauptklasse eine Nachrichtenbehandlungsroutine(Funktion) für die Nachricht "PreTranslateMessage" ein
- Füge diesen Code in die "OnInitDialog()"-Funktion ein:
Code:
m_Bitmap1.LoadBitmap(IDB_BITMAP1);
m_Bitmap2.LoadBitmap(IDB_BITMAP2);

- Füge diesen Code in die Funktion "PreTranslateMessage" ein:
Code:
if(pMsg->message == WM_MOUSEMOVE)
{
if(pMsg->hwnd == GetDlgItem(IDC_STATIC1)->m_hWnd)
	 m_ctlHoverButton1.SetBitmap(m_Bitmap2); 
 
else if(pMsg->hwnd != GetDlgItem(IDC_STATIC1)->m_hWnd)
	 m_ctlHoverButton1.SetBitmap(m_Bitmap1); 
}
return CDialog::PreTranslateMessage(pMsg);

Damit du jetzt noch den Button anklicken kannst, brauchst du nur eine Nachrichtenbehandlungsroutine(Funktion) für die "BN_CLICKED"-Nachricht für das Bild-Steuerelement einzufügen.
 
Zurück