Показать сообщение отдельно
Старый 23.11.2010, 11:50   #14  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2480 (88) +++++++++
Регистрация: 20.08.2005
Можно так
X++:
public void run()
{
    #winapi
    #define.GWL_STYLE           (-16)
    #define.SWP_FRAMECHANGED    (0x0020)
    int                         long;
    int setWindowLong(HWND _HWND, int _nIndex, int _dwNewLong)
    {
        DLL         DLL;
        DLLFunction DLLFunction;
        ;
        DLL = new DLL("user32");
        DLLFunction = new DLLFunction(DLL,'SetWindowLongA');
        DLLFunction.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord);
        DLLFunction.returns(ExtTypes::DWord);

        return DLLFunction.call(_HWND, _nIndex, _dwNewLong);
    }
    ;
    super();

    long  = WinApi::getWindowLong(TableControl.hWnd(), #GWL_STYLE);
    long = long & ~(#WS_VSCROLL + #WS_HSCROLL);
    setWindowLong(TableControl.hWnd(), #GWL_STYLE, long);

    winapi::setWindowPos(TableControl.hWnd(), 0, 0, 0, 0, true, true, #SWP_NOMOVE | #SWP_NOSIZE | #SWP_FRAMECHANGED );
}
Замечу, что это код метода run() формы - в super() происходит аналогичная установка в коде ядра.

Только при изменении размера контрола это будет не очень красиво отрисовываться - скроллбары появляются с задержкой.
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: kornix (1), samolalex (1).