Показать сообщение отдельно
Старый 11.05.2011, 15:53   #12  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Через винАпи получилось развернуть на всю страницу примерно так:
(На основе решения someOne через поток)

X++:
class ReportMaximizeHandler
{
}

static client void maximize(Str _reportName)
{
    thread thread = new thread();
    ;

    thread.setInputParm([_reportName]);
    thread.run(classnum(ReportMaximizeHandler), identifierstr(runThread));

}

#WinAPI
static client void runThread(thread _thread)
{
    Str _str;

    hwnd    hwnd;
    int     retVal;
    ;


    [_str] = _thread.getInputParm();

    hwnd = WinAPI::findWindow("", _str + " - Report");

    if (hwnd)
    {
        WinApi::bringWindowToTop(hwnd);

        WinApi::forceMaximizeWindow(hwnd);

        retVal = WinApi::postMessage(hwnd, 0x007B,  hwnd, 0xFFFF);

        retVal = WinApi::postMessage(hwnd, #WM_KEYDOWN,  0x26, 0);
        retVal = WinApi::postMessage(hwnd, #WM_KEYUP,  0x26, 0);

        retVal = WinApi::postMessage(hwnd, #WM_KEYDOWN,  0x26, 0);
        retVal = WinApi::postMessage(hwnd, #WM_KEYUP,  0x26, 0);

        retVal = WinApi::postMessage(hwnd, #WM_KEYDOWN,  0x0D, 0);
        retVal = WinApi::postMessage(hwnd, #WM_KEYUP,  0x0D, 0);

    }
}

// Report.Run()
public void run()
{
    ;
    super();

    ReportMaximizeHandler::maximize(this.design().caption());
}
Проблема с поиском нужного окна правда осталась до конца не решённая.
Не удалось красиво найти hwnd текущего сформированного отчёта. Только по имени.
В принципе находит всегда последний, так что не сильно критично, но всё равно не красиво. Буду благодарен за помощь в этом направлении.
__________________
Zhirenkov Vitaly