====== Callbacks personalizzate nelle wxhtmlwindow ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//17/02/2011//** \\ \\ Questa guida nasce dall'esigenza di dover realizzare una applicazione con una finestra contenente una wxhtmlwindow in grado di poter aprire solo alcuni link nel browser web predefinito e tutti gli altri all'interno di se stessa . \\ Ovvero: \\ **Link che si apriranno nel proprio browser web ** www.google.it Come si puo' notare ci siamo inventati un nuovo target ("**_newpage**") che ci servira' per far capire alla nostra classe derivata da wxhtmlwindow di aprire il link nel browser. \\ Basta procedere con l'override della classe come segue. class HtmlWindow: public wxHtmlWindow { public: HtmlWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxHW_SCROLLBAR_AUTO, const wxString& name = _T("htmlWindow")); void OnLinkClicked(const wxHtmlLinkInfo& link); }; HtmlWindow::HtmlWindow(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name) : wxHtmlWindow(parent, id, pos, size, style, name) { } void HtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link) { /*Definiamo nuovi target per il tag 'A' */ if (link.GetTarget()==wxT("_newpage")) wxLaunchDefaultBrowser(link.GetHref()); //aggiungere qui nuovi target else if (link.GetTarget()==wxT("")) wxHtmlWindow::OnLinkClicked(link); } Possiamo ,ovviamente, inserire piu' target per il tag A semplicemente aggiungendo righe del genere al metodo ''void HtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link) '' : if (link.GetTarget()==wxT("_miotarget")) wxMessageBox(link.GetHref()) ;