亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? twin.cpp

?? 小型的局域網msg,免安裝
?? CPP
字號:
static char *twin_id = 
	"@(#)Copyright (C) H.Shirouzu 1996-2001   twin.cpp	Ver0.95";
/* ========================================================================
	Project  Name			: Win32 Lightweight  Class Library Test
	Module Name				: Window Class
	Create					: 1996-06-01(Sat)
	Update					: 2001-12-06(Thu)
	Copyright				: H.Shirouzu
	Reference				: 
	======================================================================== */

#include "tlib.h"

TWin::TWin(TWin *_parent)
{
	hWnd		= 0;
	hAccel		= NULL;
	rect.left	= CW_USEDEFAULT;
	rect.right	= CW_USEDEFAULT;
	rect.top	= CW_USEDEFAULT;
	rect.bottom	= CW_USEDEFAULT;
	parent		= _parent;
	sleepBusy	= FALSE;
}

TWin::~TWin()
{
	Destroy();
}

BOOL TWin::Create(LPCSTR className, LPCSTR title, DWORD style, DWORD exStyle, HMENU hMenu)
{
	if (className == NULL)
		className = TApp::defaultClass;

	TApp::AddWin(this);

	if ((hWnd = ::CreateWindowEx(exStyle, className, title, style, rect.left, rect.top, rect.right, rect.bottom, parent ? parent->hWnd : NULL, hMenu, TApp::hI, NULL)) == NULL)
		return	TApp::DelWin(this), FALSE;
	else
		return	TRUE;
}

void TWin::Destroy(void)
{
	if (::IsWindow(hWnd))
	{
		::DestroyWindow(hWnd);
		hWnd = 0;
	}
}

void TWin::Show(int mode)
{
	::ShowWindow(hWnd, mode);
	::UpdateWindow(hWnd);
}

LRESULT TWin::WinProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	BOOL	done = FALSE;
	LRESULT	result = 0;

	switch(uMsg)
	{
	case WM_CREATE:
		done = EvCreate(lParam);
		break;

	case WM_CLOSE:
		done = EvClose();
		break;

	case WM_COMMAND:
		done = EvCommand(HIWORD(wParam), LOWORD(wParam), lParam);
		break;

	case WM_SYSCOMMAND:
		done = EvSysCommand(wParam, MAKEPOINTS(lParam));
		break;

	case WM_TIMER:
		done = EvTimer(wParam, (TIMERPROC)lParam);
		break;

	case WM_NCDESTROY:
		GetWindowRect(&rect);
		if (EvNcDestroy() == FALSE)	// hWnd傪0偵偡傞慜偵屇傃弌偡
			DefWindowProc(uMsg, wParam, lParam);
		done = TRUE;
		TApp::DelWin(this);
		hWnd = 0;
		break;

	case WM_QUERYENDSESSION:
		result = EvQueryEndSession((BOOL)wParam, (BOOL)lParam);
		done = TRUE;
		break;

	case WM_ENDSESSION:
		done = EvEndSession((BOOL)wParam, (BOOL)lParam);
		break;

	case WM_QUERYOPEN:
		result = EvQueryOpen();
		done = TRUE;
		break;

	case WM_PAINT:
		done = EvPaint();
		break;

	case WM_NCPAINT:
		done = EvNcPaint((HRGN)wParam);
		break;

	case WM_SIZE:
		done = EvSize((UINT)wParam, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_GETMINMAXINFO:
		done = EvGetMinMaxInfo((MINMAXINFO *)lParam);
		break;

	case WM_SETCURSOR:
		result = done = EvSetCursor((HWND)wParam, LOWORD(lParam), HIWORD(lParam));
		break;

	case WM_MOUSEMOVE:
		done = EvMouseMove((UINT)wParam, MAKEPOINTS(lParam));
		break;

	case WM_NCHITTEST:
		done = EvNcHitTest(MAKEPOINTS(lParam), &result);
		break;

	case WM_MEASUREITEM:
		result = done = EvMeasureItem((UINT)wParam, (LPMEASUREITEMSTRUCT)lParam);
		break;

	case WM_DRAWITEM:
		result = done = EvDrawItem((UINT)wParam, (LPDRAWITEMSTRUCT)lParam);
		break;

	case WM_NOTIFY:
		result = done = EvNotify((UINT)wParam, (LPNMHDR)lParam);
		break;

	case WM_CONTEXTMENU:
		result = done = EvContextMenu((HWND)wParam, MAKEPOINTS(lParam));
		break;

	case WM_MENUSELECT:
		done = EvMenuSelect(LOWORD(wParam), HIWORD(wParam), (HMENU)lParam);
		break;

	case WM_DROPFILES:
		done = EvDropFiles((HDROP)wParam);
		break;

	case WM_HOTKEY:
		result = done = EvHotKey((int)wParam);
		break;

	case WM_LBUTTONUP:
	case WM_RBUTTONUP:
	case WM_NCLBUTTONUP:
	case WM_NCRBUTTONUP:
	case WM_LBUTTONDOWN:
	case WM_RBUTTONDOWN:
	case WM_NCLBUTTONDOWN:
	case WM_NCRBUTTONDOWN:
	case WM_LBUTTONDBLCLK:
	case WM_RBUTTONDBLCLK:
	case WM_NCLBUTTONDBLCLK:
	case WM_NCRBUTTONDBLCLK:
		done = EventButton(uMsg, wParam, MAKEPOINTS(lParam));
		break;

	case WM_HSCROLL:
	case WM_VSCROLL:
		done = EventScroll(uMsg, LOWORD(wParam), HIWORD(wParam), (HWND)lParam);
		break;

	case WM_INITMENU:
	case WM_INITMENUPOPUP:
		done = EventInitMenu(uMsg, (HMENU)wParam, LOWORD(lParam), (BOOL)HIWORD(lParam));
		break;

	case WM_CTLCOLORBTN:
	case WM_CTLCOLORDLG:
	case WM_CTLCOLOREDIT:
	case WM_CTLCOLORLISTBOX:
	case WM_CTLCOLORMSGBOX:
	case WM_CTLCOLORSCROLLBAR:
	case WM_CTLCOLORSTATIC:
		done = EventCtlColor(uMsg, (HDC)wParam, (HWND)lParam, (HBRUSH *)&result);
		break;

	case WM_KILLFOCUS:
	case WM_SETFOCUS:
		done = EventFocus(uMsg, (HWND)wParam);
		break;

	default:
		if (uMsg >= WM_USER && uMsg < 0x7FFF || uMsg >= 0xC000 && uMsg <= 0xFFFF)
			result = done = EventUser(uMsg, wParam, lParam);
		break;
	}

	return	done ? result : DefWindowProc(uMsg, wParam, lParam);
}

