Window TOPMOST для hand-coded проекта

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Window TOPMOST для hand-coded проекта

Сообщение morkovin »

С11, ABC
Хотелось бы получить сабж. И не получается :(
Что не так?
Привожу фрагмент программы:
PROGRAM

PRAGMA('project(#pragma define(_SVDllMode_ => 0))')
PRAGMA('project(#pragma define(_SVLinkMode_ => 1))')
!- link manifest
PRAGMA('project(#pragma link(TestClientSrc.EXE.manifest))')

MAP
MODULE('Win32API')
_SetWIndowPos (UNSIGNED hWnd, LONG, LONG, LONG, LONG, LONG, ULONG),BOOL,RAW,PASCAL,PROC,NAME('SetWindowPos')
END
END

INCLUDE('WebSockets.inc')
HANDLE equate(long)
HWND equate(HANDLE)
HWND_TOPMOST equate(-1)

client CLASS(TWebSocketClient)
ConnectionOpened PROCEDURE(), DERIVED, PROTECTED
ConnectionClose PROCEDURE(WebSocketCloseCode pCode, STRING pReason), DERIVED, PROTECTED
TextFrame PROCEDURE(STRING pText), DERIVED, PROTECTED
LogError PROCEDURE(STRING pMsg), DERIVED, PROTECTED
END

MsgTextToSend STRING(256)
FileToSend STRING(256)
PrimCnt LONG
AbiCnt LONG
PrevPrimCnt LONG
PrevAbiCnt LONG



MessageQ QUEUE, PRE(MessageQ)
sText STRING(255)
END

host STRING(255)
allowUntrusted BOOL

Window WINDOW('МОНИТОРИНГ ПОСТУПАЮЩИХ'),AT(,,183,132),CENTER,GRAY,SYSTEM, |
FONT('Microsoft Sans Serif',8)
ENTRY(@s255),AT(10,5,109),USE(host)
BUTTON('Connect'),AT(125,4,50),USE(?bConnect)
CHECK(' Allow untrusted'),AT(8,102,,6),USE(allowUntrusted),HIDE
LIST,AT(10,23,171,27),USE(?lstMessages),HIDE,HVSCROLL,FROM(MessageQ)
ENTRY(@n_4),AT(9,77),USE(AbiCnt),SKIP,TRN,CENTER,FONT(,16,,FONT:bold)
ENTRY(@n_4),AT(104,77,53),USE(PrimCnt),SKIP,TRN,CENTER,FONT(,16,,FONT:bold)
STRING('Абитуриенты:'),AT(8,61),USE(?STRING1),FONT('Arial',10,,FONT:regular)
STRING('На первичной регистрации:'),AT(72,61,110,12),USE(?STRING1:2), |
FONT('Arial',10,,FONT:regular)
END

CODE

SYSTEM {PROP:FontSize + PROP:TipsFont}=12
SYSTEM {PROP:FontColor + PROP:TipsFont}=COLOR:Blue
SYSTEM {PROP:FontStyle + PROP:TipsFont}=FONT:bold
SYSTEM {PROP:FontName + PROP:TipsFont}='Arial Cyr'
SYSTEM{PROP:Charset} = CHARSET:Cyrillic
SYSTEM{PROP:Charset+PROP:TipsFont}=CHARSET:Cyrillic


host = GETINI('server', 'host', 'ws://88.87.91.216:8081', '.\TestClientSrc.ini')
allowUntrusted = GETINI('server', 'allowUntrusted', 0, '.\TestClientSrc.ini')

OPEN(Window)
_SetWindowPos(0{PROP:Handle},HWND_TOPMOST,0,0,0,0,3)
WBR, morkovin
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Window TOPMOST для hand-coded проекта

Сообщение morkovin »

Разобрался! Надо устанавливать TOPMOST только после полного открытия окна! :)
OPEN(Window)
ACCEPT
CASE EVENT()
OF EVENT:AlertKey

OF EVENT:CloseDown
OF EVENT:CloseWindow
OF EVENT:Completed
OF EVENT:GainFocus
OF EVENT:LoseFocus
OF EVENT:Notify
OF EVENT:OpenWindow
! [Priority 8500]
_SetWindowPos(0{PROP:Handle},HWND_TOPMOST,0,0,0,0,3h) !4043h)

OF EVENT:PreAlertKey
ELSE
! [Priority 7560]

END

CASE ACCEPTED()

OF ?bConnect
WBR, morkovin
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Window TOPMOST для hand-coded проекта

Сообщение kreator »

В первом варианте, наверно, надо было сделать перед вызовом _SetWindowPos "0{prop:Active} = True". В классе SV это присутствует.
We are hard at work… for you. :)
Ответить