Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

02.07.2009, 19:45

[WinAPI] "Speicher-Fenster" und "Subwindow&qu

Nabend!

Wenn man in Anwendungen etwas speichern/öffnen will, öffnet
sich ja ein kleines Fenster (wie z.B. hier). Gibt es so etwas vorgefertigt?

Beim RPG Maker gibt es ja rechts dieses Subwindow für die
Sprites, wie kann man das mit der WinAPI machen?
Würde das ganz normal mit CreateWindow(...) gehen?
Welche Parameter brauch ich dann?

Danke für eure Hilfe!
MfG Shiver!

„Ideen sind nur Ausgangspunkte. Um zu wissen, was man zeichnen will, muss man zu zeichnen anfangen.“ Pablo Picasso

Ibot Development - Mein Weg zum eigenen 2D RPG

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

2

02.07.2009, 20:31

das ganze ist ein standard-dialog von windows.

GetSaveFileName

(braucht die comdlg32.lib)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
std::string SaveFileName(const char *pattern, HWND wnd)
{
    char buffer[256 * 256]; // 64kb

    buffer[0] = 0; // wichtig !


    OPENFILENAME ofn;
    ZeroMemory(&ofn, sizeof(ofn));

    ofn.lStructSize = sizeof(ofn);
    ofn.hwndOwner = wnd;
    ofn.lpstrFilter = pattern;
    ofn.lpstrFile = stackbuffer;
    ofn.nMaxFile = sizeof(stackbuffer);

    if (GetSaveFileName(&ofn))
    {
        std::string filename = buffer;
        return filename;
    }
    return "";
}


so verwende ich das teil immer. pattern ist hier

Zitat von »"MSDN"«


Pointer to a buffer containing pairs of null-terminated filter strings. The last string in the buffer must be terminated by two NULL characters.

The first string in each pair is a display string that describes the filter (for example, "Text Files"), and the second string specifies the filter pattern (for example, "*.TXT"). To specify multiple filter patterns for a single display string, use a semicolon to separate the patterns (for example, "*.TXT;*.DOC;*.BAK"). A pattern string can be a combination of valid file name characters and the asterisk (*) wildcard character. Do not include spaces in the pattern string.


HWND wnd ist das parentfenster, das für die zeit des dialoges
stillgelegt wird
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

3

02.07.2009, 20:35

Wenn du jetzt nicht unbedingt WinAPI lernen möchtest wäre es vlt komfortabler GTK, Qt, wxWidgets o.ä. zu benutzen.

4

03.07.2009, 15:58

@Gotbread
Perfekt, genau das habe ich gesucht! Danke!

@K-Bal
Ja, ich habe das auch schon in Erwägung gezogen. Falls das mit der
WinAPI zu viel Arbeit wird, werd ich darauf zurückgreifen.
MfG Shiver!

„Ideen sind nur Ausgangspunkte. Um zu wissen, was man zeichnen will, muss man zu zeichnen anfangen.“ Pablo Picasso

Ibot Development - Mein Weg zum eigenen 2D RPG

Werbeanzeige