код (Отобразить)
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define SW_HIDE 0
#define SW_SHOW 5
#define TCIF_TEXT 1
#define TCM_GETCURSEL 4875
#define TCM_INSERTITEMA 4871
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll"
external(INT, "ShowWindow", "ShowWindow", "User32.dll"
int TabControl;
string text_tab[3] = {"Вкладка1", "Вкладка2", "Вкладка3"}
char text_tab_c[99];
int current_tab=0, temp_current_tab;
int TCITEMA[7]={TCIF_TEXT, 0, 0, address(#text_tab_c[0]), sizearray(text_tab_c), 0, 0};
int control[3][10]; // массив, в котором будут храниться хендлы контролов таба
createdialog(0);
showdialog(0, "Dialog", 300, 300, 450, 300, 1, 1);
enabletimer(0);
loop()
{
textout(0, 300, 100, format(current_tab), 1);
sleep(10);
}
function getmessage(0, WM_CREATE)
{
TabControl=CreateWindow(0, "SysTabControl32", "", WS_VISIBLE | WS_CHILD, 10, 10, 300, 200, gethwnd(0), 0, 0, 0); // создать tab
for(int i=0; i<3; i++) // цикл чтобы добавить вкладки
{
strcpy(#text_tab_c[0], text_tab[i]);
sendmessage(TCM_INSERTITEMA, i, address(#TCITEMA[0]), formatiw(TabControl));
}
initialarray(#control[0][0], 0);
// добавить контролы для первой вкладки
control[0][0]=3; // на первой вкладке 3 контрола
control[0][1] = CreateWindow(0, "BUTTON", "Кнопка1", WS_VISIBLE | WS_CHILD, 10, 40, 70, 20, gethwnd(0), 0, 0, 0);
control[0][2] = CreateWindow(0, "BUTTON", "Кнопка2", WS_VISIBLE | WS_CHILD, 10, 70, 70, 20, gethwnd(0), 0, 0, 0);
control[0][3] = CreateWindow(0, "EDIT", "Edit1", WS_BORDER | WS_VISIBLE | WS_CHILD, 100, 55, 80, 20, gethwnd(0), 0, 0, 0);
// добавить контролы для второй вкладки, без стиля WS_VISIBLE
control[1][0]=1; // на второй вкладке 1 контрол
control[1][1] = CreateWindow(0, "BUTTON", "Кнопка3", WS_CHILD, 30, 70, 100, 40, gethwnd(0), 0, 0, 0);
// добавить контролы для третьей вкладки, без стиля WS_VISIBLE
control[2][0]=2; // на третьей вкладке 2 контрола
control[2][1] = CreateWindow(0, "BUTTON", "Кнопка4", WS_CHILD, 50, 40, 70, 20, gethwnd(0), 0, 0, 0);
control[2][2] = CreateWindow(0, "EDIT", "Edit3", WS_BORDER | WS_CHILD, 50, 70, 80, 20, gethwnd(0), 0, 0, 0);
}
function getmessage(0, WM_COMMAND)
{
// обработка сообщений
if (message.lparam == control[0][1])
{
messagebox("Нажата Кнопка1"
return;
}
if (message.lparam == control[0][2])
{
messagebox("Нажата Кнопка2"
return;
}
if (message.lparam == control[1][1])
{
messagebox("Нажата Кнопка3"
return;
}
}
CREATE_TIMER(0, 300)
{
temp_current_tab=sendmessage(TCM_GETCURSEL, 0, 0, formatiw(TabControl)); // узнать текущую выбранную вкладку
if(temp_current_tab != current_tab) // если она не равна текущей выбранной вкладке
{
for(int tab_control_show=0; tab_control_show < control[current_tab][0]; tab_control_show++)
ShowWindow(control[current_tab][tab_control_show+1], SW_HIDE); // скрыть контролы текущей вкладки
current_tab=temp_current_tab; // запомнить какая выбрана вкладка
for(tab_control_show=0; tab_control_show < control[current_tab][0]; tab_control_show++)
ShowWindow(control[current_tab][tab_control_show+1], SW_SHOW); // показать контролы выбранной вкладки
}
}
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define SW_HIDE 0
#define SW_SHOW 5
#define TCIF_TEXT 1
#define TCM_GETCURSEL 4875
#define TCM_INSERTITEMA 4871
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll"
external(INT, "ShowWindow", "ShowWindow", "User32.dll"
int TabControl;
string text_tab[3] = {"Вкладка1", "Вкладка2", "Вкладка3"}
char text_tab_c[99];
int current_tab=0, temp_current_tab;
int TCITEMA[7]={TCIF_TEXT, 0, 0, address(#text_tab_c[0]), sizearray(text_tab_c), 0, 0};
int control[3][10]; // массив, в котором будут храниться хендлы контролов таба
createdialog(0);
showdialog(0, "Dialog", 300, 300, 450, 300, 1, 1);
enabletimer(0);
loop()
{
textout(0, 300, 100, format(current_tab), 1);
sleep(10);
}
function getmessage(0, WM_CREATE)
{
TabControl=CreateWindow(0, "SysTabControl32", "", WS_VISIBLE | WS_CHILD, 10, 10, 300, 200, gethwnd(0), 0, 0, 0); // создать tab
for(int i=0; i<3; i++) // цикл чтобы добавить вкладки
{
strcpy(#text_tab_c[0], text_tab[i]);
sendmessage(TCM_INSERTITEMA, i, address(#TCITEMA[0]), formatiw(TabControl));
}
initialarray(#control[0][0], 0);
// добавить контролы для первой вкладки
control[0][0]=3; // на первой вкладке 3 контрола
control[0][1] = CreateWindow(0, "BUTTON", "Кнопка1", WS_VISIBLE | WS_CHILD, 10, 40, 70, 20, gethwnd(0), 0, 0, 0);
control[0][2] = CreateWindow(0, "BUTTON", "Кнопка2", WS_VISIBLE | WS_CHILD, 10, 70, 70, 20, gethwnd(0), 0, 0, 0);
control[0][3] = CreateWindow(0, "EDIT", "Edit1", WS_BORDER | WS_VISIBLE | WS_CHILD, 100, 55, 80, 20, gethwnd(0), 0, 0, 0);
// добавить контролы для второй вкладки, без стиля WS_VISIBLE
control[1][0]=1; // на второй вкладке 1 контрол
control[1][1] = CreateWindow(0, "BUTTON", "Кнопка3", WS_CHILD, 30, 70, 100, 40, gethwnd(0), 0, 0, 0);
// добавить контролы для третьей вкладки, без стиля WS_VISIBLE
control[2][0]=2; // на третьей вкладке 2 контрола
control[2][1] = CreateWindow(0, "BUTTON", "Кнопка4", WS_CHILD, 50, 40, 70, 20, gethwnd(0), 0, 0, 0);
control[2][2] = CreateWindow(0, "EDIT", "Edit3", WS_BORDER | WS_CHILD, 50, 70, 80, 20, gethwnd(0), 0, 0, 0);
}
function getmessage(0, WM_COMMAND)
{
// обработка сообщений
if (message.lparam == control[0][1])
{
messagebox("Нажата Кнопка1"
return;
}
if (message.lparam == control[0][2])
{
messagebox("Нажата Кнопка2"
return;
}
if (message.lparam == control[1][1])
{
messagebox("Нажата Кнопка3"
return;
}
}
CREATE_TIMER(0, 300)
{
temp_current_tab=sendmessage(TCM_GETCURSEL, 0, 0, formatiw(TabControl)); // узнать текущую выбранную вкладку
if(temp_current_tab != current_tab) // если она не равна текущей выбранной вкладке
{
for(int tab_control_show=0; tab_control_show < control[current_tab][0]; tab_control_show++)
ShowWindow(control[current_tab][tab_control_show+1], SW_HIDE); // скрыть контролы текущей вкладки
current_tab=temp_current_tab; // запомнить какая выбрана вкладка
for(tab_control_show=0; tab_control_show < control[current_tab][0]; tab_control_show++)
ShowWindow(control[current_tab][tab_control_show+1], SW_SHOW); // показать контролы выбранной вкладки
}
}
делал все как по видео тут(для просмотра ссылки Вам необходимо авторизоваться)
но нечего не выходит в этом скрипте нету флагбатона