📄 controldlg.cpp
字号:
// ControlDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MFC.h"
#include "ControlDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CControlDlg dialog
BOOL DelFromActiveWindow(CString sid);
DWORD WINAPI RecvThread ( LPVOID lpParameter );
CControlDlg::CControlDlg(CWnd* pParent /*=NULL*/)
: CDialog(CControlDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CControlDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
memHandle = NULL;
}
void CControlDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CControlDlg)
DDX_Control(pDX, IDC_BUTTON_SEND, m_ButtonSend);
DDX_Control(pDX, IDC_EDIT_CMD, m_EditCmd);
DDX_Control(pDX, IDC_EDIT_OUT, m_Output);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CControlDlg, CDialog)
//{{AFX_MSG_MAP(CControlDlg)
ON_WM_DESTROY()
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BUTTON_SEND, OnButtonSend)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CControlDlg message handlers
void CControlDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
}
void CControlDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
send(sock,"StopServer",strlen("StopServer"),0);
DelFromActiveWindow(sid);
DWORD A;
GetExitCodeThread(hThread,&A);
TerminateThread(hThread,A);
AnimateWindow(GetSafeHwnd(),1000,AW_HIDE|AW_CENTER);
CDialog::OnClose();
}
BOOL CControlDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CString Title;
Title = "您控制的机器ID为";
Title += sid;
Title += " IP地址为:";
Title += strCKIP;
Num = 0;
RecvThreadInfor L = {0};
L.pButton = &m_ButtonSend;
L.pmemHandle = &memHandle;
L.pOut = &m_Output;
L.sock = &sock;
L.pNum = &Num;
memHandle = GlobalAlloc (GMEM_MOVEABLE | GMEM_ZEROINIT | GMEM_SHARE, 0);
hThread = CreateThread(NULL,NULL,RecvThread,&L,0,0);
SetWindowText(Title);
Sleep(200);
return 1;
}
void CControlDlg::OnButtonSend()
{
// TODO: Add your control notification handler code here
CString sCmd = "";
m_EditCmd.GetWindowText(sCmd);
if ( sCmd == "" )
{
// AfxMessageBox("Command isn't NULL");
return;
}
// m_ButtonSend.EnableWindow(FALSE);
GlobalFree(memHandle);
Num = 0;
memHandle = GlobalAlloc (GMEM_MOVEABLE | GMEM_ZEROINIT | GMEM_SHARE, 0);
m_Output.SetHandle(memHandle);
DecodeCMD(&sCmd);
TRACE("\n CMD = %s",sCmd);
if ( sCmd.GetLength() )
send ( sock , sCmd , sCmd.GetLength(),0);
}
void CControlDlg::DecodeCMD(CString *pStr)
{
CString Tcmd = *pStr;
if ( Tcmd[0] != '-' )
return;
char* p = Tcmd.GetBuffer(256);
char* startp = p+1;
while ( *(++p) == ' ' );
char cmdtype[16] = {0};
int Len = Tcmd.GetLength()-1;
char* p1 = strstr(p," ");
char* p2 = NULL;
if ( p1 )
{
memcpy(cmdtype,p,p1-p);
while ( *p1 == ' ' )
p1++;
}
else
memcpy(cmdtype,p,strlen(p));
Sleep(1000);
}
void CControlDlg::OnOK()
{
OnButtonSend();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -