Jump to content
Che

On MouseOver in C++ ?

Recommended Posts

Am un windows form application in Visual C++ .Net, cu mai multe butoane.

Cum fac ca atunci cand trec cu mouseul peste butoane acestea sa-si schimbe culoarea dupa care, cand nu mai stau cu mouseul deasupra lor sa-si revina la culoarea initiala ?

Am gasit pe google chestia asta:

// To use this example create a new form and paste this class

// forming the same file, after the form class in the same file.

// Add a button of type FunButton to the form.

public ref class FunButton: public Button

{

protected:

virtual void OnMouseHover( System::EventArgs^ e ) override

{

// Get the font size in Points, add one to the

// size, and reset the button's font to the larger

// size.

float fontSize = Font->SizeInPoints;

fontSize += 1;

System::Drawing::Size buttonSize = Size;

this->Font = gcnew System::Drawing::Font( Font->FontFamily,fontSize,Font->Style );

// Increase the size width and height of the button

// by 5 points each.

Size = System::Drawing::Size( Size.Width + 5, Size.Height + 5 );

// Call myBase.OnMouseHover to activate the delegate.

Button::OnMouseHover( e );

}

virtual void OnMouseMove( MouseEventArgs^ e ) override

{

// Make the cursor the Hand cursor when the mouse moves

// over the button.

Cursor = Cursors::Hand;

// Call MyBase.OnMouseMove to activate the delegate.

Button::OnMouseMove( e );

}

https://msdn.microsoft.com/en-us/library/system.windows.forms.control.onmousehover.aspx

Numai ca nu merge.

Stie cineva ?

Multumesc mult !

Link to comment
Share on other sites

Intai de toate trebuie sa-ti declari event-urile in forma in care vei folosi acel buton.

Dupa ce ai facut asta in cadrul event-urilor apelezi proprietatiile butonului pentru a schimba ceea ce vrei.

LE: Mai offtopic asa; poti sa-mi spui de ce scrii in C++ pe platforma .Net avand in vedere ca limbajul in care e compilat este acelasi si nu aduce nici o imbunatatire in momentul rularii? Microsoft a scos acel template tocmai pentru a incuraja dezvoltatorii sa foloseasca C# sau VB daca vor sa creeze o aplicatie de tip win forms iar C++ sa se foloseasca la aplicatii native.

Edited by Erase
Link to comment
Share on other sites

Da-mi un exemplu de cum se foloseste chestia asta intr-un windows from app. ca nu reusesc sa o implementez.

Multumesc !

@Erase

M-am hotarat sa scap de tendintele de a invatat VB.net si/sau C# si alte derivatii.

Link to comment
Share on other sites

IDE-ul iti genereaza automat acele eventuri de care ai tu nevoie. In visual studio urmeaza pasii:

rez.png

1. Click pe butonul respectiv.

2. Mergi la categoria events (fulgerul)

3. Dublu click pe MouseMove si MouseLeave, si te va redirectiona spre blocul in care bagi cod pentru fiecare. In MouseMove setezi o culoare si respectiv in MouseLeave cealalta.

Succes.

Link to comment
Share on other sites

Che, Tu acolo lucrezi in c++/cli care de fapt e un fel de c#.net doar ca sintaxa este de c++. In principiu, din cate stiu, se foloseste de aceleasi librarii ca si c#, si codul generat este similar, pentru ca este cod managed. Daca vrei sa lucrezi in c++ pur, atunci iti sugerez sa incerci una din librariile multi platform pentru gui(qt si wxwidgets sunt cele mai folosite).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...