ShowWindow(Form1->Handle,SW_SHOWNORMAL);
-
Hi,
Nachdem ich ein minimiertes Fenster mit
ShowWindow(Form1->Handle,SW_SHOWNORMAL);
sichtbar mache funktioniert das minimieren nicht mehr.
wer kann mir da helfen ?
bis denne
-
1. "Geht nicht" ist eine bisschen dürftige Fehlerbeschreibung.
2. Das hat nichts mit Standard C++ zu tun, also falsches Forum.ShowWindow
scheint WinAPI zu sein,Form1->Handle
dagegen C++/CLI. Bei C++/CLI würde man dies aber wohl über Form::WindowState machen.
3. Du solltest die Dokumentation zuShowWindow
zuerst lesen, bevor du die Funktion anwendest:
http://msdn.microsoft.com/en-us/library/ms633548.aspx
Dann würdest du zum Beispiel rausfinden, dass eigentlichSW_RESTORE
der richtige Wert wäre.Grüssli
-
Das Problem besteht weiterhin.
Mein Programm überprüft beim starten ob es schon gestartet wurde.
Alles funktioniert wunderbar ABER sobald ich mein Programm minimiere
und die exe erneut starte die wiederum überprüft ob das programm schon gestartet ist kann ich mein Programm nicht mehr minimieren.Code in der Project.cpp
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { const char* Pname = "Form1"; //**************** mehrmals start verhindern ***************** HANDLE hMutex=OpenMutex(MUTEX_ALL_ACCESS, 0, Pname); if(!hMutex) { hMutex=CreateMutex(0, 0, Pname); } else { //ShowMessage("Das Programm läuft schon"); HWND hWnd=FindWindow(0, Pname); SetForegroundWindow(hWnd); ShowWindow(hWnd, SW_SHOW); //ShowWindow(hWnd, SW_RESTORE); //SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW); // DWORD style = GetWindowLong(hWnd, GWL_STYLE); // style ^= WS_VISIBLE; // SetWindowLong(hWnd, GWL_STYLE, (LONG)style); return 0; } Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); //********************************* ReleaseMutex(hMutex); //**************************** } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; }
ich bekomms einfach nicht auf die Reihe,
weil ich einfach zu BLÖDE bin.
-
Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hi,
genau das Problem habe ich auch.
Weiss den keiner wie man das Lösen kann?
-
Indem man nicht C++/CLI sondern C++ mit WinApi, MFC oder Qt nutzt
-
Ich denke das es so ist
Hier der Code noch mal
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR lpCmdLine, int) { //*********** Einfügen ********************** HANDLE hMutex = OpenMutex(MUTEX_ALL_ACCESS,0,"CEditor"); if(!hMutex) { hMutex = CreateMutex(0,0,"CEditor"); } else { HWND hWnd = FindWindow(0,"CNC-Editor"); ShowWindow(hWnd, SW_MAXIMIZE); SetForegroundWindow(hWnd); AnsiString sPath; if (AnsiPos('"', lpCmdLine) != 0) { sPath = lpCmdLine; } else { AnsiString sPath1 = lpCmdLine; AnsiString sPath2 = getcwd(lpCmdLine, MAX_PATH); sPath = sPath2 +"\\"+ sPath1; } if(strlen(sPath.c_str()) != 0) { COPYDATASTRUCT cds; cds.dwData=NULL; cds.cbData=strlen(sPath.c_str())+1; cds.lpData=sPath.c_str(); SendMessage(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds); } return 0; } //********** Ende Einfügen ****************** Application->Initialize(); Application->Title = "CNC-Editor"; Application->CreateForm(__classid(TMainForm), &MainForm); Application->CreateForm(__classid(TAboutBox), &AboutBox); Application->Run(); //*********** Einfügen ********************** ReleaseMutex(hMutex); //********** Ende Einfügen ****************** return 0; }
Wen er dann die Daten bekommen hat kann man nicht mehr Minimieren
Erst dann wieder wen man Wiederherstellen gemacht hat