Bij een applicatie met een Muliple Document Interface (MDI) heb ik in het eerste form (parent-form) een logo als afbeelding geplaatst. Dit kun je gewoon bij de properties van het MDIparent-formulier instellen. Deze afbeelding staat komt dan in de linkerbovenhoek en ik wil deze graag gecentreerd op het formulier hebben staan.....dus ongeacht de resolutie van de pc waar de applicatie op draait. Is dit mogelijk?
maak er een windows meta file van.
Je afbeelding wordt dan gestreched over het donkergrijze gedeelte van je mdi getoont
Je afbeelding wordt dan gestreched over het donkergrijze gedeelte van je mdi getoont
Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea
Je kunt toch gewoon bij de Indeling en dan Centreren in Formulier...en volgens mij kun je ook gewoon het logo aanroepen met een .left = "center" . Hiermee kun je het handmatig afdwingen...
freelance-intelligence.info
Kun je het specifieker uitleggen? Hoe en waar komt dat in de code te staan?lottumracing schreef op 07 oktober 2003 @ 13:47:
Je kunt toch gewoon bij de Indeling en dan Centreren in Formulier...en volgens mij kun je ook gewoon het logo aanroepen met een .left = "center" . Hiermee kun je het handmatig afdwingen...
Verwijderd
Na een beetje geknutsel en gezoek op google heb ik uiteindelijk dit gevonden:
Deze code moet in zijn geheel in de mdi-parent gezet worden. picHolder is een picturebox die je op je mdi-parent moet zetten (deze zal 'align-en' met de bovenkant van je mdi-parent), picwork is een picturebox die je op picholder moet zetten. picwork moet het plaatje bevatten dat je wilt tonen, picholder hoeft geen plaatje te bevatten.
Die 2 regels met 'visible=false' en 'visible=true' waren nodig om een repaint te forceren. Misschien dat dit efficienter kan, maar dat moet je zelf dan maar even uitzoeken
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal lX As Long, ByVal lY As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal lDC As Long) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal lDC As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal lDC As Long, ByVal hObject As Long) As Long Private lmMemDC As Long Private lmHeight As Long Private lmWidth As Long Private omPic As StdPicture Private Sub MDIForm_Load() picHolder.Visible = False picWork.Visible = False picWork.AutoRedraw = True picWork.AutoSize = True lmHeight = picWork.Height lmWidth = picWork.Width Set omPic = picWork.Picture Set picWork.Picture = Nothing picWork.AutoSize = False lmMemDC = CreateCompatibleDC(picWork.hDC) Call SelectObject(lmMemDC, omPic.Handle) End Sub Private Sub MDIForm_Resize() If WindowState <> vbMinimized Then Dim lX As Long Dim lY As Long picWork.BackColor = BackColor Call picWork.Move(0, 0, ScaleWidth, ScaleHeight) lX = (ScaleWidth - lmWidth) \ 2: lX = lX \ Screen.TwipsPerPixelX lY = (ScaleHeight - lmHeight) \ 2: lY = lY \ Screen.TwipsPerPixelY Call BitBlt(picWork.hDC, lX, lY, lmWidth \ Screen.TwipsPerPixelX, lmHeight \ Screen.TwipsPerPixelY, lmMemDC, 0, 0, vbSrcCopy) Set Picture = picWork.Image Visible = False Visible = True End If End Sub Private Sub MDIForm_Unload(Cancel As Integer) Set omPic = Nothing Call DeleteDC(lmMemDC) End Sub |
Deze code moet in zijn geheel in de mdi-parent gezet worden. picHolder is een picturebox die je op je mdi-parent moet zetten (deze zal 'align-en' met de bovenkant van je mdi-parent), picwork is een picturebox die je op picholder moet zetten. picwork moet het plaatje bevatten dat je wilt tonen, picholder hoeft geen plaatje te bevatten.
Die 2 regels met 'visible=false' en 'visible=true' waren nodig om een repaint te forceren. Misschien dat dit efficienter kan, maar dat moet je zelf dan maar even uitzoeken
[ Voor 3% gewijzigd door Verwijderd op 07-10-2003 15:45 ]
Werkt super! Bedankt voor de research!Verwijderd schreef op 07 oktober 2003 @ 15:43:
Na een beetje geknutsel en gezoek op google heb ik uiteindelijk dit gevonden:
Deze code moet in zijn geheel in de mdi-parent gezet worden. picHolder is een picturebox die je op je mdi-parent moet zetten (deze zal 'align-en' met de bovenkant van je mdi-parent), picwork is een picturebox die je op picholder moet zetten. picwork moet het plaatje bevatten dat je wilt tonen, picholder hoeft geen plaatje te bevatten.
Die 2 regels met 'visible=false' en 'visible=true' waren nodig om een repaint te forceren. Misschien dat dit efficienter kan, maar dat moet je zelf dan maar even uitzoeken
Pagina: 1