LRESULT TWin::DefWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	return	::DefWindowProc(hWnd, uMsg, wParam, lParam);
}

BOOL TWin::PreProcMsg(MSG *msg)
{
	if (hAccel)
		return	::TranslateAccelerator(hWnd, hAccel, msg);

	return	FALSE;
}

BOOL TWin::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl)
{
	return	FALSE;
}

BOOL TWin::EvSysCommand(WPARAM uCmdType, POINTS pos)
{
	return	FALSE;
}

BOOL TWin::EvCreate(LPARAM lParam)
{
	return	FALSE;
}

BOOL TWin::EvClose(void)
{
	return	FALSE;
}


BOOL TWin::EvMeasureItem(UINT ctlID, MEASUREITEMSTRUCT *lpMis)
{
	return	FALSE;
}

BOOL TWin::EvDrawItem(UINT ctlID, DRAWITEMSTRUCT *lpDis)
{
	return	FALSE;
}

BOOL TWin::EvNcDestroy(void)
{
	return	FALSE;
}

BOOL TWin::EvTimer(WPARAM timerID, TIMERPROC proc)
{
	return	FALSE;
}

BOOL TWin::Sleep(UINT mSec)
{
	if (mSec == 0 || sleepBusy)
		return	TRUE;

	if (::SetTimer(hWnd, TLIB_SLEEPTIMER, mSec, 0) == FALSE)
		return	FALSE;
	sleepBusy = TRUE;

	MSG		msg;
	while (::GetMessage(&msg, 0, 0, 0))
	{
		if (msg.hwnd == hWnd && msg.wParam == TLIB_SLEEPTIMER)
		{
			::KillTimer(hWnd, TLIB_SLEEPTIMER);
			break;
		}
		if (TApp::PreProcMsg(&msg))
			continue;

		::TranslateMessage(&msg);
		::DispatchMessage(&msg);
	}
	sleepBusy = FALSE;

	return	TRUE;
}

BOOL TWin::EvQueryEndSession(BOOL nSession, BOOL nLogOut)
{
	return	TRUE;
}

