Jossain joskus näin koodin, joka poistaa taustan framen captionin, eli tekstin, alta. Normaalisti se näyttää tyhmältä, mutta sen avulla siitä tulee sisti.
Vielä havainnekuva:
http://www.roctumclan.com/upload/749frame.PNG
Yritin googlettaa mutta ehkä väärillä hakusanoilla.
Option Explicit
Private Enum EDEDBorderStyle
BDR_RAISEDOUTER = 1
BDR_SUNKENOUTER = 2
BDR_RAISEDINNER = 4
BDR_SUNKENINNER = 8
BDR_BUTTON = BDR_RAISEDINNER Or BDR_RAISEDOUTER
BDR_CONTROL = BDR_SUNKENINNER Or BDR_SUNKENOUTER
BDR_THINBUTTON = BDR_RAISEDOUTER
BDR_THINCONTROL = BDR_SUNKENOUTER
BDR_ETCHRAISE = BDR_RAISEDOUTER Or BDR_SUNKENINNER
BDR_ETCHINSET = BDR_SUNKENOUTER Or BDR_RAISEDINNER
BDR_ALL = BDR_BUTTON Or BDR_CONTROL
End Enum
Public Enum EDEDBorderParts
BF_LEFT = 1
BF_TOP = 2
BF_RIGHT = 4
BF_BOTTOM = 8
BF_TOPLEFT = BF_LEFT Or BF_TOP
BF_BOTTOMRIGHT = BF_RIGHT Or BF_BOTTOM
BF_RECT = BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM
BF_MIDDLE = &H800
BF_SOFT = &H1000
BF_ADJUST = &H2000
BF_FLAT = &H4000
BF_MONO = &H8000&
BF_ALL = BF_RECT Or BF_MIDDLE Or BF_SOFT Or BF_ADJUST Or BF_FLAT Or BF_MONO
End Enum
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function DrawEdge Lib "user32" ( _
ByVal hDC As Long, qRC As RECT, _
ByVal Edge As Long, ByVal grfFlags As Long) As Long
Private Sub Picture1_Paint()
Dim udtRECT As RECT
udtRECT.Bottom = ScaleY(Picture1.ScaleHeight, Picture1.ScaleMode, vbPixels)
udtRECT.Right = ScaleX(Picture1.ScaleWidth, Picture1.ScaleMode, vbPixels)
DrawEdge Picture1.hDC, udtRECT, BDR_ETCHINSET, BF_RECT
End SubTuo ei ole ihan se mitä hain.
Tarkoitus olisi siis ihan framena pitää, mutta säätää sen ulkonäön "oikeaksi".
Mutta tuokin kelpaa jos ei parempaa löydy.
EDIT:
No niin, löysin sen sivun missä näin vinkin. (Oli suosikeissa joku muu vinkki sieltä)
http://www.vb-helper.com/howto_set_frame_backcolor.html
Simppeli idea mutta toimiva.
Aihe on jo aika vanha, joten et voi enää vastata siihen.