Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 141


typcdef struct tagTOOLTIPTEXTA {

NMHDR heir;

LPSTR ipszTcxt;

char s/Tcxt[8()];

HINSTANCE hinst;

UINT u Flags; ! TOOLTIPTEXTA, FAR «LPTOOLTIPTEXTA;

168

typcdef struct tagTOOLTIPTEXTW {

NMHDR hdr;

LPWSTR IpszText;

WCHAR szText[80];

HINSTANCE hinst;

UINT uFIags; ) TOOLTIPTEXTW, FAR *LPTOOLTIPTEXTW;

#ifdcf UNICODE

#define TOOLTIPTEXT Wcllne LPTOOLTIPTEXT

#else

tfdefmc TOOLTIPTEXT

#definc LPTOOLTIPTEXT

#endif

TOOLTIPTEXTW LPTOOLTIPTEXTW

TOOLTIPTEXTA LPTOOLTIPTEXTA

Первое поле этой структуры, тоже структура, но типа NMHDR, опи­сана в файле winuser.h так:

typcdef struct tagNMHDR

i

HWND hwndFrom;

UINT idFrom;

UINT code;         //NM_code }   NMHDR; typedef NMHDR FAR * LPNMHDR;

hwndFrom - хэндл элемента, пославшего нотификационное сообщение, idFrom - идентификатор этого элемента, code - код нотификационного сообщения. Вроде бы все ясно.

Второе поле стуктуры типа TOOLTIPTEXT (как бы не запутаться с этими структурами!) - IpszText - может содержать указатель на строку, выдаваемую в качестве подсказки, или, если поле hinst не равно 0, содер­жит идентификатор строкового ресурса, определяющего текст выдавае­мой подсказки.

Вместо того чтобы определять указатель на строку, можно скопиро­вать эту строку в буфер szText, который является третьим полем структу­ры типа TOOLTIPTEXT.

Поле hinst является хэндлом экземпляра, содержащего строковый ре­сурс с текстом подсказки. Если IpszText является указателем на строку подсказки, это поле должно быть равным NULL.

И наконец, последнее поле - uFIags - содержит комбинацию флагов TTFJDISHWND и TTF RTLREADING, которые были рассмотрены ранее.

169

Анализируя поля этих двух структур, можно определить элемент, для которого определяется подсказка. Для того чтобы эта подсказка появи-лась на экране, достаточно определить либо указатель на строку подсказ­ки, либо ее идентификатор в таблице строк (не забыть при этом о поле hinst!), либо скопировать эту строку в предлагаемый буфер. И все! При­мер подобного использования подсказок приведен в разделе о работе с закладками.




Начало  Назад  Вперед



Книжный магазин