VB : MassageBox- Position

Dieses Thema VB : MassageBox- Position im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Alexander16, 15. Okt. 2002.

Thema: VB : MassageBox- Position Wie kann ich bei einer MassageBox die Anzeigeposition ändern? z.B. damit die MassageBox rechts oben in der Ecke...

  1. Wie kann ich bei einer MassageBox die Anzeigeposition ändern?

    z.B. damit die MassageBox rechts oben in der Ecke erscheint.

    Vielen Dank 8)
     
  2. Achtung!
    Bei Verwendung von MassageBoxen erlischt die Allgemeine Betriebserlaubnis des Computers.
    Der PC wird zum medizinisch-technischen Gerät und unterliegt somit der Medizin-Geräteverordnung (MedGV). Eine jährliche sicherheitstechnische Überprüfung durch den TÜV ist somit vorgeschrieben. Die Position der MassageBox ist dabei unerheblich. Eine Anwendung am Patienten ist nur von entsprechend Physiotherapeutisch ausgebildetem Personal durchzuführen. ;) ;) ;)

    Mal im Ernst. Hab von VB leider keine Ahnung. Aber als Masseur hat es mich irgendwie gereizt. ;D
    Ciao
    Jürgen
     
  3. Ich wüsste nicht, dass man die Messagebox (Du meinst ja den msgbox-Befehl, oder?) positionieren kann. Aber ich lass mich gern eines Besseren belehren... :)
     
  4. gehen tut das natuerlich, allerdings mal wieder nur ueber die API =)
    also ich hab das mal in der kuerze der zeit zusammengebastelt.

    den folgenden code kopierst du in ein code-modul, welches du deinem projet hinzufuegst. dadurch hast du die funktion immer greifbar und kannst sie in anderen programmen auch noch verwenden. das code modul hab ich nicht kommentiert, da das wahrscheinlich fuer dich als anfaenger zu hoch ist...kannst ja mal drueberschauen, ob dus verstehst =)

    Code:
    Option Explicit
    
    'API deklarationen
    Public 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
    
    Public Declare Function SetWindowsHookEx Lib user32 Alias _
      SetWindowsHookExA (ByVal idHook As Long, ByVal lpfn As Long, _
      ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    
    Public Declare Function UnhookWindowsHookEx Lib user32 _
      (ByVal hHook As Long) As Long
    
    Public Declare Function GetCurrentThreadId Lib kernel32 () As Long
    
    'deklaration der constanten
    Public Const SWP_NOSIZE = &H1
    Public Const SWP_NOZORDER = &H4
    Public Const SWP_NOACTIVATE = &H10
    Public Const HCBT_ACTIVATE = 5
    Public Const WH_CBT = 5
    
    'deklaration der variablen
    Public hHook As Long
    Public posX As Long
    Public posY As Long
    
    'funktion zur positionierung
    Public Function WinProc(ByVal lMsg As Long, ByVal wParam As Long, _
      ByVal lParam As Long) As Long
     If lMsg = HCBT_ACTIVATE Then
       SetWindowPos wParam, 0, posX, posY, 0, 0, SWP_NOSIZE Or _
        SWP_NOZORDER Or SWP_NOACTIVATE
       UnhookWindowsHookEx hHook
     End If
     WinProc = False
    End Function
    
    'hauptfunktion
    Public Function MyMsgBox(ByVal message As String, Optional msgBtn _
     As VbMsgBoxStyle = vbOKOnly, Optional msgTitle As Variant = , _
     Optional msgHelp As Variant = 0, Optional msgContext As Variant _
     = 0, Optional ByVal txtPosX As Variant = , Optional ByVal _
     txtPosY As Variant = ) As VbMsgBoxResult
      
      If txtPosX <>  And txtPosY <>  Then
        Dim hInst As Long, Thread As Long
        Dim msg As String
        hInst = App.hInstance
        Thread = GetCurrentThreadId()
        hHook = SetWindowsHookEx(WH_CBT, AddressOf WinProc, _
          hInst, Thread)
        posX = CLng(txtPosX)
        posY = CLng(txtPosY)
      End If
      msg$ = message
      MyMsgBox = MsgBox(msg$, msgBtn, msgTitle, msgHelp, msgContext)
    End Function
    
    den folgen den code wie gewohnt in deinen formularen etc. verwenden. hab mal fuer die demonstration 2 buttons angelegt, damit du siehst, wie das aufgerufen wird im prinzip ganz einfach und gar net so viel neu =)

    Code:
    Option Explicit
    
    ' Die Funktion MyMsgBox verhaelt sich an sich genauso, wie die normale MsgBox-Funktion
    ' Es werden lediglich 2 weitere Parameter uebergeben, die natuerlich optional sind
    ' Also es gilt weiterhin die Reihenfolge beim aufruf der argumente: message, msgboxstyle,
    ' title, helpfile, context dazu kommen jetz nur noch ,posX, posY
    ' diese beiden parameter geben die position des msgbox-fensters in pixeln vom linken
    ' oberen bildschirmrand an. laesst man die beiden parameter weg, so wird das msgbox-
    ' fenster wie gewohnt auf dem bildschirm zentriert.
    
    Private Sub Command1_Click()
      'wie gewohnt auf der bildschirmmitte
      MyMsgBox so, das is jetz mal ne nachricht, vbOKOnly, testbox
    End Sub
    
    Private Sub Command2_Click()
      ' poitioniert auf x=200 und y=400 absolut vom oberen linken bildschirmrand
      MyMsgBox so, das is jetz mal ne nachricht, vbOKOnly, testbox, , , 200, 400
    End Sub
    
    so, denn mal los...viel spass damit =)
     
  5. Vielen Dank PCDBeBo für deine große Mühe. ;D
     
  6. Klar geht das über 'ne API, aber dazu war ich echt zu faul...

    /hug PCDBeBo :p
     
  7. Mahlzeit,
    ich hab vorhin versucht Windows (7 Home Premium 64 Bit) neu aufzusetzen. Hab die Festplatte formatiert und wieder partitioniert. Danach hat Windows die Dateien entpackt "Extracting Windowsfiles o.Ä. 100%" und danach gings nicht mehr weiter. Also hab ich den PC ausgemacht und wollte starten. Logischerweise kann er nicht, da in Installation unvollständig ist.
    Wenn ich versuche ins Boot Menu zu gelangen, passiert nichts. Er reagiert auf keine Eingaben.
    Hier mal ein Video, das zeigt, wie weit er kommt...
    Windows 7 startet nach Neuinstallation nicht - YouTube
     
  8. 1. win 7 komplett neu installieren.
    Bein starten erst mal entf taste drücken sooft bis du ins bios kommst.
    Dort suchen <<<<<Bootreihenfolge<<<<<<<<<
    Dort als erstes nur Boot von CD
    Alle anderen Bootfolgen disablen!!!!
    Dann auf safe changes
    Jetzt sollte der PC direkt starten und von CD aus Booten und Windows neu installieren.
    Bitte im Bios nichts anderes ändern!!!!!
    Grüsse Jürgen
     
Die Seite wird geladen...

VB : MassageBox- Position - Ähnliche Themen

Forum Datum
Positionseinstellungen: "Einige Einstellungen werden von Ihrer Organisation verwaltet" ???? Windows 10 Forum 20. Feb. 2016
Thunderbird: Cursor springt an falsche Position E-Mail-Programme 26. Dez. 2013
Position der Desktop Icons sichern und wiederherstellen Software: Empfehlungen, Gesuche & Problemlösungen 20. Juni 2010
Vorschaufenster - Position wird nicht gespeichert? Windows 7 Forum 28. Juli 2009
JS Abfrage welches DIV ist an Position XY Webentwicklung, Hosting & Programmierung 22. Nov. 2011