007wan |
Отправлено: 07 Апреля, 2019 - 13:15:40
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael , Короче я не понял что менять. Оставлю как есть.
--------------
SetWindowTheme Будет работать сейчас? или пока не хватает чего-то для работы?
(Добавление)
Почему Цитата: SendMessage(Object_Listbox1, LB_GETTEXT, 0, address(#Text_Listbox1[0]));
Загружает только одну строчку в файл или нет, но я пробовал и загрузил только то, что в самом верху(Отредактировано автором: 07 Апреля, 2019 - 13:18:23) |
|
|
Zireael |
Отправлено: 07 Апреля, 2019 - 14:59:50
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Как получить номера всех индексов
Номера 0, 1, 2 и т. д.
Узнать сколько всего строк LB_GETCOUNT.
Цитата: как получить весь текст?
Циклом for. |
|
|
007wan |
Отправлено: 08 Апреля, 2019 - 14:45:43
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael , Если я буду циклом for, то он сначала запишет в файл 0 строку, потом ЗАМЕНИТ и запишет 1 .2.3....А мне нужно, что бы он записал все стркои в файл
CODE:
a = sendmessage(LB_GETCOUNT, 0, 0, formatiw(Object_Listbox1));
for(int i=0; i<a i++)
{
SendMessage(Object_Listbox1, LB_GETTEXT, format(i), address(#Text_Listbox1[0]));
}
|
|
|
Zireael |
Отправлено: 08 Апреля, 2019 - 14:50:10
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: for(int i=0; i<a i++)
Пропущена ;
Цитата: сначала запишет в файл 0 строку, потом ЗАМЕНИТ
Цитата: fopen - открывает файл. Принимает два параметра. Первый string (путь к файлу), второй string или char:
w - открыть файл для записи. Если такого файла нет он создается. Если есть он перезапишется.
a - открыть файл для записи. Если такого файла нет он создается. Если есть он будет дописываться. |
|
|
Zireael |
Отправлено: 09 Апреля, 2019 - 02:31:22
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: почему не работает HScroll у listbox
Нужно установить ширину прокрутки.
listbox с полосами прокрутки (Отобразить)CODE:#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define WS_HSCROLL 1048576
#define WS_VSCROLL 2097152
#define LB_ADDSTRING 384
#define LB_GETCOUNT 395
#define LB_GETTEXT 393
#define LB_SETHORIZONTALEXTENT 404
#define LBS_DISABLENOSCROLL 4096
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "GetTextExtentPoint32", "GetTextExtentPoint32A", "Gdi32.dll" );
external(INT, "GetDC", "GetDC", "User32.dll" );
int list, hdc, max_length=0;
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
// добавить строки в список
add_list("текст0000");
add_list("текст1");
add_list("text2222222");
add_list("text33333333333333");
add_list("text4444444");
add_list("text5");
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
list=CreateWindow(0, "LISTBOX", "", LBS_DISABLENOSCROLL | WS_VSCROLL | WS_HSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE, 10, 10, 100, 150, gethwnd(0), 0, 0, 0);
hdc=GetDC(list);
}
function add_list(string s)
{
int SIZE[2];
new char c[size(s)+1];
strcpy(#c[0], s);
GetTextExtentPoint32(hdc, address(#c[0]), sizearray(c), address(#SIZE[0])); // узнать длину текста в пикселях
if(max_length<SIZE[0])
{
max_length=SIZE[0]; // запомнить максимальную длину строки
sendmessage(LB_SETHORIZONTALEXTENT, SIZE[0], 0, formatiw(list)); // установить ширину прокрутки
}
sendmessage(LB_ADDSTRING, 0, address(#c[0]), formatiw(list));
delete c;
} |
|
|
|