BOOL TWin::EvEndSession(BOOL nSession, BOOL nLogOut)
{
	return	TRUE;
}

BOOL TWin::EvQueryOpen(void)
{
	return	TRUE;
}

BOOL TWin::EvPaint(void)
{
	return	FALSE;
}

BOOL TWin::EvNcPaint(HRGN hRgn)
{
	return	FALSE;
}

BOOL TWin::EvSize(UINT fwSizeType, WORD nWidth, WORD nHeight)
{
	return	FALSE;
}

BOOL TWin::EvGetMinMaxInfo(MINMAXINFO *info)
{
	return	FALSE;
}

BOOL TWin::EvSetCursor(HWND cursorWnd, WORD nHitTest, WORD wMouseMsg)
{
	return	FALSE;
}

BOOL TWin::EvMouseMove(UINT fwKeys, POINTS pos)
{
	return	FALSE;
}

BOOL TWin::EvNcHitTest(POINTS pos, LRESULT *result)
{
	return	FALSE;
}

BOOL TWin::EvNotify(UINT ctlID, NMHDR *pNmHdr)
{
	return	FALSE;
}

BOOL TWin::EvContextMenu(HWND childWnd, POINTS pos)
{
	return	FALSE;
}

BOOL TWin::EvHotKey(int hotKey)
{
	return	FALSE;
}

BOOL TWin::EventScroll(UINT uMsg, int Code, int nPos, HWND hwndScrollBar)
{
	return	FALSE;
}

BOOL TWin::EventButton(UINT uMsg, int nHitTest, POINTS pos)
{
	return	FALSE;
}

BOOL TWin::EventInitMenu(UINT uMsg, HMENU hMenu, UINT uPos, BOOL fSystemMenu)
{
	return	FALSE;
}

BOOL TWin::EvMenuSelect(UINT uItem, UINT fuFlag, HMENU hMenu)
{
	return	FALSE;
}

BOOL TWin::EvDropFiles(HDROP hDrop)
{
	return	FALSE;
}

BOOL TWin::EventCtlColor(UINT uMsg, HDC hDcCtl, HWND hWndCtl, HBRUSH *result)
{
	return	FALSE;
}

BOOL TWin::EventFocus(UINT uMsg, HWND hFocusWnd)
{
	return	FALSE;
}

BOOL TWin::EventUser(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	return	FALSE;
}

UINT TWin::GetDlgItemText(int ctlId, LPTSTR buf, int len)
{
	return	::GetDlgItemText(hWnd, ctlId, buf, len);
}

BOOL TWin::SetDlgItemText(int ctlId, LPTSTR buf)
{
	return	::SetDlgItemText(hWnd, ctlId, buf);
}

HWND TWin::GetDlgItem(int ctlId)
{
	return	::GetDlgItem(hWnd, ctlId);
}

int TWin::MessageBox(LPCTSTR msg, LPCTSTR title, UINT style)
{
	return	::MessageBox(hWnd, msg, title, style);
}

BOOL TWin::BringWindowToTop(void)
{
	return	::BringWindowToTop(hWnd);
}

BOOL TWin::PostMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	return	::PostMessage(hWnd, uMsg, wParam, lParam);
}

LRESULT TWin::SendMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	return	::SendMessage(hWnd, uMsg, wParam, lParam);
}

LRESULT TWin::SendDlgItemMessage(int idCtl, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	return	::SendDlgItemMessage(hWnd, idCtl, uMsg, wParam, lParam);
}

BOOL TWin::GetWindowRect(RECT *rect)
{
	return	::GetWindowRect(hWnd, rect);
}

BOOL TWin::SetForegroundWindow(void)
{
	return	::SetForegroundWindow(hWnd);
}

BOOL TWin::SetForceForegroundWindow(void)
{
#ifndef SPI_GETFOREGROUNDLOCKTIMEOUT
#define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
#define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
#endif
	DWORD	foreId, targId, svTmOut;

	foreId = ::GetWindowThreadProcessId(::GetForegroundWindow(), NULL);
	targId = ::GetWindowThreadProcessId(hWnd, NULL);
	if (foreId != targId)
		::AttachThreadInput(targId, foreId, TRUE);
	::SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, (void *)&svTmOut, 0);
	::SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, 0, 0);
	BOOL	ret = ::SetForegroundWindow(hWnd);
	::SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (void *)svTmOut, 0);
	if (foreId != targId)
		::AttachThreadInput(targId, foreId, FALSE);

	return	ret;
}

