tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
2819
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    RuFFnEcK RuFFnEcK ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    203
    So funktioniert es schonmal nicht

    Code :
    1
    2
    3
    4
    5
    6
    7
    
                CFileDialog ldFile(TRUE, "exe", "VailooMon", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "VailooMon executable (*.exe)|*.exe||");
                ldFile.SetWindowText("VailooMon.exe Pfad angeben");
                if (ldFile.DoModal() == IDOK)
                {
                    m_VailooMonPath = ldFile.GetPathName();
                    returnValue = true;
                }
    Alles funktioniert bis auf den Titel da steht nur der std. Text und nicht das was ich will
    Wie kann ich es erreichen dass da im titel das steht was ich will
     

  2. #2
    langer1801 langer1801 ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Ort
    Bad Arolsen (Hessen)
    Beiträge
    556
    Hi,
    du mußt am Besten einen File-Dialog von CFileDialog ableiten. Dort kannst du dann OnInitDialog überschreiben und in dieser Funktion den Titeltext setzen. Beachte aber, daß CFileDialog aus zwei Fenstern zusammengesetzt ist und der Titel zum Parent-Fenster gehört. Du mußt in OnInitDialog also schreiben
    Code :
    1
    
        GetParent()->SetWindowText(meinTitel);
    Vielleicht funktioniert es aber auch mit
    Code :
    1
    
        ldFile.GetParent()->SetWindowText(meinTitel);
    Dann sparst du dir das Ableiten. Das ist aber nicht getestet.

    Mfg

    langer
    Geändert von langer1801 (27.02.06 um 19:37 Uhr)
     

  3. #3
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    CFileDialog hat einen member "m_ofn", der auf eine Struktur OPENFILENAME verweist.
    Hier kannst du den Dialog recht gut konfigurieren. Der Member "lpstrTitle" ist für den Titel des Dialogs zuständig.
    Mit ...
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    CFileDialog ldFile( TRUE, "exe", "VailooMon", OFN_HIDEREADONLY |
    OFN_OVERWRITEPROMPT, "VailooMon executable (*.exe)|*.exe||");
     
    ldFile.m_ofn.lpstrTitle = "VailooMon.exe Pfad angeben";
     
    if (ldFile.DoModal() == IDOK)
    {
    m_VailooMonPath = ldFile.GetPathName();
    returnValue = true;
    }

    ... sollte es funktionieren.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  4. #4
    RuFFnEcK RuFFnEcK ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    203
    Tausend Dank euch beiden
    Werde es gleich mal ausprobieren.

    @MCoder

    Woher weißt du sowas?
    Wo kann man das z.B. nachlesen?
    In der MSDN find ich sowas nicht...
    Wo hat M$ solche Infos hinterlegt?

    Es hat wunderbar funktioniert, nur das der Member m_pOFN von CFileDialog ein Pointer ist
    Hast du wohl ausm Kopf geschrieben Nicht schlecht

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    CFileDialog ldFile(TRUE, "exe", "VailooMon", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "VailooMon executable (*.exe)|*.exe||");
                ldFile.[COLOR="Red"]m_pOFN[/COLOR]->lpstrTitle = "VailooMon.exe Pfad angeben";
                if (ldFile.DoModal() == IDOK)
                {
                    m_VailooMonPath = ldFile.GetPathName();
                    returnValue = true;
                }
    Vielen Dank nochmal!
    Geändert von RuFFnEcK (27.02.06 um 23:49 Uhr)
     

  5. #5
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Mini-Anmerkung:

    Das war früher auch mal ein direktes Member. Das gab aber Probleme, als bei Windows 2000 die erweiterten FileDialoge eingeführt wurden (die mit der Placesbar links). Da hatte dann der Standard-MFC-Filedialog diese nicht.

    Das Umbauen auf den Pointer hat das Problem behoben (Windows erkennt intern an der Grösse und ein paar Flags des OPENFILENAME-structs, welche Version des Dialoges angezeigt werden soll).
     

  6. #6
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von RuFFnEcK
    Wo kann man das z.B. nachlesen?
    In der MSDN find ich sowas nicht...
    Auszug aus der MSDN:
    ===========================================================
    CFileDialog::m_ofn

    m_ofn is a structure of type OPENFILENAME.

    Remarks
    Use this structure to initialize the appearance of a File Open
    or File Save As dialog box after it is constructed but before it
    is displayed with the DoModal member function. For example, you
    can set the lpstrTitle member of m_ofn to the caption you want
    the dialog box to have.


    For more information, see the OPENFILENAME structure
    in the Platform SDK.
    ===========================================================

    Zitat Zitat von RuFFnEcK
    Es hat wunderbar funktioniert, nur das der Member m_pOFN von CFileDialog ein Pointer ist
    Also, bei mir heißt der member m_ofn und ist kein Pointer. Wurde wahrscheinlich bei irgendeiner MFC-Version mal geändert.

    /edit
    Habe gerade noch mal nachgeschaut: Im VS2005 stehen beide Varianten zur Verfügung (m_ofn und m_pOFN), in der MSDN ist allerdings nur der Member m_ofn dokumentiert (zumindest bei der CFileDialog-Klassenreferenz).

    Gruß
    MCoder
    Geändert von MCoder (28.02.06 um 08:44 Uhr)
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  7. #7
    RuFFnEcK RuFFnEcK ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    203
    Zitat von RuFFnEcK
    Wo kann man das z.B. nachlesen?
    In der MSDN find ich sowas nicht...
    Auszug aus der MSDN:
    ===========================================================
    CFileDialog::m_ofn

    m_ofn is a structure of type OPENFILENAME.

    Remarks
    Use this structure to initialize the appearance of a File Open
    or File Save As dialog box after it is constructed but before it
    is displayed with the DoModal member function. For example, you
    can set the lpstrTitle member of m_ofn to the caption you want
    the dialog box to have.

    For more information, see the OPENFILENAME structure
    in the Platform SDK.
    ===========================================================
    Ok hab gestern nur nach der Pointer Version gesucht und nicht gefunden
    Nunja am Ende muss man einfach lernen der MSDN die Informationen zu entlocken...
    Mit der Suche komm ich meißt nicht all zu weit, die Begriffe die man bräuchte um etwas zu finden würden das Problem ja schon lösen

    Habe gerade noch mal nachgeschaut: Im VS2005 stehen beide Varianten zur Verfügung (m_ofn und m_pOFN), in der MSDN ist allerdings nur der Member m_ofn dokumentiert (zumindest bei der CFileDialog-Klassenreferenz).
    Dem nach zu urteilen was ihr beide da sagtet, denk ich dass sich das so entwickelt hat...
    Ich hab hier VS 2003 und da gibts nur die Pointer Version...
    Ich denke zu erst haben se in 2003 den Member durch den Pointer ersetzt und
    dadurch wiederum andere Probs verursacht,
    um dann wieder in 2005 beide Versionen einzuführen.

    Ihr habt mir alle sehr geholfen, vielen Dank nochmal für die Mühen!
    Special Thanx 2 MCoder

    Grüße
    RuFF
     

  8. #8
    Avatar von jokey2
    jokey2 jokey2 ist offline Mitglied Smaragd
    Registriert seit
    Nov 2004
    Beiträge
    1.235
    Nunja am Ende muss man einfach lernen der MSDN die Informationen zu entlocken...
    Man muß nicht wissen wie es geht, sondern nur wo man es nachlesen kann
     

  9. #9
    RuFFnEcK RuFFnEcK ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    203
    Zitat Zitat von jokey2
    Man muß nicht wissen wie es geht, sondern nur wo man es nachlesen kann
    Ich liebe Klugscheisser
    Geändert von RuFFnEcK (14.03.06 um 15:14 Uhr)
     

Ähnliche Themen

  1. Titel als Link setzen zur Infoseite
    Von apa-most im Forum PHP
    Antworten: 21
    Letzter Beitrag: 01.06.10, 15:15
  2. Fenster Titel verändern!
    Von SCIPIO-AEMILIANUS im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 07.11.07, 08:12
  3. Antworten: 4
    Letzter Beitrag: 29.06.07, 09:29
  4. Antworten: 4
    Letzter Beitrag: 02.10.05, 10:57
  5. Fenster Titel ändern MDI
    Von bukem im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 11.02.05, 14:56