15,976
社区成员
发帖
与我相关
我的任务
分享LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: 在此添加专用代码和/或调用基类
if (message == WM_MOVE || message == WM_NOTIFY || message == WM_NCACTIVATE)
{
OnNcPaint();
}
return CFrameWnd::DefWindowProc(message, wParam, lParam);
}LRESULT CAncestorWindow::OnLButtonDown(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
bHandled = FALSE;
if (!_isDrag||IsZoomed())
{
return FALSE;
}
POINT point = {GET_X_LPARAM(lParam),GET_Y_LPARAM(lParam)};
_drag_sign = JudgePos(point);
if (_drag_sign!=0)ReleaseCapture();
switch(_drag_sign)
{
case WMSZ_LEFT:
PostMessage(WM_NCLBUTTONDOWN,HTLEFT,MAKELPARAM(point.x, point.y));
break;
case WMSZ_RIGHT:
PostMessage(WM_NCLBUTTONDOWN,HTRIGHT,MAKELPARAM(point.x, point.y));
break;
case WMSZ_TOP:
PostMessage(WM_NCLBUTTONDOWN,HTTOP,MAKELPARAM(point.x, point.y));
break;
case WMSZ_TOPLEFT:
PostMessage(WM_NCLBUTTONDOWN,HTTOPLEFT,MAKELPARAM(point.x, point.y));
break;
case WMSZ_TOPRIGHT:
PostMessage(WM_NCLBUTTONDOWN,HTTOPRIGHT,MAKELPARAM(point.x, point.y));
break;
case WMSZ_BOTTOM:
PostMessage(WM_NCLBUTTONDOWN,HTBOTTOM,MAKELPARAM(point.x, point.y));
break;
case WMSZ_BOTTOMLEFT:
PostMessage(WM_NCLBUTTONDOWN,HTBOTTOMLEFT,MAKELPARAM(point.x, point.y));
break;
case WMSZ_BOTTOMRIGHT:
PostMessage(WM_NCLBUTTONDOWN,HTBOTTOMRIGHT,MAKELPARAM(point.x, point.y));
break;
default:
bHandled = FALSE;
break;
}
return TRUE;
}



void CMainFrame::OnNcPaint()
{
// TODO: Add your message handler code here
CFrameWnd::OnNcPaint();// for menu
CRect rc;
GetWindowRect(&rc);
rc.OffsetRect(-rc.left,-rc.top);
CDC *pDC=GetWindowDC();
if(m_Active==WA_INACTIVE) //=0
{
pDC->Draw3dRect(0,0,rc.Width(),rc.Height(),RGB(90,105,206),RGB(74,81,189));
pDC->Draw3dRect(1,1,rc.Width()-2,rc.Height()-1,RGB(115,130,222),RGB(115,130,222));
pDC->Draw3dRect(2,2,rc.Width()-4,rc.Height()-1,RGB(115,130,222),RGB(115,130,222));
}
else // active border
{
pDC->Draw3dRect(0,0,rc.Width(),rc.Height(),RGB(0,48,222),RGB(0,16,140));
pDC->Draw3dRect(1,1,rc.Width()-2,rc.Height()-1,RGB(16,105,239),RGB(0,28,165));
pDC->Draw3dRect(2,2,rc.Width()-4,rc.Height()-1,RGB(8,85,222),RGB(0,60,222));
}
ReleaseDC(pDC);
}