Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > не отображается tooltip, совсем


Автор: nmn 16.1.2009, 16:55
уже столько вариантов перепробовал, ничего  не помогает :(
Код

INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
InitCommonControls()
        hToolTip=CreateWindowEx(WS_EX_TOPMOST,TOOLTIPS_CLASS, NULL, 
            WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP|TTS_BALLOON, CW_USEDEFAULT,
            CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hDlg, NULL, hInst, NULL);
    
        ti.cbSize=sizeof(TOOLINFO);
        ti.uFlags=TTF_SUBCLASS|TTF_IDISHWND|TTF_CENTERTIP;
        ti.hwnd=hDlg;
        ti.uId=(UINT)GetDlgItem(hDlg,IDOK);
        ti.hinst=hInst;
        ti.lpszText=L"titletitle";
        SendMessage(hToolTip, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti);
        return (INT_PTR)TRUE;
.......

пытаюсь повесить подсказку на кнопку, но она не оторажается

Автор: Dem_max 16.1.2009, 19:31
Попробуй так
Код

InitCommonControls();

   hWndToolTip = CreateWindowEx(WS_EX_TOPMOST,
                                 TOOLTIPS_CLASS, NULL,
                                 WS_POPUP,// | TTS_NOPREFIX,// | TTS_ALWAYSTIP,// | TTS_BALLOON,
                                 CW_USEDEFAULT,
                                 CW_USEDEFAULT,
                                 CW_USEDEFAULT,
                                 CW_USEDEFAULT,
                                 NULL,
                                 NULL,
                                 hInstance,
                                 NULL);


   ti.cbSize = sizeof(TOOLINFO);
   ti.uFlags = TTF_SUBCLASS | TTF_IDISHWND;
   ti.hinst = hInstance;
   ti.hwnd = hWndMain;
   ti.uId = (UINT)hWndBtn;
   ti.lpszText = "Привет";
   SendMessage(hWndToolTip, TTM_ADDTOOL, 0, (LPARAM)&ti);
   SendMessage(hWndToolTip, TTM_SETMAXTIPWIDTH, 0, (LPARAM)300);

Автор: nmn 16.1.2009, 19:48
Dem_max не работает
может настройки нужны для проекта какие либо дополнительные? потому что я копировал код из msdn, там в статье Using tooltips выделены отдельные функции для создания tip и тоже ничего не работало

Автор: Dem_max 17.1.2009, 07:41
Вспомнил еще
Код

   INITCOMMONCONTROLSEX icex;
   icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
   icex.dwICC = ICC_TAB_CLASSES; // С этим параметром надо проинициализировать
   InitCommonControlsEx(&icex);

Автор: nmn 17.1.2009, 13:09
не помогло,
прикрепляю проект, посмотрите что там не так

Автор: Dem_max 17.1.2009, 18:25
ВО первых вставь код после этих строк
Код

    if (!InitInstance (hInstance, nCmdShow))
    {
        return FALSE;
    }

тут.................................


И код 
Код

   INITCOMMONCONTROLSEX icex;
   icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
   icex.dwICC = ICC_TAB_CLASSES; // С этим параметром надо проинициализировать
   InitCommonControlsEx(&icex);

Запускаешь один раз и где "тут................................."
ну а вот код 
Код

   ti.cbSize = sizeof(TOOLINFO);
   ti.uFlags = TTF_SUBCLASS | TTF_IDISHWND;
   ti.hinst = hInstance;
   ti.hwnd = hWndMain;
   ti.uId = (UINT)hWndBtn;
   ti.lpszText = "Привет";
   SendMessage(hWndToolTip, TTM_ADDTOOL, 0, (LPARAM)&ti);

можешь и оставить там где есть.

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