Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6 - Framen "korjaus"

Quirzo [04.01.2007 11:27:49]

#

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.

Merri [04.01.2007 12:26:35]

#

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 Sub

Quirzo [04.01.2007 14:01:05]

#

Tuo 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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta