TabControl и мышь
даёт индек только активного таба.
Хотелось бы сделать таб активным при клике на нём правой клавишей мыши.
Сделал самостоятельно эмуляцию нажатия левой кнопки при нажатии правой (пример надыбал):
if(Shift.Contains(ssRight))
{
INPUT inp[2];
memset(inp,0,sizeof(inp));
inp[0].type=INPUT_MOUSE;
inp[0].mi.dwFlags=MOUSEEVENTF_LEFTDOWN;
inp[1].type=INPUT_MOUSE;
inp[1].mi.dwFlags=MOUSEEVENTF_LEFTUP;
SendInput(2,inp,sizeof(INPUT));
}
но не совсем понял назначение memset (и без него, вроде всё работает) и вообще не совсем ясна работа
этого кода. Можно его детально разобрать?
В идеале хотелось бы научиться получать Index неактивного Tab'a.
INPUT inp[2]; //массив из в элеметов структуры INPUT
memset(inp,0,sizeof(inp));//Очищяем память структуры устанавливая все ее значения в ноль. В некоторых случаях если так не сделать то могут возникнуть ошибки. А в некоторых нет. Хороший тон очищять структуру перед ее использованием. Также это сделать можно и с помощью ZeroMemory
inp[0].type=INPUT_MOUSE;
inp[0].mi.dwFlags=MOUSEEVENTF_LEFTDOWN;//левая кнопка мыши нажата
inp[1].type=INPUT_MOUSE;
inp[1].mi.dwFlags=MOUSEEVENTF_LEFTUP;//левая кнопка мыши опущена
SendInput(2,inp,sizeof(INPUT));//послали 2 команды в очередь сообщений ввода
Определить какя вкладка находится под курсором в данный момент поможет макрос TabCtrl_HitTest или слать напрямую контролу сообщени TCM_HITTEST
Помогите пожалуйста, как раз такая же задача. Но примеры выше не помогли (или я что-то не так делаю). Вообщем надо чтобы PopupMenu вылезало только над табами и при этом щёлчёк на правую кнопку делал таб активным.
http://narod.ru/disk/5034343000/notepad_tabs.zip.html
Мне бы хотя бы popup только над шапкой сделать
Вот пример с табами
Мне бы хотя бы popup только над шапкой сделать