AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.04.2009, 12:38   #1  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
? Как вернуть фокус на форму после вызова infolog?
Добрый день!

Необходимо возвращать фокус на форму после выполнения некоторых операций и вывода их результата в инфологе. Т.е. инфолог как бы должен остаться в бэкграунде.

Пытаюсь экспериментировать на clicked у Button на форме, но результата нет - инфолог всегда поверху остаётся.


Может надо какой redraw на форме переписать.... подскажите!


Это мои безуспешные попытки:
X++:
void clicked()
{
     #define.UserDLL('USER32')
    int handle;
    DLL         _winApiDLL = new DLL(#UserDLL);
    DLLFunction setActiveWindow  = new DLLFunction(_winApiDLL, 'SetActiveWindow' );
    boolean res;
    int res2;

    int WM_MDINEXT=0x0224;
    int WM_MDIACTIVATE=0x0222;
    int WM_MDIMAXIMIZE=0x0225;

    int WM_MDIGETACTIVE=0x0229;
    ;
    setActiveWindow.returns(ExtTypes::DWord);
    setActiveWindow.arg(ExtTypes::DWord);

 //   breakpoint;
    handle = element.hWnd();
    super();
    
    
    info("test");


    res = WinApi::setForegroundWindow(handle);
    WinApi::setWindowText(handle,strfmt("%1",res));

//    ScannedCode.setFocus();
//    ScannedCode.setSelection(0,strlen(ScannedCode.text()));


    infolog.activateWindow(handle);
//    WinApi::setWindowPos(handle,0,0,2,2);
    setActiveWindow.call(handle);

//   handle =  winapi::getForegroundWindow();
//   WinApi::setWindowPos(handle,0,0,2,2);

//    handle = winapi::sendMessage(infolog.hWnd(),WM_MDIGETACTIVE,0,"");
//      WinApi::setWindowText(handle,strfmt("%1",res2));
//    WinApi::setWindowPos(handle,0,0,2,2);


    element.setActive();
    element.formOnTop();
}
Старый 07.04.2009, 12:53   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
так пойдет?
X++:
void clicked()
{
    ;
    info("Тест");
    super();
    infolog.viewBuild();
    infolog.activateWindow(element.hWnd());
}
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: petr (4), rkorchagin (1).
Старый 07.04.2009, 12:59   #3  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
Спасибо!
Теги
info, setactive, setfocus, фокус, форма, infolog, view, activate

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gatesasbait: How to temporarily suppress infolog messages in Dynamics Ax (deux) Blog bot DAX Blogs 7 28.01.2009 17:45
DAX 4.0: infolog & workspaceNum petergunn DAX: Программирование 3 22.01.2009 11:32
How-to. Слетание пользовательских настроек в формах после вызова lookup, или MS - suxx. Maximin DAX: База знаний и проекты 2 29.06.2007 12:16
вернуть параметр в вызывающую форму Tiruvileijadal' DAX: Программирование 24 29.05.2007 16:21
casperkamal: Customizing Infolog through SysInfoAction Blog bot DAX Blogs 0 30.01.2007 20:20

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:50.