Печать окна Web Navigator
Юрий Оганесян;
2.10.03
Добрый день!
Удалось ли кому-нибудь распечатать из IE страницу с мнемосхемой,
отображаемой Web Navigator Client'ом?
Re: Печать окна Web Navigator
Лев
Шерешевский; 2.10.03
Да, удалось.
Re: Печать окна Web Navigator
Юрий Оганесян;
3.10.03
Хм... а в чем тогда подвох?
У меня IE 6.0 SP1, WebNavogator Client 1.0 и печать (как и
предварительный просмотр) странички c WebNavigator демонстрирует
чистый лист с педантично напечатанными колонтитулами.
Попробовали на 5 различных компьютерах - везде также.
А у Вас печать сама собой получилась, или какое-то волшебное слово
говорили?
Re: Печать окна Web Navigator
Роман
Папировский; 3.10.03
Печать содержимого экрана делали непосредственно из WinCC.
Для этого на форме размещали кнопку и на Event по нажатию вешали
скрипт
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName)
{
#pragma code ("prtscrn.dll")
BOOL WINAPI PrtScreenPart ( ULONG left, ULONG top, ULONG width,
ULONG height);
#pragma code()
HWND Handle;
BOOL WinMax;
RECT rect, rectW;
float ScaleX,ScaleY,Scale;
int X,Y,Width,Height,BordX,BordY;
char ParentPicture[256], PictureObject[256], *pos1, *pos2,
PicName[256];
int Lenght,i,CountTrend;
DWORD arrColor[12];
if ( MessageBox(
Handle,
"Вы действительно желаете распечатать копию содержимого
экрана?",
"Подтверждение",
MB_OKCANCEL | MB_ICONEXCLAMATION |
MB_SETFOREGROUND|MB_SYSTEMMODAL
)
== 2 ) return;
#ifdef RUN_ON_WEBNAVIGATOR
Handle = FindWindow(NULL, "WinCC Web Navigator - Microsoft Internet
Explorer");
#else
Handle = FindWindow("PDLRTisAliveAndWaitsForYou",NULL);
#endif
if (Handle==NULL)
{
Beep(440,500);
return;
}
//Max Screen
WinMax = IsZoomed(Handle);
if (!WinMax)
{
PostMessage(Handle , WM_SYSCOMMAND,0xf030,0); //Max
}
///////////////////////////
GetWindowRect(Handle , &rectW);
printf("rectW.left= %d\r\n",rectW.left);
printf("rectW.top= %d\r\n",rectW.top);
printf("rectW.bottom = %d\r\n",rectW.bottom);
printf("rectW.right = %d\r\n",rectW.right);
GetClientRect(Handle , &rect);
printf("rect.left= %d\r\n",rect.left);
printf("rect.top= %d\r\n",rect.top);
printf("rect.bottom = %d\r\n",rect.bottom);
printf("rect.right = %d\r\n",rect.right);
ScaleX = (float)1280/(float)(rect.right-rect.left);
#ifdef RUN_ON_WEBNAVIGATOR
ScaleY = (float)800/(float)(rect.bottom-rect.top);
#else
ScaleY = (float)1024/(float)(rect.bottom-rect.top);
#endif
if (ScaleY<ScaleX)
{
Scale=ScaleX;
}
else
{
Scale=ScaleY;
}
BordX = ((rectW.right-rectW.left)-(rect.right-rect.left )) /2;
BordY =
((rectW.bottom-rectW.top)-(rect.bottom-rect.top))-BordX;
printf("BordX = %d\r\n",BordX);
printf("BordY = %d\r\n",BordY);
X=rectW.left+rect.left+BordX;
Y=BordY+rectW.top+rect.top;
Width=1280/Scale;
Height=1024/Scale;
PrtScreenPart (X, Y, Width, Height);
if (!WinMax)
{
PostMessage(Handle , WM_SYSCOMMAND,0xF120,0); //Normal
}
}