[WinApi] Okno dialogowe odczytu pliku, a kopiowanie nazwy pliku po kliknięciu.
Ostatnio zmodyfikowano 2014-07-19 16:04
DzanoMaro Temat założony przez niniejszego użytkownika |
[WinApi] Okno dialogowe odczytu pliku, a kopiowanie nazwy pliku po kliknięciu. » 2014-07-19 14:30:03 Siemka. :) Jestem nowy na forum to mój pierwszy post, więc proszę o wyrozumiałość. Od niedawna robię kurs z tej strony poświęconej WinApi. Mam jeden problem z kodem z tego kursu http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Podstawy/Okna-dialogowe-cz-6/189. Mianowicie po otworzeniu okna dialogowego i kliknięciu na plik np. bitmapy nazw pliku powinna zostać skopiowana do buforu, lecz tak się nie dzieje i bufor jest pusty. Tu fragment kodu: LPSTR buffer;
UINT_PTR CALLBACK OFNHookProc( HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam ) { switch( uiMsg ) { case WM_NOTIFY: { NMHDR * pnmhdr =( NMHDR * ) lParam; OFNOTIFY * ofnot =( OFNOTIFY * ) lParam; if( pnmhdr->code == CDN_SELCHANGE ) { SendMessage( hdlg, CDM_GETFILEPATH, sizeof( buffer ),( LPARAM ) & buffer ); MessageBox( NULL, buffer, "zawartosc bufora", MB_ICONEXCLAMATION | MB_OK ); FreeBitmap(); g_hBitmap =( HBITMAP ) LoadImage( GetModuleHandle( NULL ), buffer, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ); } else if( pnmhdr->code == CDN_FILEOK ) { FreeBitmap(); } } break; return 0; }
Powiecie dlaczego tak jest? Oraz jak to naprawić? Pewnie to jakiś głupi błąd a nie umiem się go doszukać ;( Z góry dzięki za pomoc. Pozdro. |
|
pekfos |
» 2014-07-19 14:46:42 |
|
DzanoMaro Temat założony przez niniejszego użytkownika |
» 2014-07-19 16:04:14 Już sobie poradziłem. ;) jeśli ktoś też ma problem to wklejam nowy kod ;) case WM_NOTIFY: { NMHDR * pnmhdr =( NMHDR * ) lParam; char buffer[ MAX_PATH ] = ""; if( pnmhdr->code == CDN_SELCHANGE ) { SendMessage( GetParent( hdlg ), CDM_GETFILEPATH,( WPARAM ) MAX_PATH,( LPARAM ) buffer ); FreeBitmap(); g_hBitmap =( HBITMAP ) LoadImage( GetModuleHandle( NULL ), buffer, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ); InvalidateRect( hdlg, NULL, true ); }
Zamykam temat. |
|
« 1 » |