Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Välkkyminen(vb)

Sivun loppuun

Nannohiiri [11.10.2004 14:16:39]

#

Miten ohjelman saa välkkyyn kun se on pienennetty tonne alas kun jotain tapahtuu? Sillei ku mesessäki jos tulee uus viesti ni se alkaa välkkyyn

hunajavohveli [11.10.2004 14:42:32]

#

Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long

Private Sub Form_Load()

a& = FlashWindow(Me.hwnd, 1)   'tämä välkyttää

End Sub

Kokeile pistää tuo välkytys vaikka johonkin Timeriin puolen sekunnin välein.

Nannohiiri [11.10.2004 15:14:17]

#

Toimi ku koitin tehä ohjelman joka tekee vaan tota, mutta sitten ku yritin änkee sitä mun ohjelmaan ni se valittaa

a& =

tosta kohasta: "Variable not defined".

Blaze [11.10.2004 15:17:58]

#

Nannohiiri kirjoitti:

"Variable not defined".

Määrittele se. Vihje: Dim-lause.

Nannohiiri [11.10.2004 15:21:41]

#

Miksei se tossa pelkässä välkkymisohjelmassa valittanu???

hunajavohveli [11.10.2004 15:25:27]

#

No kai muistit ottaa tuon ekan rivin mukaan? Se pitää olla, koska siinä määritellään tuo FlashWindow, että sitä voi käyttää.
Edit: Yksi kysymysmerkki per kysymys muuten riittää ihan hyvin.

Metabolix [11.10.2004 15:25:54]

#

No laitapa vaikka että
Dim a As Integer
Edit: Taas unohtui refresh :)
Ja ehkäpä tässä ohjelmassasi on se jokin määrittely, että kaikki muuttujat pitää määritellä Dim-lauseella.

hunajavohveli [11.10.2004 15:32:13]

#

Metabolix: & on Double, tuossa ei varmaan Interger käy, mutta veikaan, ettei ongelma ole siinä, että muuttuja pitäisi määritellä (paitsi jos siinä tosiaan on Option Explicit).

Nannohiiri [11.10.2004 15:34:33]

#

vaihdoin sen a& välky:KS ja dim välky as integer toimiii

hunajavohveli [11.10.2004 15:37:23]

#

Kyllä minulla vain toimii tuo välky-nimelläkin eikä tarvitse mitään Dim-määrittelyä.

Metabolix [11.10.2004 16:30:50]

#

Private Declare Function FlashWindow - - As Long
Tuon perusteella sanoisin, että kyllä sen kannattaa olla Long eikä Double, ja jos kyseessä on VB6.0 tai vanhempi, tuo Long on kooltaan sama kuin Integer. Sitä paitsi, C++:n puolella tuon funktion palautusarvo on BOOL (kyllä, isolla kirjoitettuna), jota siis käytännössä käytetään Booleanina (bool), vaikka se onkin 32-bittinen.

Blaze [11.10.2004 16:40:48]

#

Metabolix kirjoitti:

jos kyseessä on VB6.0 tai vanhempi, tuo Long on kooltaan sama kuin Integer

Tämä kaipaa minusta vähän selvennystä: VB6:n Integer on siis 16 bittiä ja Long 32, missä .NETin integer on tuon 32 bittiä ja Long on 64. .NET:ssä on lisäksi "short", joka on sitten tuon 16 bittiä.

hunajavohveli [11.10.2004 16:41:34]

#

Niin, tuo & on siis tosiaan Long, sanoin vahingossa tossa Double.

Metabolix [11.10.2004 16:50:31]

#

Niin, tarkoitin siis että vanha Long on kooltaan uusi Integer ja että tuon funktion palautusarvo on kooltaan vanha Long eli uusi Integer.

nomic [11.10.2004 17:36:17]

#

Mulla ainaskin välkkyy ohjelma alhaalla, jos siellä tapahtuu jokin muutos (esim textboxiin). En tiedä miten normisti, mutta kyseessä oli xätti-ohjelma ja kun vastaanotin viestin, sekä ohjelmani oli alhaalla, niin se välkkyi (kuin messenger).

Mutta tuo on uutta, tuo koodivinkki, jonka hunajavohveli esitteli, alussa jo. :)

Arttut02 [14.10.2004 16:59:44]

#

Onko joku kokeillut käyttää FLASHWINDOWEXää? VB.NET:llä yritin saada välkkymistä toimimaan, mutta ei tullut monista yrityksistä huolimatta mitään. Pelkkä FLASHWINDOW kyllä toimii, mutta toi EX olis käyttökelpoisempi kaikkine määrityksineen.
Onko seuraavassa mitään näkyvää virhettä?

Public Const FLASHW_STOP = 0
Public Const FLASHW_CAPTION = &H1
Public Const FLASHW_TRAY = &H2
Public Const FLASHW_ALL = (FLASHW_CAPTION Or FLASHW_TRAY)
Public Const FLASHW_TIMER = &H4
Public Const FLASHW_TIMERNOFG = &HC

Public Declare Function FlashWindowEx Lib "user32" (ByVal FWInfo As FLASHWINFO) As Boolean

Public Structure FLASHWINFO
    Dim cdSize As Int32
    Dim handle As Int32
    Dim dwFlags As Int32
    Dim uCount As Int32
    Dim dwTimeout As Int32
End Structure

'button_click....
Dim FWInfo As FLASHWINFO
With FWInfo
    .cdSize = Len(FWInfo)
    .handle = Me.Handle.ToInt32
    .dwFlags = FLASHW_ALL And FLASHW_TIMER
    .uCount = 0
    .dwTimeout = 0
End With

FlashWindowEx(FWInfo)

Blaze [14.10.2004 17:15:46]

#

Arttut02 kirjoitti:

.dwFlags = FLASHW_ALL And FLASHW_TIMER

Flagit liitetään Or:lla, ei Andilla. Tuntuu hassulta, mutta kyseessähän ovat tällä kertaa bittioperaatiot, ei loogiset operandit.


Sivun alkuun

Vastaus

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

Tietoa sivustosta