Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Статик текст сделать гиперсылкой


Автор: En_t_end 25.8.2005, 12:50
Как ? Там помоему надо какой-то флаг поставить.

Автор: SimBiOd 25.8.2005, 13:09
Нет, флагом это не сделаешь нужен класс.
Например вот этот:

Автор: En_t_end 25.8.2005, 13:13
SimBiOd
Спасибо!
Неужели люди для этого класс писали. Должны же быть стандартные средства. Во многих программах видел такие вещи, и как мне кажется делалось это проще.

Автор: SimBiOd 25.8.2005, 13:19
Цитата(En_t_end @ 25.8.2005, 13:13)
SimBiOd
Спасибо!
Неужели люди для этого класс писали. Должны же быть стандартные средства. Во многих программах видел такие вещи, и как мне кажется делалось это проще.

Чтобы статик был "полноценной ссылкой", без класса не обойтись.

Автор: Coocky 25.8.2005, 13:35
En_t_end
Нужно код руцями писать, у меня тоже есть пример.

Автор: JoyEx 25.8.2005, 15:10
Цитата(En_t_end @ 25.8.2005, 13:13)
Неужели люди для этого класс писали. Должны же быть стандартные средства. Во многих программах видел такие вещи, и как мне кажется делалось это проще.


Так C++ придуман для OOП, а можно сделать и на чистом WinAPI smile

Автор: kometa_triatlon 25.8.2005, 16:04
Гм. А кто скажет как этим классом пользоваться? smile
Метода Create я там не нашел, с тулбокса его не перетащищь...
Вобщем, как создать такую гиперссылку скажем у себя на диалоге?

Автор: Coocky 25.8.2005, 16:17
kometa_triatlon
Я ж тебя учил!
Рисуй статик на диалоге,
затем добавь это класс в проект, добавь его заголовок в основное (диалоговое)окно(#include "HyperLink.h"), обьяви обьект CHyperLink my_link, и добавь в класс основного окна
Код

DDX_Control(pDX, IDC_Нарисованого статика, my_link);

Автор: kometa_triatlon 25.8.2005, 20:35
Coocky
Не обращай внимания, видно мне сегодня вместо антибиотиков вкололи тормозную жидкость...
Я только недавно допер, что этот класс еще наследует родительский метод Create.

Автор: kometa_triatlon 25.8.2005, 20:59
А твой способ не работает кстати.
Вылетает с ошибкой.
Так тоже не работает, почему-то GetParent() возвращает NULL, или я не ту функцию использую?
Приложение dialog-based, этот код добавляю в OnInitDialog главного диалога.

Код

CWnd* pParent = GetParent();

    RECT rect;
    HWND hwnd;
    GetDlgItem(IDC_STATIC, &hwnd); 
    if (hwnd)
    {
        ::GetWindowRect(hwnd, &rect); 
        ScreenToClient(&rect);    
        m_hyperLink.Create(_T("HyperLink"), WS_CHILD|WS_VISIBLE, rect, pParent);
    }

Автор: SimBiOd 25.8.2005, 22:43
Цитата(kometa_triatlon @ 25.8.2005, 20:59)
А твой способ не работает кстати.
Вылетает с ошибкой.
Так тоже не работает, почему-то GetParent() возвращает NULL, или я не ту функцию использую?
Приложение dialog-based, этот код добавляю в OnInitDialog главного диалога.

Я просто в шоке!!! Сделай, как сказал Coocky, а в инит добавь вот такой код:
Код

m_HyperLink.SetURL(_T("http://www.vingrad.ru"));

Автор: kometa_triatlon 26.8.2005, 00:48
Цитата
Я просто в шоке!!!

Я тоже smile
Уже все решилось... Проблема была с ресурсами :
Код

#define IDC_STATIC -1

Короче, поменял идентификатор - заработало...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)