Показать сообщение отдельно
Старый 23.07.2009, 17:17   #11  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Вот для начала. По нажатию Ctrl+P фотографирует форму и кладет рисунок в буфер обмена.

Перекрыть метод task() на форме
X++:
public int task(int _taskId)
{
    int         ret;
    //  DSPIC -->
    Image       image;
    #define.Key_CtrlP(278)
    //  DSPIC <--

    ret = super(_taskId);

    //  DSPIC -->
    if (_taskId == #Key_CtrlP)
    {
        image = new Image();
        image.captureWindow(this.hWnd());
        image.clipboardCopy();
    }
    //  DSPIC <--

    return ret;
}
Второй этап - посласть картинку из буфера обмена на принтер, скрестив доработку с формой SysPrintForm если я правильно понял задачу...

Если нужно не через SysPrintForm, то можно продумать вариант с WinApi::PrintDlg - вызывает виндошный диалог принтера перед печатью (Ctrl+P). Нужно посмотреть, как ему подсунуть буфер обмена для печати, либо получится сделать минуя буфер.

Последний раз редактировалось DSPIC; 23.07.2009 в 17:31. Причина: PrintDlg