| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | Innovationstag mit SolidCAM und Plogmann bei HEDELIUS in Meppen |
Autor
|
Thema: API: MSG-Boxen unter Win7/64Bit (2731 mal gelesen)
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 16. Apr. 2012 19:53 <-- editieren / zitieren --> Unities abgeben:
Hallo an alle, damit auch MSG-Boxen unter Win7/64Bit im Vordergrund zu sehen sind, habe ich die Schreibweise MsgBox " Kein Dokument geöffnet!", vbCritical bisher durch diese Ersetzt. Call MsgBox("Kein Dokument geöffnet!", vbSystemModal, "Information") Allerdings funktioniert dies nicht in dieser Schreibweise. vbAW = MsgBox("Die Datei ist nicht freigegeben, soll trotzdem gedruckt werden?", vbSystemModal + vbYesNo) If vbAW = vbNo Then
Die MSG-Box kommt nicht in den Vordergrund. Gibt es eine Alternative, bei der die Box im Vordergrund erscheint? Für sachdienliche Hinweise freut sich………. Grüße, Andi
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Winni-two Mitglied Ing. Maschb.
Beiträge: 154 Registriert: 12.03.2010 SW 2021 SP5 Intel Xenon W2135 @3.7GHz Win 10 64 bit Graka: Nvidia Quadro P4000 32 GB Ram
|
erstellt am: 16. Apr. 2012 19:59 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 16. Apr. 2012 23:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Winni, danke für die Antwort. Nun habe ich es mit folgendem Test-Code mal Probiert. Dim vbAW As Long vbAW = swApp.SendMsgToUser2("Wie hättest du es denn gerne!", swMbQuestion, swMbYesNo) If vbAW = 6 Then Call MsgBox("Du hast Ja gesagt!", vbSystemModal, "Ja-Sager") Else Call MsgBox("Du hast Nein gesagt!", vbSystemModal, "Nein-Sager") End If Leider bleibt auch diese MsgBox hinter dem Hauptfenster zurück. Ich muss nun darauf achten, dass sie räumlich nebeneinander Positioniert werden. Aber sicherlich bleibt sie bei dieser Methode nicht hinter dem SW-Fenster verborgen, was noch schlimmer ist. Evtl. fällt dir noch etwas anderes ein. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 17. Apr. 2012 07:40 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Winni-two Mitglied Ing. Maschb.
Beiträge: 154 Registriert: 12.03.2010 SW 2021 SP5 Intel Xenon W2135 @3.7GHz Win 10 64 bit Graka: Nvidia Quadro P4000 32 GB Ram
|
erstellt am: 17. Apr. 2012 09:40 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo Andi Kann es sein, dass du das du das Schriftfeld Formular mit FindWindow und SetWindowPos in den Vordergrund holst? Falls ja dann versuch mal: Int8 = FindWindow(vbNullString, "Schriftfeld Informationen") Int9 = SetWindowPos(Int8, -1, 0, 0, 0, 0, 3) Int9 = SetWindowPos(Int8, -2, 0, 0, 0, 0, 3) Bei mir ist dann die MsgBox im Vordergrund. Mfg Winni [Diese Nachricht wurde von Winni-two am 17. Apr. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 17. Apr. 2012 18:46 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Winni-two:
Kann es sein, dass du das Schriftfeld Formular mit FindWindow und SetWindowPos in den Vordergrund holst?
Hallo Winni, Gratuliere deiner Glaskugel, haarscharf kombiniert, ja so ist es. Ich habe deinen Vorschlag eingebaut und er funktioniert auch, allerdings mit einem unschönen Efekt. Für die Zeit, da eine Msg-Box auf ist, verschwindet das Schriftfeld Formular auch hinter das Fenster von SolidWorks und kommt wieder zum Vorschein nach beenden der Box. Man hat den Eindruck, das Makro wird aus- und eingeblendet. Schöner wäre es, wenn das Makro noch vor SolidWorks bleibt und die Msg-Box zuoberst. Dies funktioniert ja auch schon mit den einfachen Call MsgBoxen. Nur die Dialog-Msg-Boxen machen das nicht. Solange ich noch Platz habe, die Boxen neben mein Fenster zu plazieren, benötige ich diesen Wunsch noch nicht. Nur für den Fall, dass ich Platzprobleme bekomme, ist deine jetzige Lösung wenigstens ein Ansatz. Besten Dank erstmal, und wenn du noch eine Idee hast, nur zu. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 17. Apr. 2012 19:17 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von StefanBerlitz:
du hattest doch selbst auch schon im Beitrag Makro Meldungsfenster im Hintergrund geschrieben und ein paar der Hinweise dort ausprobiert,
Hallo Stefan, du hast schon recht, und seit diesem Beitrag habe ich meine User-Forms im Griff (hoffentlich). Mit den Call MsgBoxen habe ich auch keine Probleme. Nur die Boxen die z.B. eine Ja/Nein Option haben, wollen noch nicht wie ich. In dem von dir erwähnten Beitrag habe ich dafür keine Lösung gesehen, oder ich habe etwas übersehen. Winni hat ja nun schon eine fast optimale Lösung geboten, die noch nicht Mal schwer umzusetzen ist, sodass jemand wie ich das noch hinbekommt. Ich bezeichne mich was API angeht immer noch als Jungstift. Grüße auch, Andi
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 18. Apr. 2012 16:22 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo Andi ohne jetzt alles genau gelesen zu haben hast Du es schon mal mit "VbMsgBoxSetForeground" versucht? z.B. antw = MsgBox("Sind Sie sicher?", vbMsgBoxSetForeground + vbYesNo, "Meldung") in der Hilfe steht dazu VbMsgBoxSetForeground 65536 Legt das Meldungsfeld als Vordergrundfenster fest ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 18. Apr. 2012 18:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Heinz, danke für diese Variante, aber sie verhält sich genauso wie die swApp.SendMsgToUser2 Variante von Winni. Die Box kommt vor SolidWorks, aber hinter dem Formular des Makros. Es ist schon komisch, da die einfachen Call MsgBoxen vor dem Formular sind, kann das hervorbringen des Formulars über FindWindow und SetWindowPos nicht so dominant sein, dass da nicht noch andere Boxen davor können. Aber warum kann dies die Call MsgBox, aber deine Variante nicht? Schon komisch? Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 19. Apr. 2012 06:07 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 19. Apr. 2012 09:55 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo, wenn wir schon mal dabei sind: Ich habe der Einfachheit halber in etlichen Makros die "InputBox" vom Windows-VBA eingebaut. Nun gibt es da keine Parameter zum Steuern, daß dieses Fenster in den Vordergrund kommt. Gibt es so eine Methode in SWX , oder kann ich dieses Fenster mit einem anderen Trick nach vorne Bringen? Viele Grüße Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|