malan |
» 2010-12-29 00:57:50 Nie wiem, co masz dokładnie na myśli... Przeciąganie plików na okno, a przeciąganie plików na "program" to dwie różne rzeczy. W jednym przypadku, program został już uruchomiony, a w drugim jest uruchamiany. Powiedz może, co chcesz osiągnąć, to będzie nam łatwiej Ci pomóc. Kod, który podałem po części realizuje " drag and drop" (czyli- przeciąganie plików na "program" |
). Po części, bo oczywiście odczytanie ścieżki do pliku, na którym będziemy pracować to dopiero początek :). |
|
kizia Temat założony przez niniejszego użytkownika |
» 2010-12-29 01:05:14 Tak wiem że to początek, ale ze ścięzką już sobie poradzę.
Mam program napisany w C++ z użyciem SDL i nie mam konsoli, tylko mam okno windosowkie.
I teraz chciałbym uzyskać właście w taki jakiś sposób jak pokazałeś ścięzkę do pliku przeciąganego na
EDIT : .
okno programu
Oto co chcę osiągnąć :
W programie klikasz na przycisk "Dodaj zdjęcie" i wtedy wyświetla Ci się tabelka z danymi do wypełnienia nanosisz na nią myszką to zdjęcie i zdjęcie wyświetla się w dolnym rogu tabelki a ty wypełniasz dane w tabelce xD. |
|
malan |
» 2010-12-29 01:29:48 ...C++ z użyciem SDL i nie mam konsoli, tylko mam okno windosowkie. |
Za pomocą jakiej biblioteki tworzysz okno? SDL, czy WinAPI, bo to jest ważne. |
|
kizia Temat założony przez niniejszego użytkownika |
» 2010-12-29 01:31:25 SDL, a dokładniej :
SDL_Surface* = SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_BBP,SDL_SWSURFACE) ; |
|
malan |
» 2010-12-29 02:05:58 Przekopałem dokumentację SDL, ale nic nie znalazłem o możliwości przeciągania plików na okno... Za to "napisanie" tego w WinAPI zajęło mi... minutę(?) #include <windows.h>
LRESULT CALLBACK WindowProcedure( HWND, UINT, WPARAM, LPARAM );
char szClassName[] = "CodeBlocksWindowsApp";
int WINAPI WinMain( HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow ) { HWND hwnd; MSG messages; WNDCLASSEX wincl; wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof( WNDCLASSEX ); wincl.hIcon = LoadIcon( NULL, IDI_APPLICATION ); wincl.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); wincl.hCursor = LoadCursor( NULL, IDC_ARROW ); wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground =( HBRUSH ) COLOR_BACKGROUND; if( !RegisterClassEx( & wincl ) ) return 0; hwnd = CreateWindowEx( 0, szClassName, "Code::Blocks Template Windows App", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, HWND_DESKTOP, NULL, hThisInstance, NULL ); DragAcceptFiles( hwnd, true ); ShowWindow( hwnd, nCmdShow ); while( GetMessage( & messages, NULL, 0, 0 ) ) { TranslateMessage( & messages ); DispatchMessage( & messages ); } return messages.wParam; }
LRESULT CALLBACK WindowProcedure( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { case WM_DROPFILES: { HDROP fDrop =( HDROP ) wParam; UINT nBufSize = DragQueryFile( fDrop, 0, NULL, 0 ); TCHAR * fName = new TCHAR[ nBufSize ]; DragQueryFile( fDrop, 0, fName, 5000 ); MessageBox( hwnd, fName, TEXT( "Error!" ), MB_OK ); DragFinish( fDrop ); delete[] fName; } break; case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hwnd, message, wParam, lParam ); } return 0; } |
|
kizia Temat założony przez niniejszego użytkownika |
» 2010-12-29 02:09:14 No właśnie wiem, zacząłem pisać program w SDL, i teraz strasznie ciężko robi się jakiekolwiek "okienka".
Muszę się nauczyć WinApi i przerobić cały program.
Czyli z SDL'a ścieżki do pliku poprzez przeciągnięcie nie uzyskam? |
|
malan |
» 2010-12-29 11:22:56 zacząłem pisać program w SDL, i teraz strasznie ciężko robi się jakiekolwiek "okienka" |
SDL to biblioteka przystosowana do pisania gier, a nie aplikacji okienkowych. Jeżeli chcesz tworzyć aplikacje okienkowe, to zainteresuj się wxWidgets, Qt, (ewentualnie) WinAPI. Czyli z SDL'a ścieżki do pliku poprzez przeciągnięcie nie uzyskam? |
Nie mogę Ci odpowiedzieć na to pytanie. Przekopywałem wczoraj trochę dokumentację SDLa, ale nic takiego nie znalazłem. Co nie znaczy, że tego tam nie ma. Spróbuj poszukać trochę sam- może coś znajdziesz :). |
|
kizia Temat założony przez niniejszego użytkownika |
» 2010-12-29 22:03:27 Prawie jeszcze do tematu.
Jak sprawdzić ile jest linijek w pliku? |
|
1 « 2 » 3 4 |