007wan |
Отправлено: 01 Марта, 2019 - 15:09:48
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Как выключить скроллер?
CODE:EnableWindow(Scrollbar1, 0); -Не работает.
(Добавление)
CODE:int Scrollbar1 = CreateWindow(0, "SCROLLBAR", 0, 1342177280, 400, 70, 200, 20, formatwi(MainWindow), 0, 0, 0);
(Добавление)
И ошибки в коде нету, я сначала объявил, потом дал значение. Все кнопки работают(выключаются/включаются), а этот нет. |
|
|
Kibor |
Отправлено: 01 Марта, 2019 - 16:49:32
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Ну если ошибок нет, то
CODE:EnableWindow(Scrollbar1, 0);
Если все же есть, то
CODE:external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "EnableWindow", "EnableWindow", "user32.dll");
int s1;
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
while(window("Диалог")==0)sleep(10);
win w=window("Диалог");
int a=0;
loop()
{
pause(1000);
if (a==1){a=0; EnableWindow(s1, 1);}
else{a=1; EnableWindow(s1, 0);}
}
//
function getmessage(0, WM_CREATE)
{
s1=CreateWindow(0, "scrollbar", 0, 1342177280, 10, 10, 200, 20, gethwnd(0), 0, 0, 0);
} |
|
|
Zireael |
Отправлено: 03 Марта, 2019 - 13:25:58
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: А как сделать, что бы жмешь на меню "Настройки" и открывает диалог второй.
code (Отобразить)CODE:#define MNS_NOTIFYBYPOS 134217728
#define MIM_STYLE 16
#define MF_POPUP 16
external(INT, "CreateMenu", "CreateMenu", "User32.dll" );
external(INT, "CreatePopupMenu", "CreatePopupMenu", "User32.dll" );
external(INT, "AppendMenu", "AppendMenuA", "User32.dll" );
external(INT, "SetMenuInfo", "SetMenuInfo", "User32.dll" );
external(INT, "SetMenu", "SetMenu", "User32.dll" );
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
int MENUINFO[7]={28, MIM_STYLE, MNS_NOTIFYBYPOS, 0, 0, 0, 0};
int HMENU, HMENU2=CreatePopupMenu();
AppendMenu(HMENU2, MF_POPUP, 1, "Открыть" );
HMENU=CreateMenu();
AppendMenu(HMENU, MF_POPUP, HMENU2, "Настройки" );
createdialog(0);
createdialog(1);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
loop()sleep(1);
function getmessage(0, WM_CREATE)
{
SetMenuInfo(HMENU, address(#MENUINFO[0]));
SetMenu(gethwnd(0), HMENU);
}
function getmessage(0, WM_MENUCOMMAND) //Отлавливаем клик по пункту меню
{
if (message.lparam==HMENU2)
{
showdialog(1, "Диалог2",500, 100, 200, 200, 0, 1);
}
} |
|
|
Zireael |
Отправлено: 03 Марта, 2019 - 14:42:05
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: А еще возможно добавить такое: как в киборе: жмешь настройки и открывает окно второе, потом кликаем на окно кибор, где "код" - оно не активное и мигает "настройки"?
CODE:#define FLASHW_TIMERNOFG 12
#define FLASHW_CAPTION 1
external(INT, "FlashWindowEx", "FlashWindowEx", "User32.dll" );
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
while(window("Диалог")==0)sleep(10);
win w=window("Диалог");
int FLASHWINFO[5]={20, formatwi(w), FLASHW_TIMERNOFG | FLASHW_CAPTION, 0, 100};
enabletimer(0);
loop()sleep(10);
CREATE_TIMER(0, 100)
{
if(formatwi(getwindow())!=formatwi(w))FlashWindowEx(address(#FLASHWINFO[0]));
}
Если окно диалога теряет фокус, то оно начинает мигать пока не получит фокус обратно. |
|
|
007wan |
Отправлено: 05 Марта, 2019 - 16:19:53
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
CODE:https://it.wikireading.ru/22689
Что-то не понял откуда и что куда. Какая нафиг Z-последовательность)
(Добавление)
CODE:SetWindowPos(Button3, formatwi(MainWindow),610, 10, 20, 20);
(Добавление)
CODE:SetWindowPos(Button3 ,HWND_BOTTOM,610, 10, 170, 20); ?
(Добавление)
SetWindowPos
Описание: function SetWindowPos(Wnd, WndInsertAfter: HWnd; X, Y, cx, cy: Integer; Flags:
Word);
Изменяет pазмеp, положение и поpядок окна.
Паpаметpы:
Wnd: Идентификатоp окна.
WndInsertAfter: Пpедыдущее окно в списке администpатоpа окон.
X, Y: Веpхний левый угол. cx: Новая шиpина окна. cy: Новая высота окна.
Возвpащаемое значение:
Один из флагов swp_DrawFrame, swp_HideWindow, swp_NoActivate, swp_NoRemove, swp_NoSize, swp_NoRedraw, swp_NoZOrder, swp_ShowWindow. См. pаздел "Флаги установки положения окна, swp_" в главе 1. функция находится в файле user32.dll
CODE:Как в этом разбираться? Откуда брать. Вводил в поиске. а там еще хуже, даже без примеров
(Добавление)
007wan пишет: WndInsertAfter: Пpедыдущее окно в списке администpатоpа окон. Вот точнее это не пойу
(Добавление)
Вроде нашел и походу это оно
(Добавление)
CODE:MoveWindow(Button3,610, 10, 20, 20); тоже не работает |
|
|
|