Przycisk ,,Zamknij'' w WinApi

Witam! Chciałbym w programie wxDev-C++ zrobic tak aby po kliknięciu na link otworzyła sie strona www (poniżej to przedstawiłem) ale niebardzo wiem jak to zrobić. Mógłby ktoś mi pomóc?

Z góry dziękuje!

http://www.mfoto.pl/show.php?id=412872

http://forum.dobreprogramy.pl/viewtopic.php?p=980957

Popraw tytuł proszę.

Nigdy nie używałem wxDev-C++, ale istnieją dwa prawdopodobne podejścia, jakie wykorzystano w tym IDE.

Kliknij na link na swoim oknie dialogowym. W lewym dolnym rogu masz panel właściwości kontrolki. Jedną z właściwości powinna być Text, Title lub Caption - zmień ją na http://dobreprogramy.pl/ i skompiluj/przetestuj aplikację. Jeśli zadziała to znaczy, że Twój obiekt do zwykły link label WinApi. Treść którą widać to adres odnośnika. Prawdopodobnie jedynym obsługiwanym typem jest http/https.

Jeśli w/w metoda nie działa lub działa, ale chcesz co innego wyświetlić a inny adres wywołać, obok właściwości (Properties) masz jeszcze zdarzenia (Events). Jedno z nich powinno się nazywać OnClick (lub bardzo podobnie). Musisz do zdarzenia przypisać metodę/funkcję obsługi zdarzenia. Kod uruchamiający stronę:

ShellExecute(NULL, "open", "http://dobreprogramy.pl", NULL, NULL, SW_SHOWNORMAL);

tworzący mail:

ShellExecute(NULL, "open", "mailto:blahblah@dobreprogramy.pl", NULL, NULL, SW_SHOWNORMAL);

Jeśli mnie pamięć nie myli wxWindows mają własny typ znakowy (a wxDev-C++ zdaje się używać wxWindows). W takim wypadku będziesz musiał w/w kod lekko zmodyfikować.

Dzieki, jednak nie trzeba nic modyfikowac, wszystko działa, z emailem tez

:slight_smile:

Ale jest jeszcze jedna sprawa: jest przycisk ,zamknij’’ i chce zrobic aby po kliknieciu na niego program konczyl swoja prace, wiecie moze jak to uczynic?

Złączono Posta : 19.07.2007 (Czw) 12:44

Odpowie mi ktos?

Orłem z C++ nie jestem, ale spróbuj może czymś takim: Application->Terminate();

Inna metoda, to funkcja

Close();

… ale chyba to, co napisał kryzys jest lepszym rozwiązaniem.

close(int)

Kończy cala aplikacje, czyli zostaje zakończona funkcja main(). A o to nie chodzi. Chodzi o to aby pętla do obsługi winmsg w main() została opuszczona i kod po za tą peltą miał okazje się wykonać (czyli np. zwolnienie zasobów, WSACleanup() itd.). Do tego mamy funkcje:

PostQuitMessage(int);

Jak ją zastosować, w funkcji do obsługi zdarzeń (WinProc) dodajemy taką regułkę:

if(WinMsg == WM_DESTROY || WinMsg == WM_COMMAND && (HWND) lParam == hButton) {

    PostQuitMessage(false);

};

Działa ona na przycisk okna (zamknij/krzyżyk (WinMsg == WM_DESTROY)) oraz na wciśnięcie button z handle hButton (HWND hButton).

Tutaj masz przykład który był dołączony razem z Dev-C++.