HWND TWin::SetActiveWindow(void)
{
	return	::SetActiveWindow(hWnd);
}

BOOL TWin::SetWindowText(char *text)
{
	return	::SetWindowText(hWnd, text);
}

LONG TWin::SetWindowLong(int index, LONG val)
{
	return	::SetWindowLong(hWnd, index, val);
}

WORD TWin::SetWindowWord(int index, WORD val)
{
	return	::SetWindowWord(hWnd, index, val);
}

LONG TWin::GetWindowLong(int index)
{
	return	::GetWindowLong(hWnd, index);
}

WORD TWin::GetWindowWord(int index)
{
	return	::GetWindowWord(hWnd, index);
}

BOOL TWin::MoveWindow(int x, int y, int cx, int cy, int bRepaint)
{
	return	::MoveWindow(hWnd, x, y, cx, cy, bRepaint);
}

BOOL TWin::Idle(void)
{
	MSG		msg;

	if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
	{
		if (TApp::PreProcMsg(&msg))
			return	TRUE;

		::TranslateMessage(&msg);
		::DispatchMessage(&msg);
		return	TRUE;
	}

	return	FALSE;
}


TSubClass::TSubClass(TWin *_parent) : TWin(_parent)
{
}

BOOL TSubClass::CreateByWnd(HWND _hWnd)
{
	TApp::AddWinByWnd(this, _hWnd);
	return	(oldProc = (WNDPROC)::SetWindowLong(_hWnd, GWL_WNDPROC, (LONG)TApp::WinProc)) ? TRUE : FALSE;
}

LRESULT TSubClass::DefWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	return	::CallWindowProc((WNDPROC)oldProc, hWnd, uMsg, wParam, lParam);
}

TSubClassCtl::TSubClassCtl(TWin *_parent) : TSubClass(_parent)
{
}

