Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Läpinäyvät painikkeet ( VB6 )

Sivun loppuun

Jakke1 [18.11.2007 23:23:45]

#

Elikkä, pitäis saada "Command" Buttonit/painikkeet läpinäkyväksi. Tarkoituksena tehdä photarilla kuva jossa on painikkeet "valmiina" ja oikea nappi on läpinäkyvä.


Kiitos jo etukäteen jos joku voi auttaa! =)

sqwiik [18.11.2007 23:51:11]

#

Eikö olisi helpompaa laittaa nappien kohtaan kohtaan kuvakontrollit (ilman kuvaa), ja tehdä niille OnClick-metodit?

Metabolix [18.11.2007 23:56:32]

#

Tuo sqwiikin ehdotus on tosiaan ehkä helpompi vaihtoehto, mutta haittapuolena on, että painikkeita ei voi selata normaaliin tapaan tabilla ilman pitkähköä koodiviritystä.

Yksi vaihtoehto olisi kai piirtää kuvaa erikseen (BitBlt:llä tms.) taustalle ja nappeihin. Tällaisesta piirrosta löytynee haulla ohjeita.

neau33 [18.11.2007 23:58:30]

#

Heippa Jakke1!

Yksikertaisin keino on käyttää Label-kontrollia...elikä Captionit pois, BorderStylet 0:ksi ja BackStyle-arvoiksi transparent. Tämä riittää mikäli klikkaillaan vaan hiirellä. Jos haluat näppiksen peliin niin voit laittaa formille piiloon (mutta Visible) PictureBoxin/Labelli ja hoitaa tapahtumat PictureBoxien tapahtumissa esim. näin:

'Huom indeksoidut kontrollit!
'ja homma on helppoa...
Private Sub Label1_Click(Index As Integer)
  Picture1(Index).SetFocus: SendKeys "{Enter}"
End Sub

Private Sub Picture1_GotFocus(Index As Integer)
 Label1(Index).BorderStyle = 1
End Sub

Private Sub Picture1_LostFocus(Index As Integer)
 Label1(Index).BorderStyle = 0
End Sub

Private Sub Picture1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
 If KeyCode = 13 Or KeyCode = 32 Then
   Select Case Index
    Case 0: MsgBox "trööt"
    Case 1: MsgBox "träät"
   'jne.
   End Select
 End If
End Sub

Jakke1 [19.11.2007 14:02:36]

#

Kiitos! En uutta aihetta viitsi tehdä tästä mutta entä kuinka läpinäkyvät textboxit? =) Jos joku vaan viitsii jelpata :P

Merri [19.11.2007 14:19:04]

#

Männöö kehittyneemmälle tasolle, eli tekstilaatikko pitäisi tehdä API:lla, jolloin oletuksena sille ei piirretä taustaa ollenkaan. Minulla sattuu olemaan Unicode-tekstilaatikkoprojekti, jossa on juurikin läpinäkyvä tausta olemassa luodulla laatikolla, ongelmana vain että UserControlia ei ole laitettu läpinäkyväksi ja sen läpinäkyvyyden kanssa taas on aikamoista kikkailua tiedossa (muistaakseni).

En muista/tiedä pystyykö sitten VB:n tekstilaatikkojen kutsuja manipuloimaan siten, että niistä voisi napsia taustavärin piirtämisen pois. Jokatapauksessa luvassa on kehittyneempää Windows-ohjelmointia ja sen opettelua, paitsi jos sortuu johonkin netistä valmiiksi löytyvään koodiin.

Jakke1 [19.11.2007 14:38:04]

#

No eipä mitään, kyllä sen tekstiboxin värin saa vaihdettua. :D

setä [19.11.2007 16:30:04]

#

Tuossakin kenties voisi käyttää labelia kun koodaat merkkien lisäyksen Formin Key_Press-tapahtumaan.

neau33 [19.11.2007 16:46:02]

#

Moikka taas Jakke1!

Lähes samoin, kuin edellinen eli indeksoidut kontrollit, mutta TextBoxit PictureBoxien tilalle...

Dim cursor As String

Private Sub Form_Load()
cursor = " |"
End Sub

Private Sub Text1_Change(Index As Integer)
Label1(Index).Caption = Text1(Index).Text & cursor
End Sub

Private Sub Text1_GotFocus(Index As Integer)
Label1(Index).Caption = Text1(Index).Text & cursor
End Sub

Private Sub Text1_LostFocus(Index As Integer)
Label1(Index).Caption = Text1(Index).Text
End Sub

Jakke1 [19.11.2007 19:27:50]

#

En kyllä saa niitä textboxeja läpinäkyväksi..Tarkempaa vinkkiä?

Niin ja kuinka saisin sen formim läpinäkyväksi? Ku sinne jää sellaiset valkoiset reunat jotka eivät oikeen sovi sinne. :D

neau33 [19.11.2007 20:36:03]

#

For Christ sake Jakke1!

What did you with those PictureBoxes ha? Try to do this: take a shot gun and shoot the screen and you'll see that everything is transparent...

Jakke1 [19.11.2007 20:55:56]

#

Private Sub Label1_Click(Index As Integer)

Tuota kakkaa se väittää vääräksi..

ja voiko sen formin/textboxien läpinäkyvyyden saada moduulin kautta?

neau33 [19.11.2007 21:12:50]

#

Moi!

Just turn the shot gun 180 degrees and pull the trigger...

Jakke1 [19.11.2007 21:28:26]

#

...And aim ur head. ;p

nomic [19.11.2007 21:43:03]

#

Jakke1 kirjoitti:

Private Sub Label1_Click(Index As Integer)

Tuota kakkaa se väittää vääräksi..

Oletko antanut label1-objektille index-arvoksi 0?

neau33 [20.11.2007 01:32:12]

#

Heippa taas!

here's an additional little piece of shit...

'Labellit: AutoSize = True - TekstiBoxit: MultiLine = True
Dim cursor As String, flash As Boolean, xindex As Integer

Private Sub Form_Load()
  cursor = "|"
End Sub

Private Sub Form_Unload(Cancel As Integer)
  flash = False
End Sub

Private Sub Text1_Change(Index As Integer)
  xindex = Index: flash = True: blink
End Sub

Private Sub Text1_GotFocus(Index As Integer)
  Label1(Index).Caption = Text1(Index).Text
  xindex = Index:  flash = True: blink
End Sub
Private Sub Text1_LostFocus(Index As Integer)
  Label1(Index).Caption = Text1(Index).Text
  flash = False
End Sub

Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
  flash = False
End Sub

Sub blink()

  Dim delay As Single

    Do While flash: DoEvents

      delay = 0.5 + Timer

    Do While delay > Timer And flash: DoEvents
      Label1(xindex).Caption = Text1(xindex).Text
    Loop

    delay = 0.5 + Timer

    Do While delay > Timer And flash: DoEvents
      Label1(xindex).Caption = Text1(xindex).Text & cursor
    Loop

    Loop

    Label1(xindex).Caption = Text1(xindex).Text

End Sub

Sivun alkuun

Vastaus

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

Tietoa sivustosta