⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputdlg.h

📁 远程控制系统,可以实现局域网内进行远程控制计算机,很方便,并且是学习用的非常好的资料.
💻 H
字号:
// inputdlg.h: interface for the CInputDlg class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_INPUTDLG_H__C511A281_1524_4679_B534_FE9A1847CF72__INCLUDED_)
#define AFX_INPUTDLG_H__C511A281_1524_4679_B534_FE9A1847CF72__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define INPUT_BUFFER_SIZE 280

template <WORD t_wDlgTemplateID, int t_iType = 1, BOOL t_bCenter = TRUE>
class CInputDlg : public CDialogImplBase
{
public:
	int DoModal(HWND hWndParent = ::GetActiveWindow(), LPARAM dwInitParam = NULL)
	{
		ATLASSERT(m_hWnd == NULL);
		_Module.AddCreateWndData(&m_thunk.cd, (CDialogImplBase*)this);
		int nRet = ::DialogBoxParam(_Module.GetResourceInstance(),
			MAKEINTRESOURCE(t_wDlgTemplateID), hWndParent, (DLGPROC)StartDialogProc, dwInitParam);
		m_hWnd = NULL;
		return nRet;
	}

	typedef CInputDlg<t_wDlgTemplateID, t_iType, t_bCenter> thisClass;
	BEGIN_MSG_MAP(thisClass)
		MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
		COMMAND_ID_HANDLER(IDOK, OnOK)
		COMMAND_ID_HANDLER(IDCLOSE, OnClose)
		COMMAND_ID_HANDLER(IDCANCEL, OnClose)
	END_MSG_MAP()

	LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
	{
		if (t_bCenter)
			CenterWindow(GetParent());

		LPTSTR lpText = (LPTSTR)lParam, p1, p2;

		SetWindowLong(GWL_USERDATA, (LONG)lpText);

		if (lpText == NULL)
			return FALSE;

		TCHAR tx0[INPUT_BUFFER_SIZE];
		TCHAR tx1[16] = "", tx2[16] = "";

		switch (t_iType)
		{
		case 1:
			SetDlgItemText(IDC_EDITTEXT, lpText);
			SendMessage(GetDlgItem(IDC_EDITTEXT), EM_SETSEL, 0, strlen(lpText));
			break;
		case 2:
			p1 = strrchr(lpText, ':');
			p2 = strrchr(p1, '-');

			if (p1 != NULL)
			{
				strncpy(tx0, lpText, p1 - lpText);
				tx0[p1 - lpText] = '\0';
			}

			if (p2 != NULL)
			{
				strncpy(tx1, p1 + 1, p2 - p1);
				tx1[p2 - p1 - 1] = '\0';
				strcpy(tx2, p2 + 1);
			}

			SetDlgItemText(IDC_EDITTEXT, tx0);
			SetDlgItemText(IDC_NUMBER1, tx1);
			SetDlgItemText(IDC_NUMBER2, tx2);
			break;
		}

		return TRUE;
	}

	LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
	{
		if (::GetWindowTextLength(GetDlgItem(IDC_EDITTEXT)) <= 0)
			return TRUE;

		LPTSTR lpText = (LPTSTR)GetWindowLong(GWL_USERDATA);

		if (lpText == NULL)
		{
			::EndDialog(m_hWnd, FALSE);
			return TRUE;
		}

		switch (t_iType)
		{
		case 1:
			GetDlgItemText(IDC_EDITTEXT, lpText, INPUT_BUFFER_SIZE);
			break;
		case 2:
			GetDlgItemText(IDC_EDITTEXT, lpText, INPUT_BUFFER_SIZE);
			strcat(lpText, ":");
			GetDlgItemText(IDC_NUMBER1, strrchr(lpText, '\0'), INPUT_BUFFER_SIZE - strlen(lpText));
			strcat(lpText, "-");
			GetDlgItemText(IDC_NUMBER2, strrchr(lpText, '\0'), INPUT_BUFFER_SIZE - strlen(lpText));
			break;
		}

		::EndDialog(m_hWnd, TRUE);

		return TRUE;
	}

	LRESULT OnClose(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
	{
		::EndDialog(m_hWnd, FALSE);

		return TRUE;
	}
};

#endif // !defined(AFX_INPUTDLG_H__C511A281_1524_4679_B534_FE9A1847CF72__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -