📄 serialtcp.cpp
字号:
// SerialTcp.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "SerialTcp.h"
#include "SerialTcpDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CSerialTcpApp
BEGIN_MESSAGE_MAP(CSerialTcpApp, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()
// CSerialTcpApp construction
CSerialTcpApp::CSerialTcpApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
// The one and only CSerialTcpApp object
CSerialTcpApp theApp;
// CSerialTcpApp initialization
BOOL CSerialTcpApp::InitInstance()
{
// InitCommonControlsEx() is required on Windows XP if an application
// manifest specifies use of ComCtl32.dll version 6 or later to enable
// visual styles. Otherwise, any window creation will fail.
if(!CreateMutex(NULL, FALSE, "TcpToSerial"))
{
AfxMessageBox("创建Mutex失败!");
}
else
{
if(GetLastError() == ERROR_ALREADY_EXISTS)
{
HWND hl = NULL;
hl = ::FindWindow(NULL, "SerialTcp");
if(hl)
{
AttachThreadInput(GetWindowThreadProcessId(::GetForegroundWindow(), NULL),GetCurrentThreadId(),TRUE);
::ShowWindow(hl, SW_RESTORE);
::SetForegroundWindow(hl);
::SetFocus(hl);
AttachThreadInput(GetWindowThreadProcessId(::GetForegroundWindow(),NULL),GetCurrentThreadId(),FALSE);
}
return FALSE;
}
}
//**************************************************************
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// Set this to include all the common control classes you want to use
// in your application.
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
CSerialTcpDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -