fenster layer?
-
danke...ich hab das mit setwindowblabla mal ausprobiert, hab aber immernoch den gleichen fehler! das fenster kommt vor ne editbox und wird an der stelle dann weiss, als würde es nie neugezeichnet ! wie krieg ichs hin, dass das fenster wirklich einfach wie eine fehlermeldung oder sowas VOR allem andren ist? wenn ich den style WS_POPUPWINDOW benutze ist das fenster garnicht erst zu sehn!
-
einfach warten bis das Fenster die message WM_KILLFOCUS erhält und dann 0 returnen. Damit kann dien Fenster den Focus nicht verlieren.
Mfg.
-
Indem Du den Dialog Modal machst, also als hwndParent dein Hauptfenster angibst.
Warum benutzt Du zum Dateien öffnen nicht den Common Dialog (GetOpenFileName)?
-
wenn di dialogbox benutzt solltest ein parent fenster angeben.
-
super danke!
is der common dialog nicht mfc?edit: ich hab doch das hauptfenster als parent?!
HWND fileSearch = CreateWindowEx ( WS_EX_TOOLWINDOW, szName, "Oeffnen", WS_CHILD | WS_OVERLAPPEDWINDOW /*| WS_POPUPWINDOW*/ , 320, 5, 400, 150, hwnd, (HMENU)3, NULL, NULL ); ShowWindow (fileSearch, SW_SHOWNORMAL); UpdateWindow (fileSearch);
-
vieeeeell zu laaaangsam.

nein der common dialog ist kein mfc.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/CommonDialogBoxLibrary/UsingCommonDialogBoxes.asp#open_file
-
zum edit von pixartist
ich dacht wir reden über dialoge.
-
??? nein ich meinte mit dialog ein fenster genau wie den common dialog...ich nehm jetzt mal den ^^ nur hab ich das problem, dass ich nicht weiss wie ich denn nun an den inhalt der datei komme! das is im msdn auchnicht beschrieben...?
OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HANDLE hf; // Los Gehts (MSDN krams) //Memory leeren: ZeroMemory(&ofn, sizeof(ofn)); //Grösse, Owner, File... ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. // //Anm,: ??? ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); //oO wat is wacken? SetWindowText(textField, /*Woher krieg ich den inhalt der datei??*/); SetWindowText(fileZeiger, szFile);edit achja un könnt ihr mir nochmal erklären was der unterschied zwischen dialog und fenster ist?
-
Na, GetOpenFileName / GetSaveFileName liefert Dir den Pfad zur Datei, die der User geöffnet/gespeichert haben will.
Wenn Du den Pfad hast, mußt Du sie schon selbst öffnen (CreateFile... OPEN_EXISTING) und auslesen (ReadFile...) bzw. schreiben (WriteFile...)
-
pixartist schrieb:
edit achja un könnt ihr mir nochmal erklären was der unterschied zwischen dialog und fenster ist?
im prinzip sind beides fenster.
ich ging nur davon aus das dein dialog/fenster
mit dialogbox oder ähnliches aufrufst.aber vergleiche selber
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/DialogBoxes.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Windows.asp
-
aso
ja danke habs grad auch im msdn gefunden... trotzdem klappts noch nicht
memory errorunsigned long nRead = GetFileSize(hf,NULL); char *lpbuffer = new char[nRead]; lpbuffer[nRead] = 0; ReadFile( hf, lpbuffer, nRead-1, NULL, NULL );
-
TCHAR* DiaOpen(bool open) { TCHAR* buffer = new TCHAR[300]; ZeroMemory(buffer, 300); lstrcpy(buffer,TEXT("*")); OPENFILENAME ofn; ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hMain; ofn.hInstance = hInstance; ofn.lpstrFilter = TEXT("All File Types"); ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = NULL; ofn.nFilterIndex = 14; ofn.lpstrFile = buffer; ofn.nMaxFile = 300; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = NULL; ofn.lpstrInitialDir = NULL; ofn.lpstrTitle = TEXT("Öffnen - Titel"); if (!(open)) ofn.lpstrTitle = TEXT("Speicher - Titel"); ofn.Flags = OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_NONETWORKBUTTON|OFN_PATHMUSTEXIST; ofn.nFileOffset = NULL; ofn.nFileExtension = NULL; ofn.lpstrDefExt = NULL; ofn.lCustData = NULL; ofn.lpfnHook = NULL; ofn.lpTemplateName = NULL; if( (!(GetOpenFileName(&ofn))) && (0==CommDlgExtendedError())) lstrcpy(buffer,TEXT("CANCELLED")); //Wennnd er suer beendet oder abbricht return buffer; }
-
aber wieso geht das denn nicht:
OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HANDLE hf; // Los Gehts (MSDN krams) //Memory leeren: ZeroMemory(&ofn, sizeof(ofn)); //Grösse, Owner, File... ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. // //Anm,: ??? ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); //oO wat is wacken? unsigned long nRead = GetFileSize(hf,NULL); char *lpbuffer = new char[nRead]; lpbuffer[nRead] = 0; SetFilePointer(hf,0,NULL,FILE_BEGIN); char len; itoa(int(nRead),&len,36); MessageBox(NULL, &len, "",0); /*ReadFile( hf, lpbuffer, nRead, NULL, NULL ); */ SetWindowText(textField, lpbuffer); SetWindowText(fileZeiger, szFile);edit: LOL die funktion da oben gibt nur den filename zurück oO
-
Ist dir dann jetzt alles klar, oder gibt's noch Probleme?
-
wahahah ich kriege mit tolgas funktion doch immernoch nur den DATEINAMEN zurück! ich will aber den dateiinhalt! und bei meiner funktion kriege ich nen memory error obwohl ich mich an msdn halte!!
OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HANDLE hf; // Los Gehts (MSDN krams) //Memory leeren: ZeroMemory(&ofn, sizeof(ofn)); //Grösse, Owner, File... ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. // //Anm,: ??? ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); //oO wat is wacken? unsigned long nRead = GetFileSize(hf,NULL); char *lpbuffer = new char[nRead]; lpbuffer[nRead] = 0; SetFilePointer(hf,0,NULL,FILE_BEGIN); char len; itoa(nRead,&len,36); MessageBox(NULL, &len, "",0);//<--------------HIER ReadFile( hf, lpbuffer, nRead, NULL, NULL ); SetWindowText(textField, lpbuffer); SetWindowText(fileZeiger, szFile);bei der msg box bekomme ich seltsamerweise immer sowas: 13c oder 2f5 oder sowas! auf jedenfall krieg ich nen memory fehler beim ausführen des ReadFile() !!! wiesoe

-
- len sollte eine grösse habe wie zb 20
- der msgbox übergibst du adresse von len, & weglassen
-
char *len = new char[5]; len[5] = 0; itoa(nRead,len,36); MessageBox(NULL, len, "",0);so?
macht keinen unterschied, aber die msgbox ist ja nicht das problem, sonder ReadFile() !
die msgbox hab ich ja nur um den wert zu überprüfen!edit:irgendwas verweist auf 0x000000 ?! deswegen der memory error..
-
pixartist schrieb:
edit:irgendwas verweist auf 0x000000 ?! deswegen der memory error..
"irgendwas"?
Was denn genau? Bei mir zeigt "irgendwas" auch immer auf NULL...

Außerdem sehe ich nirgends, wo Du die Datei auch ausliest... nirgendwo wird bei Dir ReadFile() aufgerufen... oder sehe ich's nur nicht?
-

also erstmal: 0x77e5abd2 verweist auf Speicher 0x00000000 der vorgang written konnte nicht auf den speicher ausgeführt werden.
und zweitens: natürlich benutze ich readfile!!
OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HANDLE hf; // Los Gehts (MSDN krams) //Memory leeren: ZeroMemory(&ofn, sizeof(ofn)); //Grösse, Owner, File... ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. // //Anm,: ??? ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); //oO wat is wacken? unsigned long nRead = GetFileSize(hf,NULL); char *lpbuffer = new char[nRead]; lpbuffer[nRead] = 0; SetFilePointer(hf,0,NULL,FILE_BEGIN); char len; itoa(nRead,&len,36); MessageBox(NULL, &len, "",0);//<--------------HIER ReadFile( //<----------------ReadFile() !!! hf, //---- lpbuffer, //---- nRead, //---- NULL, //---- NULL //---- ); //---- Bis hier! SetWindowText(textField, lpbuffer); SetWindowText(fileZeiger, szFile);
-
pixartist schrieb:
also erstmal: 0x77e5abd2 verweist auf Speicher 0x00000000 der vorgang written konnte nicht auf den speicher ausgeführt werden.
Also mit der Angabe kann hier keiner was anfangen... welcher Zeiger zeigt denn auf NULL (frag Deinen Debugger mal, der weiß sowas).