Zireael |
Отправлено: 17 Ноября, 2019 - 10:58:34
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: А где?
На этом форуме. Сам же спрашивал как создать таб, я выкладывал код.
Цитата: можно константу удаления вкладки
CODE:#define TCM_DELETEITEM 4872
Цитата: + константы
И зачем было удалять студию. Чтобы потом искать константы? |
|
|
007wan |
Отправлено: 17 Ноября, 2019 - 11:18:18
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: И зачем было удалять студию. Чтобы потом искать константы? Дело в том, что компьютер у меня новый и куплен для игр(70к руб). Брат купил. Но сейчас почти всё забьется, да и сам С++ много весит и трудно установить. Как только весь комплект соберется, то попробую установить С++, пока не хватает видеокарты. Короче - установлю позже чуть-чуть, а пока если не сложно, помогите, я решил не делать огромный файл констант, а брать только те, которые НУЖНЫЕ в ЭТОМ коде(несколько файлов констант).
Спасибо большое. Только не видел как поменять текст текущей вкладка или с индексом. Хотел извиниться за предоставленные неудобства. |
|
|
Zireael |
Отправлено: 17 Ноября, 2019 - 11:22:31
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: константы
CODE:#define TCM_INSERTITEM 4871
#define TCM_GETITEMCOUNT 4868
#define TCM_DELETEITEM 4872
#define TCM_GETCURSEL 4875
#define TCM_SETCURSEL 4876
#define TCM_SETITEMA 4870 |
|
|
007wan |
Отправлено: 17 Ноября, 2019 - 12:03:36
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Вот что вышло, но не так почему-тоКодл (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define TCIF_TEXT 1
#define TCIF_IMAGE 2
#define TCM_INSERTITEMA 4871
#define TCM_SETIMAGELIST 4867
#define IMAGE_ICON 1
#define ILC_MASK 1
#define LVSIL_SMALL 1
#define ILC_COLOR32 32
#define IMAGE_ICON 1
#define LR_LOADFROMFILE 16
#define IDI_INFORMATION 32516
#define IDI_WARNING 32515
#define IDI_SHIELD 32518
#define RUSSIAN_CHARSET 204
#define TCM_DELETEITEM 4872
external(INT, "LoadIcon", "LoadIconA", "User32.dll");
external(INT, "LoadImage", "LoadImageA", "User32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "ImageList_Create", "ImageList_Create", "Comctl32.dll");
external(INT, "ImageList_ReplaceIcon", "ImageList_ReplaceIcon", "Comctl32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "MoveWindow", "MoveWindow", "User32.dll");
int i, tab, ImageList, h_font;
string text_tab[3] = {"Новая вкладка", "Новая вкладка", "Новая вкладка"};
char text_tab_c[99];
int TCITEMA[7]={TCIF_TEXT | TCIF_IMAGE, 0, 0, address(#text_tab_c[0]), size(#text_tab_c[0]), 0, 0}
int Object_Button1;
int Object_Button2;
createdialog(0);
showdialog(0, "Dialog", 300, 300, 450, 300, 1, 1);
loop()sleep(100);
int Coordinates_plus[4][4];
Coordinates_plus[0][0] = 10; Coordinates_plus[0][1] = 12; Coordinates_plus[0][2] = 20; Coordinates_plus[0][3] = 20;
Coordinates_plus[1][0] = 130; Coordinates_plus[1][1] = 12; Coordinates_plus[1][2] = 20; Coordinates_plus[1][3] = 20;
Coordinates_plus[2][0] = 250; Coordinates_plus[2][1] = 12; Coordinates_plus[2][2] = 20; Coordinates_plus[2][3] = 20;
Coordinates_plus[3][0] = 370; Coordinates_plus[3][1] = 12; Coordinates_plus[3][2] = 20; Coordinates_plus[3][3] = 20;
function getmessage(0, WM_CREATE)
{
tab=CreateWindow(0, "SysTabControl32", "", WS_VISIBLE | WS_CHILD, 10, 10, 380, 150, gethwnd(0), 0, 0, 0);
Object_Button1 = CreateWindow(0, "BUTTON", "+", WS_VISIBLE | WS_CHILD, 10, 12, 20, 20, gethwnd(0), 0, 0, 0);
//Object_Button2 = CreateWindow(0, "BUTTON", "х", WS_VISIBLE | WS_CHILD, 100, 15, 20, 20, gethwnd(0), 0, 0, 0);
}
function getmessage(0, WM_COMMAND)
{
if (message.lparam == Object_Button1)
{
for(i=0; i<1; i++)
{
strcpy(#text_tab_c[0], text_tab[i]);
TCITEMA[5]=i;
sendmessage(TCM_INSERTITEMA, i, address(#TCITEMA[0]), formatiw(tab));
MoveWindow(Object_Button1, Coordinates_plus[i][0], Coordinates_plus[i][1], Coordinates_plus[i][2], Coordinates_plus[i][3]);
}
//MoveWindow(Object_Button1, 10, 12, 20, 20); //Когда нету вкладок - начальные значения.
//MoveWindow(Object_Button1, 130, 12, 20, 20); //Когда создана первая вкладка - переместить.
//MoveWindow(Object_Button1, 250, 12, 20, 20); //Когда создана вторая вкладка - переместить.
//MoveWindow(Object_Button1, 370, 12, 20, 20); //Когда создана третья вкладка - переместить.
}
}
function getmessage (0, WM_MOVE)
{
pause(100);
}
|
|
|
Zireael |
Отправлено: 17 Ноября, 2019 - 12:24:12
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: но не так почему-то
Как написано, так и работает.
Цитата: for(i=0; i<1; i++)
Зачем нужен цикл в одну итерацию? С таким же успехом можно написать i=0; |
|
|
007wan |
Отправлено: 17 Ноября, 2019 - 12:38:25
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: но не так почему-то
Как написано, так и работает.
Цитата: for(i=0; i<1; i++)
Зачем нужен цикл в одну итерацию? С таким же успехом можно написать i=0; Так блин он создает сразу 3 вкладки, а нужно по одной на один клик по "+"
(Добавление)
Еще почему-то кнопка пропадает, видимо Таб перекрывает её
(Добавление)
Код (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define TCIF_TEXT 1
#define TCIF_IMAGE 2
#define TCM_INSERTITEMA 4871
#define TCM_SETIMAGELIST 4867
#define IMAGE_ICON 1
#define ILC_MASK 1
#define LVSIL_SMALL 1
#define ILC_COLOR32 32
#define IMAGE_ICON 1
#define LR_LOADFROMFILE 16
#define IDI_INFORMATION 32516
#define IDI_WARNING 32515
#define IDI_SHIELD 32518
#define RUSSIAN_CHARSET 204
#define TCM_INSERTITEM 4871
#define TCM_GETITEMCOUNT 4868
#define TCM_DELETEITEM 4872
#define TCM_GETCURSEL 4875
#define TCM_SETCURSEL 4876
#define TCM_SETITEMA 4870
external(INT, "LoadIcon", "LoadIconA", "User32.dll");
external(INT, "LoadImage", "LoadImageA", "User32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "ImageList_Create", "ImageList_Create", "Comctl32.dll");
external(INT, "ImageList_ReplaceIcon", "ImageList_ReplaceIcon", "Comctl32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "MoveWindow", "MoveWindow", "User32.dll");
int i, tab, ImageList, h_font;
string text_tab[3] = {"Новая вкладка", "Новая вкладка", "Новая вкладка"};
char text_tab_c[99];
int TCITEMA[7]={TCIF_TEXT | TCIF_IMAGE, 0, 0, address(#text_tab_c[0]), size(#text_tab_c[0]), 0, 0}
int Object_Button1;
int Object_Button2;
int set_tab=0;
createdialog(0);
showdialog(0, "Dialog", 300, 300, 450, 300, 1, 1);
loop()sleep(100);
int Coordinates_plus[4][4];
Coordinates_plus[0][0] = 10; Coordinates_plus[0][1] = 12; Coordinates_plus[0][2] = 20; Coordinates_plus[0][3] = 20;
Coordinates_plus[1][0] = 130; Coordinates_plus[1][1] = 12; Coordinates_plus[1][2] = 20; Coordinates_plus[1][3] = 20;
Coordinates_plus[2][0] = 250; Coordinates_plus[2][1] = 12; Coordinates_plus[2][2] = 20; Coordinates_plus[2][3] = 20;
Coordinates_plus[3][0] = 370; Coordinates_plus[3][1] = 12; Coordinates_plus[3][2] = 20; Coordinates_plus[3][3] = 20;
function getmessage(0, WM_CREATE)
{
tab=CreateWindow(0, "SysTabControl32", "", WS_VISIBLE | WS_CHILD, 10, 10, 380, 150, gethwnd(0), 0, 0, 0);
Object_Button1 = CreateWindow(0, "BUTTON", "+", WS_VISIBLE | WS_CHILD, 10, 12, 20, 20, gethwnd(0), 0, 0, 0);
//Object_Button2 = CreateWindow(0, "BUTTON", "х", WS_VISIBLE | WS_CHILD, 100, 15, 20, 20, gethwnd(0), 0, 0, 0);
}
function getmessage(0, WM_COMMAND)
{
if (message.lparam == Object_Button1)
{
set_tab++;
if (set_tab == 1)
{
strcpy(#text_tab_c[0], text_tab[1]);
TCITEMA[5]=1;
sendmessage(TCM_INSERTITEMA, 1, address(#TCITEMA[0]), formatiw(tab));
MoveWindow(Object_Button1, Coordinates_plus[1][0], Coordinates_plus[1][1], Coordinates_plus[1][2], Coordinates_plus[1][3]);
}
if (set_tab == 2)
{
strcpy(#text_tab_c[0], text_tab[1]);
TCITEMA[5]=1;
sendmessage(TCM_INSERTITEMA, 1, address(#TCITEMA[0]), formatiw(tab));
MoveWindow(Object_Button1, Coordinates_plus[2][0], Coordinates_plus[2][1], Coordinates_plus[2][2], Coordinates_plus[2][3]);
}
if (set_tab == 3)
{
strcpy(#text_tab_c[0], text_tab[1]);
TCITEMA[5]=1;
sendmessage(TCM_INSERTITEMA, 1, address(#TCITEMA[0]), formatiw(tab));
MoveWindow(Object_Button1, Coordinates_plus[3][0], Coordinates_plus[3][1], Coordinates_plus[3][2], Coordinates_plus[3][3]);
}
//MoveWindow(Object_Button1, Coordinates_plus[i][0], Coordinates_plus[i][1], Coordinates_plus[i][2], Coordinates_plus[i][3]);
//MoveWindow(Object_Button1, 10, 12, 20, 20); //Когда нету вкладок - начальные значения.
//MoveWindow(Object_Button1, 130, 12, 20, 20); //Когда создана первая вкладка - переместить.
//MoveWindow(Object_Button1, 250, 12, 20, 20); //Когда создана вторая вкладка - переместить.
//MoveWindow(Object_Button1, 370, 12, 20, 20); //Когда создана третья вкладка - переместить.
}
}
function getmessage (0, WM_MOVE)
{
pause(100);
}
А тут вообще "+" не перемещается, хотя если без массива, то всё норм |
|
|
|