Вот для начала. По нажатию 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). Нужно посмотреть, как ему подсунуть буфер обмена для печати, либо получится сделать минуя буфер.