Prb-gebruikersformulier

Hallo

 

In solidworks heb ik een macro knop gemaakt.

 

Als ik op de knop klik, start het gebruikersformulier achter solidworks en dat is vervelend voor de gebruiker om naar het gebruikersformulier te moeten zoeken. (userform.show)

U moet dan het solidworks-venster minimaliseren en vervolgens opnieuw openen zodat het gebruikersformulier wordt weergegeven.

 

Maar het is pas bij de eerste opening dat dit probleem zich voordoet...

 

Enig idee?

 

Bij voorbaat dank,

 

JB

Ik weet niet al te veel over macro's, maar misschien het begin van een antwoord hier

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

 

of de

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

 

Ik hoop dat ik nuttig voor je ben geweest

 

Blije papa

Hallo, we moeten deze regel toevoegen:

 

Application.WindowState = xlGeminimaliseerd
UserForm1.Toon wbmodeless

 

 

Hou ons op de hoogte! ;)

Hallo

 

Een parcours om te testen:

 

Privé Sub UserForm_Activate()

Met mij

     . StartUpPosition = 3

     . Breedte = Toepassing.Breedte

     . Hoogte = Toepassing.Hoogte

     . Links = 0

     . Boven = 0

Eindigen met

Einde Sub

 

Lente:

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

 

Controleer of de eigenschap van het gebruikersformulier ShowModal = True

 

Maar het is een bekende pb op sommige versies, je moet gaan door Windows API's om te forceren

Het raam op de voorgrond

 

in de rubriek Aangifte

 

Private Declare Function FindWindow lib "user32.dll" aka "FindWindowA" ( _ ByVal lpClassName als String, _ ByVal lpWindowName als string) zo lang

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

Privé Const HWND_TOPMOST = -1

Privé Const HWND_NOTOPMOST = -2

Privé Const SWP_NOMOVE = &H2

Privé Const SWP_NOSIZE = &H1

Privé mlHwnd zo lang

 

en bij het activeren van het formulier

 

SetWindowPos mlHwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Goud SWP_NOSIZE

7 likes

Dank u voor uw antwoorden,

 

Lucas

Ik ==>   . Breedte = Toepassing.Breedte

die een runtime-fout '438' creëerde

Eigenschap of methode die niet wordt ondersteund door dit object

 

Jfaradon

SetWindowPos 

maakt me sub of functie niet gedefinieerd

 

Bart

WBBmodeless

variabele niet gedefinieerd

 

Aan de andere kant, nu als solidworks open staat en ik vensters activeer (internet, word, excel...) blijven ze achter.

 

Ik denk dat het een van de oplossingen is die een parameter heeft gewijzigd (Jfaradon of Lucas)

Het is waar dat mijn kopiëren en plakken een beetje snel ging; Bovendien was het nodig om te corrigeren in syntaxis 64

 

I, maar hier is een voorbeeld van een macro met dit beheer via Windows API van de voorgrond


exemple_topmost.zip
6 likes

Hallo

 

Probeer een kleine:

Me.topmost=true

 

Op mijn kleine apps in VB.Net het werkt.

Vriendelijke groeten.

 

Ik vergat te vermelden dat ik programmeer in VBA.

 

Misschien is dat de reden waarom deze codes niet werken...

 

De solidworks-help kent "topmost" of "SetWindowPos" niet. 

 

Klassiek, maar het zou uw probleem moeten oplossen:

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

FP