?? childwin.cpp
字號:
//---------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include "ChildWin.h"
#include "UnewspyC.h"
#include "FullScr.h"
#include "Socket.h"
//---------------------------------------------------------------------
#pragma resource "*.dfm"
//---------------------------------------------------------------------
__fastcall TMDIChild::TMDIChild(TComponent *Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------
void __fastcall TMDIChild::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree; // 關(guān)閉后自動釋放資源
}
//---------------------------------------------------------------------
void __fastcall TMDIChild::Capture()
{
TRecvStreamThread *RecvThread = new TRecvStreamThread(true);
RecvThread->FreeOnTerminate = true; // 線程執(zhí)行完畢自動釋放資源
RecvThread->RemoteAddress = RemoteAddress; // 指定主機(jī)IP
RecvThread->CL = CL; // 色深
RecvThread->CQ = CQ; // 品質(zhì)
RecvThread->RemoteScreen = Image1;
RecvThread->StatusBar = StatusBar1;
int sock=Connect_Server(RemoteAddress, LISTENPORT);
Write_Socket(sock, "2\n");
AnsiString read=Socket_Readln(sock);
closesocket(sock);
this->Caption=RemoteAddress+"("+read+")";
int pos = read.Pos("*");
R_Width=StrToIntDef(read.SubString(1,pos-1),0);
read = read.SubString(pos+1,read.Length()-pos);
R_Height=StrToIntDef(read,0);
RecvThread->Resume(); // 開始執(zhí)行線程
}
void __fastcall TMDIChild::Image1DblClick(TObject *Sender)
{
// 雙擊表示繼續(xù)捕獲下一幅圖象,創(chuàng)建一個新的線程發(fā)送命令并接收圖象數(shù)據(jù)流
// Capture();
}
//---------------------------------------------------------------------------
void __fastcall TMDIChild::FormShow(TObject *Sender)
{
// 設(shè)置初始的窗口大小
ClientWidth = 640;
ClientHeight = 480;
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TMDIChild::N3Click(TObject *Sender)
{
// 將圖象保存為文件
if (Form1->SPDialog->Execute())
Image1->Picture->Bitmap->SaveToFile(Form1->SPDialog->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TMDIChild::N2Click(TObject *Sender)
{
// 全屏顯示
FullScrForm->Image1->Picture = Image1->Picture;
FullScrForm->Show();
}
//---------------------------------------------------------------------------
void __fastcall TMDIChild::Image1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
char text[32];
int Rx,Ry;
Rx=X*R_Width/Image1->Width;
Ry=Y*R_Height/Image1->Height;
sprintf(text,"Mouse Pos:(%04d,%04d)",Rx,Ry);
StatusBar1->Panels->Items[1]->Text=text;
Rx=X*65535/Image1->Width;
Ry=Y*65535/Image1->Height;
sprintf(text,"3\n1\n%d\n%d\n",Rx,Ry);
int sock=Connect_Server(RemoteAddress, LISTENPORT); //連接
Write_Socket(sock, text); //發(fā)送
closesocket(sock); //關(guān)閉
}
//---------------------------------------------------------------------------
void __fastcall TMDIChild::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
char text[32];
int Rx,Ry;
Rx=X*65535/Image1->Width;
Ry=Y*65535/Image1->Height;
switch(Button)
{
case mbLeft:
sprintf(text,"3\n2\n%d\n%d\n",Rx,Ry);
break;
case mbRight:
sprintf(text,"3\n4\n%d\n%d\n",Rx,Ry);
break;
case mbMiddle:
sprintf(text,"3\n6\n%d\n%d\n",Rx,Ry);
break;
}
int sock=Connect_Server(RemoteAddress, LISTENPORT); //連接
Write_Socket(sock, text); //發(fā)送
closesocket(sock); //關(guān)閉
}
//---------------------------------------------------------------------------
void __fastcall TMDIChild::Image1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
char text[32];
int Rx,Ry;
Rx=X*65535/Image1->Width;
Ry=Y*65535/Image1->Height;
switch(Button)
{
case mbLeft:
sprintf(text,"3\n3\n%d\n%d\n",Rx,Ry);
break;
case mbRight:
sprintf(text,"3\n5\n%d\n%d\n",Rx,Ry);
break;
case mbMiddle:
sprintf(text,"3\n7\n%d\n%d\n",Rx,Ry);
break;
}
int sock=Connect_Server(RemoteAddress, LISTENPORT); //連接
Write_Socket(sock, text); //發(fā)送
closesocket(sock); //關(guān)閉
}
//---------------------------------------------------------------------------
void __fastcall TMDIChild::FormHide(TObject *Sender)
{
Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TMDIChild::Timer1Timer(TObject *Sender)
{
Capture();
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -