Ссылка при нажатии на которую вызывается браузер

Тема в разделе "Общие вопросы по С и С++", создана пользователем Pingvin1, 26 фев 2015.

  1. Pingvin1

    Pingvin1 Well-Known Member

    Регистрация:
    20 июл 2009
    Сообщения:
    50
    Симпатии:
    0
    Как вывести Интернет ссылку?
     
  2. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    18
    куда вывести?
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    В Qt мне кажется достаточно будет теги <a href> в QLabel записать (вместо обычного текста).
    В Java также примерно делал я.
    А ты куда хочешь вывести ссылку?)
     
  4. Pingvin1

    Pingvin1 Well-Known Member

    Регистрация:
    20 июл 2009
    Сообщения:
    50
    Симпатии:
    0
    Чтобы ссылка была видна работавшему за компом. Можно сразу открыть ссылку в
    ShellExecute(hwnd,"open", "имя запускаемого файла или открываемой в браузере ссылки","",NULL,SW_SHOWNORMAL); , можно подчеркнуть текст ссылки и анализировать клик мыши, но хотелось бы попроще.
    И лучше без Qt и других дополнительных библиотек, которые надо дополнительно устанавливать, а часто и покупать.
     
    #4 Pingvin1, 26 фев 2015
    Последнее редактирование модератором: 26 фев 2015
  5. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Иначе никак нельзя. С++ о ссылках ничего не знает.
     
  6. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    18
    ShellExecute и есть самое простое
     
  7. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Но ShellExecute - это не "без использования дополнительных библиотек". Это ведь WinAPI и, мало того, что это таки библиотека, оно еще и не кроссплатформенное и вообще костыль. Я так понимаю, клик по ссылке надо будет отслеживать, а по-хорошему при наведении мыши - менять цвет ссылки. Ну это кроме того, что текст надо подчеркнуть и еще где-нибудь с бубном сплясать. Зачем все это? Ради чего?
     
  8. Pingvin1

    Pingvin1 Well-Known Member

    Регистрация:
    20 июл 2009
    Сообщения:
    50
    Симпатии:
    0
    Раз C++ не работает со ссылками HTML, надо, чтобы кнопка была похожа на ссылку. Т.е. желательно при наведении указателя мыши на ссылку = кнопку цвет её менялся. И сделать это хозяйство надо в Проекте WIN32.
     
  9. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    18
    крос только html, остальное все костыли :)
     
  10. Pingvin1

    Pingvin1 Well-Known Member

    Регистрация:
    20 июл 2009
    Сообщения:
    50
    Симпатии:
    0
    имеется ввиду не встроенные библиотеки, т.е. WinAPI использовать можно.
    Для формирования ссылки есть SysLink , её и надо использовать.
     
  11. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Вопрос лишь в том, куда встроенные. То, что в линуксе и на андройде и на айфоне такой библиотеки нет, думаю пояснять не надо?
    Но и в Wnidows она есть далеко не везде.
    SysLink требует библиотеку Comctl32, да еще и вроде бы (на msdn описано очень смутно) шестой версии. Сама библиотека вроде бы впервые появилась в Windows2000 (первая версия), т.е. если ваша программа не включит ее "как стороннюю библиотеку" - то ваш код гарантированно не будет работать на windows98, например. В какой версии Windows появилась шестая версия я не знаю (на MSDN не написано).

    Ну а если вам придется подключать ее подключать - то "встроенной" ее называть уже нельзя - вы в любом случае либо:
    * запихаете ее внутрь своего исполняемого файла (слинкуете статически) - при этом увеличится размер файла;
    * будете таскать рядом со своей программой dll (подключать ее будете динамически);
    * ваша программа будет работать не у всех (а только лишь у тех, у кого в windows встроена нужная версия библиотеки)​
    Ну и как не крути, чем больше будет ваша программа и чем больше у нее появится таких зависимостей - тем она будет менее переносимой, а это печально. И да, если вы будете подключать это как стороннюю библиотеку, то ваша поделка, конечно, может быть запустится в linux под wine, но гарантии этого никто не даст никогда.
     
Загрузка...

Поделиться этой страницей