Показать сообщение отдельно
Старый 03.04.2008, 11:15   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Ну, на самом деле никто не мешает создать его

X++:
static void Copy2Clipboard(Args _args)
{
    #winapi
    #define.GWL_HINSTANCE       (-6)
    #define.WM_COPY             (0x0301)
    #define.EM_SETSEL           (0x00B1)
    int     clipWnd;
    int     hInstance = winapi::getWindowLong(infolog.hWnd(), #GWL_HINSTANCE);
    dll dll = new dll("user32");
    dllfunction CreateWindow = new dllfunction(dll, "CreateWindowExA");
    str text = "oit weroip t437892573\r\nosfiduasdf7ds98a0\r\lkfdsalk\tgfsdkljglksdfjglsfd;";
    ;
    CreateWindow.arg(ExtTypes::DWord, ExtTypes::String, ExtTypes::String, ExtTypes::DWord, ExtTypes::DWord, 
        ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord, 
        ExtTypes::DWord, ExtTypes::DWord);
    CreateWindow.returns(ExtTypes::DWord);
    clipWnd = CreateWindow.call(0, "EDIT", "AxTSClipboard",  #WS_CHILD, 0, 0, 10, 10, infolog.hWnd(), 0, hInstance, 0);
    if (clipWnd)
    {
        winapi::setWindowText(clipWnd, text);
        winapi::sendMessageEx(clipWnd, #EM_SETSEL, 0, -1);
        winapi::sendMessageEx(clipWnd, #WM_COPY, 0, 0);
        winapi::destroyWindow(clipWnd);
    }
}
Т.е. с помощью такого подхода можно вообще отказаться от использования TextBuffer

PS и никаких заморочек с раскладкой клавиатуры
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 03.04.2008 в 11:20.