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

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

?? dockingsplitter.cpp

?? 一個功能強大的代碼編輯器源代碼
?? CPP
字號:
//this file is part of docking functionality for Notepad++
//Copyright (C)2006 Jens Lorenz <jens.plugin.npp@gmx.de>
//
//This program is free software; you can redistribute it and/or
//modify it under the terms of the GNU General Public License
//as published by the Free Software Foundation; either
//version 2 of the License, or (at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


#include "DockingSplitter.h"


BOOL DockingSplitter::_isVertReg = FALSE;
BOOL DockingSplitter::_isHoriReg = FALSE;

static HWND		hWndMouse		= NULL;
static HHOOK	hookMouse		= NULL;

#ifndef WH_MOUSE_LL
#define WH_MOUSE_LL 14
#endif

static LRESULT CALLBACK hookProcMouse(UINT nCode, WPARAM wParam, LPARAM lParam)
{
    if(nCode >= 0)
    {
		switch (wParam)
		{
			case WM_MOUSEMOVE:
			case WM_NCMOUSEMOVE:
				::PostMessage(hWndMouse, wParam, 0, 0);
				break;
			case WM_LBUTTONUP:
			case WM_NCLBUTTONUP:
				::PostMessage(hWndMouse, wParam, 0, 0);
				return TRUE;
			default: 
				break;
		}
	}

	return ::CallNextHookEx(hookMouse, nCode, wParam, lParam);
}

void DockingSplitter::init(HINSTANCE hInst, HWND hWnd, HWND hMessage, UINT flags) 
{
	Window::init(hInst, hWnd);
	_hMessage = hMessage;
	_flags = flags;

	WNDCLASS wc;

	if (flags & DMS_HORIZONTAL)
	{
		//double sided arrow pointing north-south as cursor
		wc.hCursor			= ::LoadCursor(NULL,IDC_SIZENS);
		wc.lpszClassName	= "nsdockspliter";
	}
	else
	{
		// double sided arrow pointing east-west as cursor
		wc.hCursor			= ::LoadCursor(NULL,IDC_SIZEWE);
		wc.lpszClassName	= "wedockspliter";
	}

	if (((_isHoriReg == FALSE) && (flags & DMS_HORIZONTAL)) ||
		((_isVertReg == FALSE) && (flags & DMS_VERTICAL)))
	{
		wc.style = CS_HREDRAW | CS_VREDRAW;
		wc.lpfnWndProc = staticWinProc;
		wc.cbClsExtra = 0;
		wc.cbWndExtra = 0;
		wc.hInstance = _hInst;
		wc.hIcon = NULL;
		wc.hbrBackground = (HBRUSH)(COLOR_3DFACE+1);
		wc.lpszMenuName = NULL;

		if (!::RegisterClass(&wc))
		{
			systemMessage("System Err");
			throw int(98);
		}
		else if (flags & DMS_HORIZONTAL)
		{
			_isHoriReg	= TRUE;
		}
		else
		{
			_isVertReg	= TRUE;
		}
	}

	/* create splitter windows and initialize it */
	_hSelf = ::CreateWindowEx( 0, wc.lpszClassName, "", WS_CHILD | WS_VISIBLE,
								CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 
								_hParent, NULL, _hInst, (LPVOID)this);

	if (!_hSelf)
	{
		systemMessage("System Err");
		throw int(777);
	}
}



LRESULT CALLBACK DockingSplitter::staticWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	DockingSplitter *pDockingSplitter = NULL;
	switch (message)
	{	
		case WM_NCCREATE :
			pDockingSplitter = (DockingSplitter *)(((LPCREATESTRUCT)lParam)->lpCreateParams);
			pDockingSplitter->_hSelf = hwnd;
			::SetWindowLong(hwnd, GWL_USERDATA, reinterpret_cast<LONG>(pDockingSplitter));
			return TRUE;

		default :
			pDockingSplitter = (DockingSplitter *)::GetWindowLong(hwnd, GWL_USERDATA);
			if (!pDockingSplitter)
				return ::DefWindowProc(hwnd, message, wParam, lParam);
			return pDockingSplitter->runProc(hwnd, message, wParam, lParam);
	}
}


