Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Komuniciranje custom kontrole pisane u C# i aplikacije rađene u C++

[es] :: .NET :: .NET Desktop razvoj :: Komuniciranje custom kontrole pisane u C# i aplikacije rađene u C++

[ Pregleda: 2994 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.adsl-1.sezampro.yu.



+2 Profil

icon Komuniciranje custom kontrole pisane u C# i aplikacije rađene u C++19.07.2007. u 18:45 - pre 203 meseci
Treba mi mala pomoć iskusnijih kolega.
Pišem neku custom kontrolu u C# koja će se koristiti u jednoj C++ aplikaciji (windows forms).
I sad klikom na tamo neki panel na mojoj kontroli, cpp aplikaciji treba da se prosledi Point(x,y);
x i y nisu klasične koordinate već neke vrednosti koji sam dobio tamo nekim formulama.
E sad pitanje.
Da li bi neko bio ljubazan da mi napiše event u c# i da napiše kako bbi izgledalo povezivanje sa c++ aplikacijom.
Kada se okine event da se u c++ aplikaciji pojavi message box sa vrednostima x i y.

Možda je malo noob pitanje, al šta da radim. Obećavam da neću više.

Nisam radio sa Win C++ aplikacijama, ne znam ni MessageBox da pozovem. Sad da tražim po internetu i učim to... bojim se da bih izgubio previše vremena.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.adsl-1.sezampro.yu.



+2 Profil

icon Re: Komuniciranje custom kontrole pisane u C# i aplikacije rađene u C++19.07.2007. u 22:51 - pre 203 meseci
Pošto vas je mrzelo da napišete, a ja sam u međuvremenu provalio kako se to radi, aj da napišem rešenje pa će nekome možda i koristiti.
Znači zadatak je ovakav, pravim neku custom kontrolu u c# koja će biti korišćena u jednoj c++ aplikaciji.
Potrebno je napraviti event (nazvaću ga MyEvent) koji će aplikaciji proslediti podatke (2 integera) preko EventArgs.

Prvo negde van klase (koja nasleđuje UserControl) deklarišem jedan delegat
Code:

public delegate void MyEventHandler(object sender, MyEventArgs e);


On čuva referencu na f-ju koja prima 2 argumenta. Prvi je sender (tipa object) koji predstavlja objekat koji je pozvao event, i drugi su argumenti (biće objašnjeni kasnije).

Potrebno je napraviti klasu MyEventArgs koja nasleđuje klasu EventArgs i koja će čuvati argumente (2 integera).
Code:

public class MyEventArgs : EventArgs
{
    private int x, y;
    public MyEventArgs(int x, int y)
    {
       this.x = x; this.y = y;
    }

    public int X
    {
       get { return x; }
    }

    public int Y
    {
       get { return y; }
    }
}


U user kontroli deklarišemo event MyEvent
Code:

public event MyEventHandler MyEvent;


I potrebno je overridovati metodu OnMyEvent (obično se dodaje On + naziv eventa)
Code:

protected virtual void OnMyEvent(MyEventArgs e)
{
  MyEvent(this, e);
}


I sad dalje u kodu, kada želimo da se dogodi neki event, dodamo
Code:

OnMyEvent(new MyEventArgs(xx, yy));

Gde su xx i yy neki integeri koje prosleđujemo kao argumente eventima.

Kako c++ aplikacija zna da se dogodio neki event, tj. kako povezati taj event sa c++ aplikacijom?
Postoje 2 načina. Prvi je da se ručno kucka, a ima i onaj lakši :)
Iz design moda, klikne se na custom kontrolu i u Properties prozoru pod stavkom Events (žuta munja), nađete Event koji se naziva MyEvent. Dvostruki klik na njega i dalje sa njim radite isto kao i sa ostalim kontrolama i njihovim ventima tipa button click i sl.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.189.eunet.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: Komuniciranje custom kontrole pisane u C# i aplikacije rađene u C++20.07.2007. u 01:10 - pre 203 meseci
Pa jaooooo...
Nisi nam dao dovoljno vremena
Nigde nisi napisao da se radi o Managed C++u, ja sam mislio da se radio o "nativ" C++ pa nisam znao da ti pomognem, a ovo je lako ...

 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Komuniciranje custom kontrole pisane u C# i aplikacije rađene u C++

[ Pregleda: 2994 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.