BOOL TSubClassCtl::PreProcMsg(MSG *msg)
{
	if (parent)
		return	parent->PreProcMsg(msg);

	return	FALSE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产精品久久久久久亚洲| 国产精品萝li| 不卡一区二区中文字幕| 婷婷成人综合网| 亚洲欧洲日韩女同| 精品播放一区二区| 日本乱人伦一区| 成人激情免费网站| 久久99久久精品| 亚洲午夜视频在线| 国产精品久久久久婷婷| 精品精品国产高清a毛片牛牛| 在线免费不卡视频| 99久久精品免费观看| 久久狠狠亚洲综合| 视频精品一区二区| 亚洲制服丝袜在线| 亚洲欧洲三级电影| 国产精品伦理在线| 国产色综合久久| 欧美精品一区二区三| 51精品久久久久久久蜜臀| 91丨国产丨九色丨pron| 国产精品伊人色| 国产一区二区三区精品视频| 日韩二区三区在线观看| 亚洲国产精品尤物yw在线观看| 成人免费一区二区三区视频 | 久久 天天综合| 丝袜美腿成人在线| 天天做天天摸天天爽国产一区 | 久久精品国产久精国产爱| 亚洲成人精品一区| 亚洲一二三区视频在线观看| 亚洲视频小说图片| 亚洲欧美一区二区三区极速播放| 久久久亚洲午夜电影| 久久婷婷久久一区二区三区| 日韩欧美亚洲国产另类| 日韩一级片网站| 日韩一区二区三区在线| 欧美一区二区三区电影| 在线不卡中文字幕| 日韩欧美一级特黄在线播放| 6080午夜不卡| 91精品国产麻豆国产自产在线| 欧美另类一区二区三区| 91精品在线观看入口| 欧美一区二区视频在线观看 | 中文字幕一区二区视频| 国产精品久久久久久久久晋中| 亚洲欧洲av在线| 亚洲男人的天堂一区二区 | 韩国成人精品a∨在线观看| 美女诱惑一区二区| 精品一区二区三区在线播放 | 精品国产一区二区国模嫣然| 日韩欧美国产综合在线一区二区三区| 日韩一区二区三区在线视频| 精品不卡在线视频| 日韩一区有码在线| 亚洲丰满少妇videoshd| 蜜臀av国产精品久久久久| 国产一区二区不卡老阿姨| 成人国产精品免费观看动漫 | 久久久久久夜精品精品免费| 国产欧美一区二区三区在线老狼| 欧美国产在线观看| 亚洲黄色免费网站| 日韩va欧美va亚洲va久久| 国产一区二区在线电影| 成人免费精品视频| 欧美日韩视频在线一区二区| 日韩区在线观看| 中文字幕va一区二区三区| 亚洲日本一区二区| 蜜桃传媒麻豆第一区在线观看| 国产精品一二一区| 在线亚洲免费视频| 欧美xxxxxxxx| 怡红院av一区二区三区| 日韩成人免费电影| 成人v精品蜜桃久久一区| 欧美日韩一区二区欧美激情| 久久伊99综合婷婷久久伊| 综合激情成人伊人| 久久精品国产一区二区| 91猫先生在线| 久久综合九色综合欧美亚洲| 亚洲精品水蜜桃| 韩国中文字幕2020精品| 日本二三区不卡| 久久久久久免费| 午夜激情综合网| 不卡免费追剧大全电视剧网站| 91精品国产麻豆国产自产在线| 中文字幕一区在线观看| 狠狠色丁香婷婷综合久久片| 欧美在线播放高清精品| 国产农村妇女毛片精品久久麻豆 | 日本韩国一区二区三区| 久久综合成人精品亚洲另类欧美| 亚洲一区在线视频观看| 粉嫩绯色av一区二区在线观看 | 久久99国产精品成人| 欧美在线看片a免费观看| 国产欧美日韩精品在线| 日本三级亚洲精品| 欧美怡红院视频| 国产精品久久久久影视| 国产综合色在线视频区| 欧美一区中文字幕| 伊人婷婷欧美激情| 白白色 亚洲乱淫| 精品国产免费一区二区三区四区| 天天影视涩香欲综合网| 色婷婷久久综合| 国产精品美女久久久久aⅴ国产馆| 久久精品国产一区二区三区免费看| 欧美亚洲尤物久久| 亚洲激情图片一区| 一本色道亚洲精品aⅴ| 国产精品你懂的| 国产成人在线观看免费网站| 欧美va亚洲va国产综合| 日本亚洲三级在线| 欧美日韩国产bt| 天天操天天综合网| 欧美性猛交xxxxxx富婆| 亚洲在线观看免费| 精品视频一区三区九区| 亚洲一区二区三区不卡国产欧美| 色婷婷国产精品| 一区二区视频在线看| 91片在线免费观看| 亚洲男人天堂av网| 欧美色视频在线观看| 亚洲成人tv网| 91精品欧美综合在线观看最新| 亚洲成人动漫av| 91精品国产91久久综合桃花| 日韩高清不卡一区二区| 欧美一级二级三级乱码| 麻豆精品在线看| 久久综合狠狠综合久久激情| 国产福利一区二区三区在线视频| 久久婷婷国产综合国色天香| 国产精品羞羞答答xxdd| 国产精品美女一区二区| 色婷婷av一区二区三区gif| 亚洲一级二级三级在线免费观看| 欧美丝袜丝nylons| 青青草97国产精品免费观看| 精品福利av导航| 国产成人亚洲综合a∨猫咪| 国产精品美女视频| 欧美三级中文字幕在线观看| 日韩av电影免费观看高清完整版 | 欧美一级理论性理论a| 久国产精品韩国三级视频| 精品国产sm最大网站| 国产传媒久久文化传媒| 成人欧美一区二区三区白人 | 中文字幕免费不卡| 在线观看免费亚洲| 奇米777欧美一区二区| 久久久精品人体av艺术| av在线播放成人| 亚洲va国产va欧美va观看| 欧美tickling挠脚心丨vk| 成人午夜私人影院| 一级特黄大欧美久久久| 欧美一级精品在线| www.欧美亚洲| 日韩精品亚洲专区| 国产精品女主播av| 日韩三级在线观看| 暴力调教一区二区三区| 日本在线播放一区二区三区| 国产欧美一区二区三区在线看蜜臀| 91视频免费观看| 国模少妇一区二区三区| 一区二区在线免费观看| 精品国产一区二区三区av性色| 色综合久久六月婷婷中文字幕| 久久精品国产一区二区三| 亚洲免费观看高清完整版在线| 欧美一区欧美二区| 一本久久a久久免费精品不卡| 麻豆成人av在线| 亚洲精品日韩一| 久久久国产综合精品女国产盗摄| 欧美性猛交xxxxxxxx| 国产成人免费视频网站高清观看视频| 亚洲国产综合视频在线观看| 国产欧美一区二区三区在线老狼| 欧美浪妇xxxx高跟鞋交| 色综合中文字幕| 国产精品羞羞答答xxdd| 青青草国产精品亚洲专区无|