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

Tobiking

1x Rätselkönig

  • »Tobiking« ist der Autor dieses Themas
  • Private Nachricht senden

1

21.09.2003, 18:58

Welchen Dialog zum "Ordner auswählen" ?

Da mein PC nach dem installieren des DXSDKs immer spinnt (siehe Offtopic) wollte ich nun ein bisschen mehr Winapi machen. Dort gibt es ja diese schönen Vorgegebenen Dialoge. Den für Öffnen und Speichern von Dateien kenne ich. Aber ich finde den nicht wo es so eine Ordner auswahl gibt. Den sieht man so oft in Programmen der müsste auch standard sein und ich glaube auch das er es ist. Habe in der MSDN gesucht und nichts gefunden. Ich hoffe ihr wisst was ich meine und wißt den Name davon oder irgendwas genaueres.

2

21.09.2003, 20:04

Sofern ich dich nett falsch verstanden habe, müstest du mit den zwei Funktionen GetOpenFileName und GetSaveFileName glücklich werden :)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

21.09.2003, 20:20

@Stephan: Nein, er sucht den Dialog, wo man einen Ordner auswählen kann, nicht eine Datei.

Die Funktion, die Du suchst, heißt SHBrowseForFolder (ich habe eine (!!!) Minute gebraucht, um das mit Hilfe von Google rauszufinden).

4

21.09.2003, 20:47

Dann hatte ich ihn doch falsch verstanden :rolleyes:

Aber gut zu wissen, das es diese Funktion gibt ;D
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Tobiking

1x Rätselkönig

  • »Tobiking« ist der Autor dieses Themas
  • Private Nachricht senden

5

21.09.2003, 21:51

Danke das war genau das was ich gesucht habe. Habe es auch mit google versucht aber mich auf die common Dialoge festgesetzt wozu das "Ding" irgendwie nicht zählt. Naja soll mal jemand draus schlau werden.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

21.09.2003, 21:52

Ich habe nach "Select folder dialog box" gesucht.
Klappt es denn jetzt auch?

Tobiking

1x Rätselkönig

  • »Tobiking« ist der Autor dieses Themas
  • Private Nachricht senden

7

21.09.2003, 22:06

Ja es klappt habe zuerst das ZeroMemory vergessen und ein paar Probleme gehabt aber nun läuft es. Sieht insgesamt so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Com initialisieren
CoInitialize();

...

BROWSEINFO Ordner;

ZeroMemory(&Ordner, sizeof(Ordner));

Ordner.hwndOwner = hwnd;
Ordner.pidlRoot = NULL;
Ordner.lpszTitle = "Bitte Verzeichnis wählen";
Ordner.ulFlags = BIF_RETURNONLYFSDIRS  | BIF_STATUSTEXT;
Ordner.lParam = 0;

LPITEMIDLIST ItemIDList;

ItemIDList = SHBrowseForFolder(&Ordner);

if(ItemIDList != NULL) 
{ 
    char strDir[1000]; 
    SHGetPathFromIDList(ItemIDList,strDir); 
}

...

CoUninitialize();

CuTeX0r

Treue Seele

Beiträge: 174

Wohnort: Deutschland

  • Private Nachricht senden

8

21.09.2003, 22:08

riecht nach FAQ?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

9

11.12.2003, 16:45

... aber igrndwie braucht man dazu doch noch Bibliotheken oder includes, funzt zumindest bei mit nicht, weil er die befehle nicht kennt, könnt ihr die noch die Includes bzw. Libs mal bitte dazuschreiben

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

10

14.12.2003, 19:31

Hab mich erkundigt (oder Hauptmann hats mir gesagt ;) )

der Header ist shlobj.h
die Import Lib ist die shell32.lib
DLL: shell32.dll version 4.0 or later

sollte eigentlich auf jedem System funktionieren:
Minimum operating systems Windows NT 4.0, Windows 95

Werbeanzeige