На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Creating a Tooltip Control



The following example creates a tooltip control and adds several tools to it. The example creates a grid of rectangles in the client area of a window and then uses the TTM_ADDTOOL message to add each rectangle to the tooltip control. Note that the window procedure for the owner of the tooltip control must handle mouse messages and pass them on to the tooltip control by using the TTM_RELAYEVENT message.

// DoCreateTooltip - creates a tooltip control and adds some tools
// to it.
// Returns the handle of the tooltip control if successful or NULL
// otherwise.
// hwndOwner - handle of the owner window
//
// Global variable
// g_hinst - handle of the application instance
extern HINSTANCE g_hinst;

HWND DoCreateTooltip(HWND hwndOwner)
{
HWND hwndTT; // handle of tooltip
int row, col; // rows and columns
TOOLINFO ti; // tool information

int id = 0; // offset to string identifiers
static char *szTips[NUM_TIPS] = // tip text
{
"Cut", "Copy", "Paste", "Undo", "Open", "Save"
};

// Ensure that the common control DLL is loaded, and create
// a tooltip control.
InitCommonControls();

hwndTT = CreateWindow(TOOLTIPS_CLASS, (LPSTR) NULL, TTS_ALWAYSTIP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, (HMENU) NULL, g_hinst, NULL);


if (hwndTT == (HWND) NULL)
return (HWND) NULL;

// Divide the client area into a grid of rectangles, and add each
// rectangle to the tooltip.
for (row = 0; row < MAX_ROWS ; row++ )
for (col = 0; col < MAX_COLS; col++) {
ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = 0;
ti.hwnd = hwndOwner;
ti.hinst = g_hinst;
ti.uId = (UINT) id;
ti.lpszText = (LPSTR) szTips[id++];

ti.rect.left = col * CX_COLUMN;
ti.rect.top = row * CY_ROW;
ti.rect.right = ti.rect.left + CX_COLUMN;
ti.rect.bottom = ti.rect.top + CY_ROW;

if (!SendMessage(hwndTT, TTM_ADDTOOL, 0,
(LPARAM) (LPTOOLINFO) &ti))
return NULL;
}

return hwndTT;
}



Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Создание Управления Tooltip



Следующий пример создает управление tooltip и добавляет несколько инструментальных средств к этому. Пример создает сетку прямоугольников в области клиента окна затем использует сообщение TTM_ADDTOOL, чтобы добавлять каждый прямоугольник к управлению tooltip. Отметьте, что процедура окна для владельца управления tooltip должна прооперировать сообщения мыши и передавать им на на управление tooltip используя сообщение TTM_RELAYEVENT.

// DoCreateTooltip - СОЗДАЕТ управление tooltip и добавляет некоторые инструментальные средства // к этому.
// Возврат ручка управления tooltip если успешный или НЕДЕЙСТВИТЕЛЬНЫЙ // в противном случае.
// hwndOwner - Ручка окна владельца
//
// Глобальная переменная
// g_hinst - ручка прикладного примера extern g_hinst HINSTANCE;

HWND DoCreateTooltip(HWND hwndOwner)
{
HWND hwndTT; // ручка tooltip int колонки, col; // колонки и ti колонн TOOLINFO; // информация средства

int id = 0; // смещение должно нанизывать статический символ идентификаторов *szTips[NUM_TIPS] = // текст конца
{
"Вырезанное", "Копия", "Паста", "Отмена", "Открытый", "Сохраняемый"
};

// Проверьте, что общее управление DLL загружено, и создавайте // a tooltip управление.
InitCommonControls();

hwndTT = CreateWindow(TOOLTIPS_CLASS, (LPSTR) НЕДЕЙСТВИТЕЛЬНЫЙ, TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, НЕДЕЙСТВИТЕЛЬНЫЙ, (HMENU) НЕДЕЙСТВИТЕЛЬНЫЙ, g_hinst, НЕДЕЙСТВИТЕЛЬНЫЙ);


если возврат (hwndTT == (HWND) НЕДЕЙСТВИТЕЛЬНЫЙ) (HWND) НЕДЕЙСТВИТЕЛЬНЫЙ;

// Поделите область клиента в сетку прямоугольников и добавляйте каждый // прямоугольник к tooltip.
для (колонка = 0; колонка < MAX_ROWS; колонка++ ) для (col = 0; col < MAX_COLS; col++) { ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = 0;
ti.hwnd = hwndOwner;
g_hinst ti.hinst =;
ti.uId = id (UINT);
ti.lpszText = (LPSTR) szTips[id++];

col ti.rect.left = * CX_COLUMN;
колонка ti.rect.top = * CY_ROW;
ti.rect.right = ti.rect.left + CX_COLUMN;
ti.rect.bottom = ti.rect.top + CY_ROW;

если (!SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti)) ОБРАТНЫЙ НЕДЕЙСТВИТЕЛЬНЫЙ;
}

возвращайте hwndTT;
}



Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz