Hjälp! Ska du bara göra ett kryss över Textboxen eller kunna rita flera linjer över den? Jag har själv aldrig provat göra något liknande, men om du subclassar Textboxen så kan du själv hantera hur den ska ritas när meddelandet WM_DRAW kommer. Hej, tack för hjälpen! vad ja vet så klarar rich-textbox av att vara container... inte helt säker dock Öppna Group.vbg filen. Går det att göra så att kontrollen kan markera en linje om man klickar på den? Om du är ute efter words funktionalitet kan du skapa ett Word OLE objekt istället.Linje över Textbox
Jag vill kunna rita ut linjer kors och tvärs över en richTextBox. Hur gör jag för att linjerna ska synas och inte hamna under richTextBoxen. Går det att göra boxen transparent, och i så fall hur?
/SandraSv: Linje över Textbox
Sv: Linje över Textbox
Liten förklaring på subclassing:
Subclassing är en metod för att ändra på ett meddelande som Windows skickar före det når fönstret.
t.ex om en användare trycker på krysset längst upp i högra hörnet då kommer meddelandet WM_SYSCOMMAND att skickas till fönstret, WM_SYSCOMMAND är ett meddelande som hanterar system-menyn (alltså den med Maximera, Återställ/Minimera och Stäng), sedan kommer wParam (se nedan) att innehålla SC_CLOSE, vilket betyder att användaren tryckte på krysset).
Såhär ser funktionen för SendMessage ut:
Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal Msg As Long, wParam As Any, lParam As Any) As Long
När Windows skickar ett meddelande till ett fönster så skickar windows detta:
hWnd - handle of Window, alla fönster har ett unikt "handtag" som behövs av många funktioner. Du får handtaget av din Textbox genom att skriva "Textbox1.hWnd", funkar med många kontroller.
Msg - Message (meddelande), nu kommer ju Msg att vara ett tal, så du får kolla upp konstanterna (de börjar med WM_) om du vill veta vilket meddelande som sänts. (t.ex WM_SYSCOMMAND)
wParam - Parameter, detta behövs inte alltid, det är bara ifall funktionen innehåller extra information (t.ex SC_CLOSE), ska vara 0 (noll) om den inte behövs.
lParam - Samma som wParam.
Så om din fråga, när Windows skickar WM_PAINT (för att uppdatera grafiken) så kan du själv välja hur det ska "målas".
Kanske lite krångligt, men sök efter subclassing på nätet så hittar du säkert någonting och hur som helst är det bra att kunna.
Du kan också leta efter konstanterna för WM_PAINT m.m. kom ihåg att de flesta meddelandena börjar med WM_ (Window Message)Sv: Linje över Textbox
Jag har tittat lite på subclassing men inte riktigt förstått hur jag ska göra.
Kontrollen får jag inte igång. Testproject kan inte skapa någon referens till pellesoft.vbp. Någon idé om hur jag får det att fungera?
/SandraSv: Linje över Textbox
Sv: Linje över Textbox
Eller så kan du Kompilera Pellesoft.vbp, ta bort den gammla komponenten och referensen och lägga till den igen. Sv: Linje över Textbox
Det är egentligen så att jag vill kunna rita ut pilar, som man ska kunna ändra storlek och position på med hjälp av musen.Sv: Linje över Textbox
Annar skulle jag rekomendera dig att skapa en pilkontrol göra en kontrollarray. Sedan hantera markering och förändring av pilar i formuläret.