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


Автор: javavirys 10.2.2014, 10:18
Дайте пожалуйста пример static'a с подсказкой(tooltip)

Автор: Dem_max 10.2.2014, 19:05
http://msdn.microsoft.com/en-us/library/windows/desktop/hh298368(v=vs.85).aspx

Автор: javavirys 10.2.2014, 20:07
Цитата(Dem_max @ 10.2.2014,  19:05)
http://msdn.microsoft.com/en-us/library/windows/desktop/hh298368(v=vs.85).aspx

Мне надо добавить Static'y, а не диалогу. Пробую так но подсказка не отображается:
Код

BOOL CALLBACK EnumChildProc(HWND hwndCtrl, LPARAM lParam) 

    TOOLINFO ti; 
    char szClass[64]; 
 
    // Skip static controls. 
    GetClassName(hwndCtrl, szClass, sizeof(szClass)); 
    if (lstrcmp(szClass, WC_STATIC)==0) {
        memset (&ti, 0, sizeof(TOOLINFO));
        ti.cbSize = sizeof(TOOLINFO); 
        ti.uFlags = TTF_IDISHWND | TTF_SUBCLASS; 
 
        ti.uId = (UINT) hwndCtrl; 
        ti.hinst = hinst; 
        ti.lpszText = "Test";
        SendMessage (hTooltip, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti);   
 
    } 
 
    return TRUE; 

 
void CreateHint(HWND hParent)
{
    HINSTANCE hinst = GetModuleHandle (NULL);
 
    // Создать подсказку
    hTooltip = CreateWindowEx (WS_EX_TOPMOST,TOOLTIPS_CLASS, (LPSTR)NULL, WS_POPUP|TTS_NOPREFIX|TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, (HMENU)NULL, hinst, NULL);
 
    if (!EnumChildWindows(MainTab, (WNDENUMPROC) EnumChildProc, 0)) 
        return; 
}
//...
for(int i=0;i<5;i++)
{
        hLabels[i]=CreateWindowEx(WS_EX_CONTROLPARENT,WC_STATIC,TextLabels[i],WS_CHILD | WS_VISIBLE,10,(i*35)+30,75,35,MainTab,0,hinst,NULL);
        
    }
CreateHint(MainTab);
//...
 
Подскажите что тут не так? 
Очень вас прошу!

Автор: Dem_max 11.2.2014, 15:30
Цитата

Мне надо добавить Static'y, а не диалогу.


Там статику и добавляется, диалогу вообще ничего назначить, другого примера нету.

Автор: javavirys 12.2.2014, 10:31
что-то я там не понял, какой ид отправить функции  GetDlgItem(hDlg, toolID) и что это за HWND hDlg?

Автор: Dem_max 12.2.2014, 17:12
Ну если у тебя статик на диалоге, то используется GetDlgItem для получения хэндла статика, если статик не на диалоге не используй GetDlgItem

Автор: javavirys 14.2.2014, 13:55
Цитата(Dem_max @ 12.2.2014,  17:12)
Ну если у тебя статик на диалоге, то используется GetDlgItem для получения хэндла статика, если статик не на диалоге не используй GetDlgItem

Вот выложил исходники, в них подсказка выводится только кнопке, а static'у не хочет выводится , помогите разобраться в чем проблема?

Автор: Dem_max 15.2.2014, 11:49
Посмотри еще тут
http://msdn.microsoft.com/en-us/library/hh298405(v=vs.85).aspx

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