您的位置:首页 > 其它

VC中创建分割条的方法。

2014-11-20 22:49 253 查看
一直想用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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: