![]() |
#1 |
Участник
|
строка в статус баре
День добрый всем? Каким образом можно выводить свой текст в статус бар? т.е. если мы бегаем по АОТ, в нижнем левом углу отображается путь, а мне нужно в определенный момент выводить туда свой и текст и желательно изменять цвет фона.
|
|
![]() |
#2 |
Участник
|
А еще есть вот такой вариант.
|
|
|
За это сообщение автора поблагодарили: greench (1), DSPIC (2). |
![]() |
#3 |
Боец
|
Для изменения данного текста придется воспользоваться WinApi
\Classes\WinAPI\setWindowText(int _handle, str _txt ) Небольшая трудность(техническая) - в получении _handle этого окна. В этом также поможет WinApi и утилитка Microsoft Spy, которая идет в комплекте с MS VisualStudio |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от Stitch_MS
![]() А еще есть вот такой вариант.
|
|
![]() |
#5 |
Боец
|
Цитата:
Сообщение от Stitch_MS
![]() А еще есть вот такой вариант.
![]() + наверняка - переключает статус-бар в "ручной режим". Как я понял - автору нужно туда мгновенные месаги кидать на ярком фоне, а в остальном - стандартное поведение должно быть ?! |
|
![]() |
#6 |
Участник
|
Вы меня абсолютно правильно поняли. В приведенном выше коде записывается сообщение в правую часть status line
|
|
![]() |
#7 |
Участник
|
![]()
В базе знаний: Как вывести строку в StatusBar?
__________________
Dynamics AX 4.0 SP2 |
|
![]() |
#8 |
Боец
|
Цитата:
Добавлю ещё как идею. В момент, когда нужно вывести текст в статус-бар, сам статус бар можно обводить в рамку или ещё как-нибудь выделять. Например, как в FormDigger'e, или что-нибудь похожее, чтобы юзер сразу обратил внимание. Но тут уж WinApi и тема, предложенная in.dc |
|
![]() |
#9 |
Участник
|
Простите за назойливость. А hWnd никто не подскажет для AX 4.0? Я из под терминала не могу поймать.
|
|
![]() |
#10 |
Боец
|
X++: static void hWndStatusBar(Args _args) { HWnd hWndStatusBar; ; hWndStatusBar = WinApi::findWindowEx(infolog.hWnd(), 0, identifierstr(AxChildFrame), ''); hWndStatusBar = WinApi::findWindowEx(hWndStatusBar, 0, identifierstr(AxStatusBar), ''); WinApi::setWindowText(hWndStatusBar, "234"); } |
|
|
За это сообщение автора поблагодарили: greench (1). |
![]() |
#11 |
NavAx
|
А так не пробовали?
X++: static void Test(Args _args) { int i; Percentbar percentbar; ; percentbar = new Percentbar(1000, "Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1"); sleep(3000); percentbar.finalize(); percentbar = new Percentbar(1000, "Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2"); sleep(3000); percentbar.finalize(); percentbar = new Percentbar(1000, "Operation in progress"); for (i = 1; i <= 1000; i++) { percentbar.set(i); sleep(3); } } |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#12 |
Участник
|
Небольшой штрих
Цитата:
Сообщение от DSPIC
![]() X++: static void hWndStatusBar(Args _args) { HWnd hWndStatusBar; ; hWndStatusBar = WinApi::findWindowEx(infolog.hWnd(), 0, identifierstr(AxChildFrame), ''); hWndStatusBar = WinApi::findWindowEx(hWndStatusBar, 0, identifierstr(AxStatusBar), ''); WinApi::setWindowText(hWndStatusBar, "234"); } X++: static void jbStatusBarTextDax40(Args _args) { HWND hWndChildFrame = WinApi::findWindowEx( infolog.hWnd(), 0, identifierstr( AxChildFrame ), "StatusBar" ) ; HWND hWndStatusBar = WinApi::findWindowEx( hWndChildFrame, 0, identifierstr(AxStatusBar), "" ) ; ; if( hWndStatusBar ) WinApi::setWindowText( hWndStatusBar, "demo text in status bar" ) ; } X++: hWndStatusBar = WinApi::findWindowEx(infolog.hWnd(), 0, identifierstr(AxChildFrame), ''); UPD: результат тестирования исходного варианта X++: static void hWndStatusBar(Args _args) { HWnd hWndStatusBar; ; hWndStatusBar = WinApi::findWindowEx(infolog.hWnd(), 0, identifierstr(AxChildFrame), ''); info( strfmt( "%1 - %2", hWndStatusBar, WinAPI::getWindowText( hWndStatusBar ) ) ) ; hWndStatusBar = WinApi::findWindowEx(hWndStatusBar, 0, identifierstr(AxStatusBar), ''); info( strfmt( "%1 - %2", hWndStatusBar, WinAPI::getWindowText( hWndStatusBar ) ) ) ; WinApi::setWindowText(hWndStatusBar, "234"); } Последний раз редактировалось petergunn; 25.05.2009 в 11:31. |
|
![]() |
#13 |
Боец
|
Да, согласен.
А что за окно NavPaneFloatingFrame? что-то не нахожу |
|
![]() |
#14 |
NavAx
|
|
|
![]() |
#15 |
Участник
|
Выскажу предположение что на наличие этого окна в структуре окон приложения оказывает влияние параметр Auto-Hide Navigation (Автоматически скрыть область перехода) из меню View (Вид) - у меня он был отмечен.
Ниже приложил снимок иерархии окон в зависимости от состояния этого пункта меню: |
|
|
За это сообщение автора поблагодарили: DSPIC (2). |
![]() |
#16 |
Участник
|
Всем большое спасибо за ответы. Разобрался, но не пригодилось
![]() Все равно понять для себя как такие вещи делаются - очень полезно. |
|