problem z CDM_GETFILEPATH

problem z CDM_GETFILEPATH
sidknot
  • Rejestracja:ponad 17 lat
  • Ostatnio:około miesiąc
0

Próbuję zaimplementować sobie program z tego kursu, w którym modyfikuje się okno dialogu otwierania pliku http://darkcult.gamedev.pl/kursy/apidlg6.html i oto mój kod http://wklej.org/id/282456/. Problem jest taki, że to wywołanie

SendMessage (hWnd, CDM_GETFILEPATH, MAX_PATH, (LPARAM)&Buffer);
nie chce pobrać mi ścieżki do pliku, w czym może tkwić problem ?

06
  • Rejestracja:prawie 20 lat
  • Ostatnio:około rok
  • Postów:2440
0

A co zwraca SendMessage?

sidknot
  • Rejestracja:ponad 17 lat
  • Ostatnio:około miesiąc
0

SendMessage zwraca 0

SA
  • Rejestracja:prawie 21 lat
  • Ostatnio:ponad 9 lat
  • Postów:513
0

Jeżeli używasz flagi OFN_EXPLORER, to hwnd w hooku określa 'child dialog', przez co musisz użyć funkcji GetParent:

Kopiuj
SendMessage(GetParent(hWnd), CDM_GETFILEPATH, MAX_PATH, (LPARAM)Buffer);

Poza tym, ciekawe po co tam jest flaga OFN_HIDEREADONLY, skoro chcemy odczytać plik, a nie zapisać? Ślepota bloggerów nie zna granic :)

Jeszcze jedno, co by się przydało w przypadku gdy fileopendialog pojawi się poza ekranem:

Kopiuj
if (pnmhdr->code == CDN_INITDONE)
{
	SendMessage(GetParent(hWnd), DM_REPOSITION, 0, 0);
}
sidknot
  • Rejestracja:ponad 17 lat
  • Ostatnio:około miesiąc
0

Dzięki sapero, pomogło :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.