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! =)
Eikö olisi helpompaa laittaa nappien kohtaan kohtaan kuvakontrollit (ilman kuvaa), ja tehdä niille OnClick-metodit?
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.
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
Kiitos! En uutta aihetta viitsi tehdä tästä mutta entä kuinka läpinäkyvät textboxit? =) Jos joku vaan viitsii jelpata :P
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.
No eipä mitään, kyllä sen tekstiboxin värin saa vaihdettua. :D
Tuossakin kenties voisi käyttää labelia kun koodaat merkkien lisäyksen Formin Key_Press-tapahtumaan.
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
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
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...
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?
Moi!
Just turn the shot gun 180 degrees and pull the trigger...
...And aim ur head. ;p
Jakke1 kirjoitti:
Private Sub Label1_Click(Index As Integer)
Tuota kakkaa se väittää vääräksi..
Oletko antanut label1-objektille index-arvoksi 0?
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.