На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
  
> Почему не создается tooltip к кнопке
    Добрый день!

    В окне hMainWnd создаю кнопки (это работает, они отображаются).

    Я хочу прикрутить к каждой кнопке tooltip, однако он не создается.
    Не могли бы Вы подсказать, в чем ошибка ?

    Немного смущает то, что все это делается до начала цикла приема сообщений,
    а в конце видно, что направляется сообщение для активации tooltip-a.

    Насколько это правильно - направлять сообщение здесь ?
    Если неправильно, то где это сделать ?


    ExpandedWrap disabled
      // создание кнопки
       
              HWND hButton = CreateWindow(L"BUTTON", b.Caption.c_str(),
                  WS_VISIBLE | WS_CHILD,
                  StartX, 0, ButtonWidth, 30,
                  hMainWnd, ButtonID, hInst, NULL);
       
      // создание tooltip-a
                 HWND hwndTool = GetDlgItem(hMainWnd, b.ButtonID);
                  //hwndTool <> 0 => ошибки нет,
       
                  // Create the tooltip. g_hInst is the global instance handle.
                  HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
                      WS_POPUP | TTS_ALWAYSTIP | TTS_BALLOON,
                      CW_USEDEFAULT, CW_USEDEFAULT,
                      CW_USEDEFAULT, CW_USEDEFAULT,
                      hMainWnd, NULL,
                      hInstance, NULL);
       
                  //hwndTip <> 0 => ошибки нет, hwndTip создался нормально
                  
       
                  // Associate the tooltip with the tool.
                  TOOLINFO toolInfo = { 0 };
                  toolInfo.cbSize = sizeof(toolInfo);
                  toolInfo.hwnd = hMainWnd;
                  toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
                  toolInfo.uId = (UINT_PTR)hwndTool;
                  toolInfo.lpszText = (LPWSTR) L"tool tip";
                  
                  SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);

    M
    Используем тег CODE!
    Сообщение отредактировано: B.V. -
      Цитата Lun2 @
      Я хочу прикрутить к каждой кнопке tooltip, однако он не создается.

      я делал так:
      ExpandedWrap disabled
                    toolInfo.cbSize = sizeof(toolInfo);
                    toolInfo.hwnd = hButton;
                    toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
                    toolInfo.uId =  someID;//(UINT_PTR)hwndTool; не хэндл, а некий уникальный идентификатор
         
                    toolInfo.lpszText = (LPWSTR) L"tool tip";
        // vvv
         
         HINSTANCE hInstTT  = ::GetModuleHandle(NULL);  
         toolInfo.hinst     = hInstTT;
         
         
         RECT rect;
         
         // GET COORDINATES OF THE MAIN CLIENT AREA
         ::GetClientRect (hButton, &rect);
         
         toolInfo.rect.left   = rect.left;    
         toolInfo.rect.top    = rect.top;
         toolInfo.rect.right  = rect.right;
         toolInfo.rect.bottom = rect.bottom;
        // ^^^
         
         
                    SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);
                    SendMessage(hwndTip, TTM_SETMAXTIPWIDTH, 0, MaxWidthTT); // у меня MaxWidthTT был по умолчанию 4096


      И где-то раньше должен быть вызван
      "InitCommonControls". Иначе может "заглючить".
      Сообщение отредактировано: ЫукпШ -
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0289 ]   [ 15 queries used ]   [ Generated: 14.12.25, 04:59 GMT ]