Objekt na ploše   zodpovězená otázka

WinForms, .NET

Dobrý den,

Chtěl bych se zeptat zda je možné ve vb.net udělat objekt libovolného tvaru, místo okna.

Např. viděl jsem nejaký adventní věnec, ktarý se vždy spouštel s windows, byl stále na ploše, měl tvar věnce.

Může někdo poradit jak na to, jestli to jde.

Pokud je to složité tak se na to vykašlu.

Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Lze udělat okno libovolného tvaru bez napsání jediného řádku kódu. U formuláře stačí nastavit obrázek pozadí (BackgroundImage), maskovací barvu (TransparencyKey) na barvu pozadí obrázku a FormBorderStyle na None.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mockrát děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jak potom lze takovéto okno posouvat, když nemá rám?

Ve VB6 jsem používal toto:

Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Declare Sub ReleaseCapture Lib "User32" ()
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

   Dim lngReturnValue As Long
   
   If Button = 1 Then
      Call ReleaseCapture
      lngReturnValue = SendMessage(Form1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
   End If

End Sub

To bohužel teď nefunguje.

Potřebval bych okno, které by se dalo chytit kdekoliv a přesunout.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Podívejte se na

http://vbnet.cz/snippet--76-vlastni_zala...

http://vbnet.cz/snippet--90-zaobleni_roh...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nejdůležitější jsem nevložil

http://vbnet.cz/snippet--51-vlastni_pres...

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback