007wan |
Отправлено: 02 Ноября, 2019 - 17:00:39
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: но как нарисовать рамку на нем без нижней границы?
Никак. Закрашивать её в цвет фона или рисовать отдельными линиями. В gdi+ вроде можно рисовать не замкнутые фигуры, но через кибор не сделать. хорошо, можно пример , как сделать прямоугольник с закругленными углами,но без нижней прямой палочки ВСЕМИ возможными способами? |
|
|
Budni |
Отправлено: 05 Ноября, 2019 - 10:11:18
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Как заместо цифр добавить слова взятые из текстового файла?
код (Отобразить)#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define LB_ADDSTRING 384
#define LB_SETCURSEL 390
#define WS_VSCROLL 2097152
#define LB_DELETESTRING 386
#define LB_GETCURSEL 392
#define LBS_NOTIFY 1
#define SS_NOTIFY 256
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
int col, xek, yek;
getdisplay(col, xek, yek);
xek=xek/2-200; yek=yek/2;
int static;
int list;
int current_item=0;
createdialog(0);
showdialog(0, "скопировать",yek, yek, 380, 215, 1, 1);
for (int h=0; h<10; h++){
add_list(format(h));
}
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
list=CreateWindow(0, "LISTBOX", "", LBS_NOTIFY | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL, 10, 10, 350,145, gethwnd(0), 0, 0, 0);
static=CreateWindow(0, "STATIC", "Скопировать текст", SS_NOTIFY | WS_CHILD | WS_VISIBLE, 25, 149, 400, 18, gethwnd(0), 0, 0, 0);
}
function add_list(string s)
{
new char c[size(s)+1];
strcpy(#c[0], s);
sendmessage(LB_AD\DSTRING, 0, address(#c[0]), formatiw(list));
delete c;
}
function getmessage(0, WM_COMMAND)
{
if(message.lparam==list)
{
current_item=sendmessage(LB_GETCURSEL, 0, 0, formatiw(list));
//textout(0, xek, yek, "Выбран пункт: "+format(current_item), 1);
sleep(200);
mouse(LEFT,175, 217);
sleep(200);
key(format(current_item));
}
}
(Отредактировано автором: 05 Ноября, 2019 - 10:12:16) |
|
|
Zireael |
Отправлено: 05 Ноября, 2019 - 10:37:14
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Как заместо цифр добавить слова взятые из текстового файла?
Цитата: for (int h=0; h<10; h++){
add_list(format(h));
}
Заменить на:
CODE:string path="C:\123.txt";
string s;
if(fopen(path, "r"))
{
for(int h=0; freadline(s); h++)add_list(s);
fclose();
} |
|
|
Zireael |
Отправлено: 05 Ноября, 2019 - 12:05:20
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: А как вывести слова в переменную из слова которое нажму?
code (Отобразить)CODE:#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define LB_ADDSTRING 384
#define LB_GETCURSEL 392
#define LB_GETTEXT 393
#define LBS_NOTIFY 1
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
int list, current=-1;
char text[999]={0}
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
textbkcolor(16000000, 65279);
loop()
{
textout(0, 100, 400, "Номер выбранной строки: "+format(current), 1);
textout(1, 100, 420, "Текст выбранной строки: "+format(#text[0]), 1);
sleep(10);
}
function getmessage(0, WM_CREATE)
{
list=CreateWindow(0, "LISTBOX", "", LBS_NOTIFY | WS_BORDER | WS_CHILD | WS_VISIBLE, 10, 10, 150, 250, gethwnd(0), 0, 0, 0);
// добавить строки в список
add_list("текст0");
add_list("текст1");
add_list("text2");
add_list("text3");
}
function add_list(string s)
{
new char c[size(s)+1];
strcpy(#c[0], s);
sendmessage(LB_ADDSTRING, 0, address(#c[0]), formatiw(list));
delete c;
}
function getmessage(0, WM_COMMAND)
{
if(message.lparam==list) // если был клик по списку
{
current=sendmessage(LB_GETCURSEL, 0, 0, formatiw(list)); // узнать номер выбранной строки
sendmessage(LB_GETTEXT, current, address(#text[0]), formatiw(list)); // получить текст
return;
}
} |
|
|
|