VC中创建分割条的方法。

一直想用API的方法来写一个简单的窗口分割条功能。

今天这个功能实现了,原来是这么的简单,我想的太复杂了。

 #define AFX_IDC_SMALLARROWS             30979       // splitter
#define AFX_IDC_HSPLITBAR               30980       // splitter
#define AFX_IDC_VSPLITBAR               30981       // splitter

case WM_MOUSEMOVE:
		{
			if(wParam ==MK_LBUTTON)
			{ 
			SetCursor(LoadCursor(LoadLibrary(TEXT("mfc42.dll")), MAKEINTRESOURCE(AFX_IDC_HSPLITBAR))); 
			HDC hdc = GetDC(hWnd);
			SelectObject(hdc,hPen);
			//清除上次
			SetROP2(hdc,R2_NOT);
			MoveToEx(hdc,xPos,100,0);
			LineTo(hdc,xPos,1000);

			//重绘新的
			xPos = GET_X_LPARAM(lParam);
			yPos = GET_Y_LPARAM(lParam);

			
			SetROP2(hdc,R2_NOT);
			MoveToEx(hdc,xPos,100,0);
			LineTo(hdc,xPos,1000);

			ReleaseDC(hWnd,hdc);				
			} 
		}
		break;
 	case WM_LBUTTONDOWN:
		{
			SetCapture(hWnd);
			SetCursor(LoadCursor(LoadLibrary(TEXT("mfc42.dll")), MAKEINTRESOURCE(AFX_IDC_HSPLITBAR))); 
			xPos = GET_X_LPARAM(lParam);
			yPos = GET_Y_LPARAM(lParam);
			HDC hdc = GetDC(hWnd);
			SelectObject(hdc,hPen);
			
			SetROP2(hdc,R2_NOT);
			MoveToEx(hdc,xPos,100,0);
			LineTo(hdc,xPos,1000);
			ReleaseDC(hWnd,hdc);
		}
		break;
	case WM_LBUTTONUP:
		{
			HDC hdc = GetDC(hWnd);
			SetROP2(hdc,R2_NOT);
			SelectObject(hdc,hPen);
			MoveToEx(hdc,xPos,100,0);
			LineTo(hdc,xPos,1000);
			ReleaseDC(hWnd,hdc);
			ReleaseCapture();
		}


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白的编程日志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值