LRESULT DockingSplitter::runProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_LBUTTONDOWN:
		{
			hWndMouse = hwnd;

			if (GetVersion() & 0x80000000)
			{
				hookMouse	= ::SetWindowsHookEx(WH_MOUSE, (HOOKPROC)hookProcMouse, _hInst, 0);
			}
			else
			{
				hookMouse	= ::SetWindowsHookEx(WH_MOUSE_LL, (HOOKPROC)hookProcMouse, _hInst, 0);
			}

			if (!hookMouse)
			{
				DWORD dwError = ::GetLastError();
				TCHAR  str[128];
				::wsprintf(str, "GetLastError() returned %lu", dwError);
				::MessageBox(NULL, str, "SetWindowsHookEx(MOUSE) failed", MB_OK | MB_ICONERROR);
			}
			else
			{
				::SetCapture(_hSelf);
				::GetCursorPos(&_ptOldPos);
				_isLeftButtonDown = TRUE;
			}
			break;
		}
		case WM_LBUTTONUP:
		case WM_NCLBUTTONUP:
		{
			/* end hooking */
			if (hookMouse)
			{
				::UnhookWindowsHookEx(hookMouse);
				::SetCapture(NULL);
				hookMouse = NULL;
			}
			_isLeftButtonDown = FALSE;
			break;
		}
		case WM_MOUSEMOVE:
		case WM_NCMOUSEMOVE:
		{
			if (_isLeftButtonDown == TRUE)
			{
				POINT	pt;
				
				::GetCursorPos(&pt);

				if ((_flags & DMS_HORIZONTAL) && (_ptOldPos.y != pt.y))
				{
					::SendMessage(_hMessage, DMM_MOVE_SPLITTER, (WPARAM)_ptOldPos.y - pt.y, (LPARAM)_hSelf);
				}
				else if (_ptOldPos.x != pt.x)
				{
					::SendMessage(_hMessage, DMM_MOVE_SPLITTER, (WPARAM)_ptOldPos.x - pt.x, (LPARAM)_hSelf);
				}
				_ptOldPos = pt;
			}
			break;
		}
		default :
			break;
	}
	return ::DefWindowProc(hwnd, message, wParam, lParam);
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久国产综合精品麻豆 | 亚洲另类在线制服丝袜| 亚洲自拍偷拍av| 国产一本一道久久香蕉| 在线观看中文字幕不卡| 国产人成一区二区三区影院| 日韩国产一二三区| 欧美午夜精品久久久久久孕妇| 久久综合丝袜日本网| 午夜精品久久久久久久| 一本久久a久久精品亚洲| 久久综合国产精品| 免费人成精品欧美精品| 欧美日韩专区在线| 夜夜精品浪潮av一区二区三区| 成人精品一区二区三区中文字幕| 精品国产成人系列| 日精品一区二区三区| 欧洲生活片亚洲生活在线观看| 国产精品视频九色porn| 国产99一区视频免费| 久久一区二区三区四区| 美女视频第一区二区三区免费观看网站| 在线视频国产一区| 亚洲欧美日韩国产中文在线| aaa亚洲精品| 国产精品福利电影一区二区三区四区| 国产成人综合在线观看| 久久嫩草精品久久久久| 紧缚捆绑精品一区二区| 久久综合久久综合久久| 久久99精品久久久久久| 久久综合久久综合九色| 国产白丝精品91爽爽久久| 欧美国产精品一区| 99麻豆久久久国产精品免费 | www亚洲一区| 国产真实乱对白精彩久久| 精品理论电影在线| 国内精品伊人久久久久影院对白| 欧美v国产在线一区二区三区| 久久精品国内一区二区三区| 精品国产乱码久久久久久蜜臀 | 免费成人在线视频观看| 欧美刺激脚交jootjob| 国产一区不卡视频| 国产精品久久三区| 欧美亚洲日本国产| 蜜乳av一区二区| 久久久久久一级片| 91美女片黄在线观看91美女| 亚洲国产精品一区二区久久| 日韩三区在线观看| 国产精品乡下勾搭老头1| 亚洲人xxxx| 日韩三级电影网址| 国产91清纯白嫩初高中在线观看| 中文字幕日韩一区二区| 欧美日韩一区在线观看| 国内成+人亚洲+欧美+综合在线| 国产丝袜在线精品| 欧美日韩一区二区在线观看视频| 日本午夜精品视频在线观看 | 蜜桃av一区二区| 中文字幕一区二区三区四区不卡| 欧美视频三区在线播放| 精品一区中文字幕| 1024精品合集| 欧美videofree性高清杂交| 成人午夜碰碰视频| 日韩黄色在线观看| 亚洲欧洲美洲综合色网| 日韩欧美不卡在线观看视频| 色欲综合视频天天天| 国产自产2019最新不卡| 亚洲午夜久久久久久久久久久 | 夜夜夜精品看看| 久久精品免视看| 91精品久久久久久久91蜜桃| 波多野结衣一区二区三区 | 色视频成人在线观看免| 国产最新精品免费| 日韩精品一级中文字幕精品视频免费观看 | 91老司机福利 在线| 国产一区日韩二区欧美三区| 亚洲综合一二三区| 国产精品久久久久影院色老大| 91精品国产免费| 色88888久久久久久影院按摩| 国产一区二区精品久久| 美腿丝袜亚洲综合| 亚洲永久免费视频| 亚洲美女偷拍久久| 中文字幕欧美一区| 国产欧美日韩另类视频免费观看| 欧美一区二区免费视频| 欧美日韩精品久久久| 91麻豆精东视频| 成人国产一区二区三区精品| 国产一区二区不卡在线| 国产制服丝袜一区| 激情文学综合网| 麻豆91在线观看| 日本特黄久久久高潮| 亚洲大片一区二区三区| 一区二区国产视频| 亚洲免费av观看| 亚洲男人的天堂在线aⅴ视频| 一区在线观看视频| 国产精品美女久久久久久2018| 国产日产精品一区| 国产精品久久久久三级| 中文欧美字幕免费| 国产欧美一区二区在线| 国产清纯白嫩初高生在线观看91 | 亚洲国产cao| 亚洲福利国产精品| 午夜精品福利一区二区蜜股av| 亚洲摸摸操操av| 亚洲综合激情另类小说区| 一区二区三区国产精华| 亚洲一区二区三区四区的| 一个色综合网站| 日韩二区在线观看| 精品综合免费视频观看| 国产成人精品1024| 99热国产精品| 欧美视频中文字幕| 日韩精品中文字幕在线不卡尤物| 日韩片之四级片| ww久久中文字幕| 国产精品伦一区二区三级视频| 国产精品高潮呻吟久久| 亚洲综合一二区| 久久99精品国产.久久久久久| 国产一二三精品| 91麻豆swag| 日韩一区国产二区欧美三区| 欧美成人伊人久久综合网| 国产精品传媒入口麻豆| 亚洲成年人网站在线观看| 捆绑紧缚一区二区三区视频| 国产麻豆精品95视频| 91在线精品秘密一区二区| 欧美日韩黄色一区二区| 久久中文娱乐网| 一区二区三区四区在线播放| 午夜精品视频在线观看| 国产精选一区二区三区| 欧美在线不卡视频| 精品国产伦一区二区三区观看体验 | 亚洲狠狠爱一区二区三区| 久久99国产精品免费| 成人av资源站| 欧美一级片在线看| 18欧美乱大交hd1984| 蜜桃av一区二区在线观看| 91视频.com| 久久一区二区三区国产精品| 一区二区三区日韩| 国产在线一区二区| 欧美日韩另类国产亚洲欧美一级| 亚洲视频你懂的| 日韩av成人高清| 97久久人人超碰| 精品av久久707| 天天综合天天做天天综合| 成人综合婷婷国产精品久久蜜臀| 欧美一区欧美二区| 亚洲精品一二三区| 国产福利一区二区三区在线视频| 欧美日韩一二三| 亚洲精品午夜久久久| 成人av网站免费| 久久久久国产精品人| 秋霞成人午夜伦在线观看| 欧日韩精品视频| 亚洲欧美aⅴ...| 99久久久精品| 中文欧美字幕免费| 国产盗摄女厕一区二区三区| 欧美电影免费提供在线观看| 天堂久久久久va久久久久| 色妞www精品视频| 中文字幕在线不卡视频| 国产精品资源站在线| 精品国产乱码久久久久久夜甘婷婷| 五月天婷婷综合| 欧美日韩一区二区电影| 亚洲最新视频在线播放| 91浏览器入口在线观看| 中文字幕中文字幕一区二区| 成人激情视频网站| 亚洲国产成人自拍| 国产99久久久国产精品免费看| 久久久久久久久久看片| 国产精品一区2区| 国产欧美日韩中文久久| 懂色av一区二区在线播放| 欧美国产精品v|