| |
Fortgeschrittene ProgrammierungFensterlayout in IDE/Exe und Windows10/XP-Kompatibilitätsmode unterschiedlich | | | Autor: HarryLobster | Datum: 03.03.18 18:52 |
| Bisschen schwierig das ohne Screenshots genau zu erklären...
Ich möchte über eine einschlägig bekannte API-Funktion (SetWindowLong) gerne die Titelleiste meines Formulars ausblenden. Das klappt auch in der IDE, alles prima. Nach der Kompilierung habe ich aber am oberen Rand zum eigentlichen Beginn des Darstellungsbereichs nun eine ca. 2mm hohe Lücke/Rand und auch sonst sind alle Mauskoordinaten um diese Lücke verschoben. Führe ich die Exe im XP-Kompatibilitätsmodus aus, ist auch alles so, wie gewünscht. Wenn ich ehrlich bin, habe ich wenig Hoffnung, dass mir hier jemand zu dem Thema helfen kann, aber diese stirbt ja bekanntlich zuletzt... | |
Re: Fensterlayout in IDE/Exe und Windows10/XP-Kompatibilitätsmode unterschiedlich | | | Autor: Souffleurlos | Datum: 04.03.18 18:18 |
| Hallo,
dazu braucht man keine WinAPI-Funktion. Das geht mit den Standard VB - Forms-Eigenschaften.
BorderStyle: none
ControlBox false | |
Re: Fensterlayout in IDE/Exe und Windows10/XP-Kompatibilitätsmode unterschiedlich | | | Autor: HarryLobster | Datum: 04.03.18 21:32 |
| Dann kann man es aber nicht mehr in der Größe verändern oder verschieben. Nicht hilfreich. | |
Re: Fensterlayout in IDE/Exe und Windows10/XP-Kompatibilitätsmode unterschiedlich | | | Autor: Kuno60 | Datum: 04.03.18 23:48 |
| Hallo,
verschieben geht bei einem Formular mit "BorderStyle = 0 - Kein" trotzdem, mit MouseMove und SendMessage.
' Linke Maustaste wurde im Nicht-Clientbereich der Form betätigt
Private Const WM_NCLBUTTONDOWN As Long = &HA1&
' Die Position im Nicht-Clientbereich ist die Titelleiste.
Private Const HTCAPTION As Long = 2&
Private Declare Sub ReleaseCapture Lib "User32" ()
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal _
hWnd As Long, ByVal Message As Long, ByVal wParam As Long, ByRef lParam As _
Any) As Long
'Verschieben der Form mit dem Mauszeiger
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y _
As Single)
If Button = vbLeftButton Then
Call ReleaseCapture
Call SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0&)
End If
End Sub Das geht auch ohne SendMessage, wenn man die Mauskoordinaten in Bildschirmkoordinaten umrechnet.
Das ändern der Größe ist auch nur per Code möglich, aber machbar.
Mit der API: SetWindowRgn, kann man dem Formular auch eine beliebige andere Form verpassen (Rund, Stern usw.). | |
Re: Fensterlayout in IDE/Exe und Windows10/XP-Kompatibilitätsmode unterschiedlich | | | Autor: HarryLobster | Datum: 05.03.18 08:58 |
| Hallo,
danke für den Hinweis. Ich muss aber das Formular weiterhin mit der Maus in der Größe verändern können und zwar so, wie gewohnt, also u.a. an den Rändern ziehen. Daher ist für mich die einzig sinnvolle Lösung das mit dem Rahmen=Änderbar und der Ausblendung der Titelleiste. Mein Problem muss irgendwie mit dem "Aero"-Feature ab Windows7 zu tun habe, das habe ich für meine IDE auch deaktiviert, daher klappt es in der IDE und im XP-Modus.
Kann man alternativ zumindest nur das Icon ausblenden, dazu finde ich keinen API-Aufruf ? | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|