Formularz użytkownika Prb

Witam

 

W solidworks utworzyłem przycisk makra.

 

Kiedy klikam na przycisk, formularz użytkownika uruchamia się za solidworks, co jest denerwujące dla użytkownika, który musi szukać formularza użytkownika. (formularz użytkownika.pokaż)

Następnie należy zminimalizować okno solidworks, a następnie ponownie je otworzyć, aby wyświetlić formularz użytkownika.

 

Ale dopiero przy pierwszym otwarciu pojawia się ten problem...

 

Jakiś pomysł?

 

Z góry dzięki,

 

JB

Nie znam się zbytnio na makrach, ale może to początek odpowiedzi tutaj

http://forum.hardware.fr/hfr/Programmation/VB-VBA-VBS/premier-plan-userform-sujet_77278_1.htm

 

lub

http://www.excel-downloads.com/forum/200197-garder-un-userform-au-premier-plan-de-lecran-windows.html

 

Mam nadzieję, że byłem dla ciebie przydatny

 

Szczęśliwy tata

Witam, powinniśmy dodać tę linijkę:

 

Application.WindowState = xlZminimalizowane
UserForm1.Pokaż wbmodeless

 

 

Informuj nas na bieżąco! ;)

Witam

 

Tor do przetestowania:

 

Prywatny Sub UserForm_Activate()

Ze mną

     . PozycjaStartUpPosition = 3

     . Szerokość = Zastosowanie.Szerokość

     . Wysokość = Zastosowanie.Wysokość

     . Lewo = 0

     . Góra = 0

Zakończ się na

Koniec subwoofera

 

Wiosna:

http://www.commentcamarche.net/forum/affich-27509585-userform-reste-en-arriere-plan

 

Sprawdź, czy właściwość formularza użytkownika ShowModal = True

 

Ale jest to znany pb w niektórych wersjach, musisz przejść przez interfejsy API systemu Windows, aby wymusić

Okno na pierwszym planie

 

w sekcji Deklaracja

 

Private Declare Function FindWindow lib "user32.dll" aka "FindWindowA" ( _ ByVal lpClassName as String, _ ByVal lpWindowName as string) tak długo

Private Declare Function SetWindowPos Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, _ ByVal X As Long, _ ByVal Y As Long, _ ByVal cx As Long, _ ByVal cy As Long, _ ByVal wFlags As Long) As Long

Prywatny HWND_TOPMOST Const = -1

Prywatny Konst HWND_NOTOPMOST = -2

Szeregowy SWP_NOMOVE = &H2

Szeregowy SWP_NOSIZE = &H1

Prywatny mlHwnd tak długo

 

i w aktywacji formularza

 

SetWindowPos mlHwnd, HWND_NOTOPMOST, 0, 0, 0, 0 SWP_NOMOVE Złoty SWP_NOSIZE

7 polubień

Dziękuję za odpowiedzi,

 

Lucas

I ==>   . Szerokość = Zastosowanie.Szerokość

który utworzył błąd wykonania "438"

Właściwość lub metoda nieobsługiwana przez ten obiekt

 

Jfaradon powiedział:

SetWindowPos 

sprawia, że jestem sub lub funkcja nie jest zdefiniowana

 

Bart

WBMODELESS (bez moderów)

zmienna niezdefiniowana

 

Z drugiej strony, teraz, gdy solidworks jest otwarty, gdy aktywuję okna (internet, word, excel...), pozostają w tyle.

 

Myślę, że jest to jedno z rozwiązań, które modyfikowało parametr (Jfaradon lub Lucas)

To prawda, że moje kopiowanie i wklejanie było nieco szybkie; Ponadto konieczne było poprawienie składni 64

 

I, ale oto przykład makra z tym zarządzaniem za pomocą Windows API na pierwszym planie


exemple_topmost.zip
6 polubień

Witam

 

Wypróbuj mały:

Me.topmost=prawda

 

Na moich małych aplikacjach w VB.Net to działa.

Pozdrowienia.

 

Zapomniałem wspomnieć, że programuję w VBA.

 

Może dlatego te kody nie działają...

 

Pomoc solidworks nie zna "topmost" ani "SetWindowPos". 

 

Klasyczny, ale powinien rozwiązać Twój problem:

http://support.microsoft.com/kb/184297/fr

FP