YGroup::YGroup(CList<YObject*, YObject*>& list){ resizing = FALSE; // 그룹 리스트 초기화 YObject* tmp; POSITION pos = list.GetHeadPosition(); while (pos){ tmp = list.GetNext(pos); tmp->setSelect(FALSE); groupList.AddTail(tmp); } // 리젼 사각형을 위한 좌표값 생성 sPoint.SetPoint(10000, 10000); ePoint.SetPoint(0, 0); CRect rec; pos = groupList.GetHeadPosition(); while (pos){ tmp = groupList.GetNext(pos); rec = tmp->getORect(); if (sPoint.x > rec.TopLeft().x) sPoint.x = rec.TopLeft().x; if (sPoint.y > rec.TopLeft().y) sPoint.y = rec.TopLeft().y; if (ePoint.x < rec.BottomRight().x) ePoint.x = rec.BottomRight().x; if (ePoint.y < rec.BottomRight().y) ePoint.y = rec.BottomRight().y; } }
void CDocStructRecordItem::OnDrawCaption(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs, XTP_REPORTRECORDITEM_METRICS* pMetrics) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); CDocStructRecord* pRecord = (CDocStructRecord*)GetRecord(); if (pRecord == NULL) { return; } pDrawArgs->nTextAlign = DT_VCENTER; if (pRecord->m_nCurrentLayout == DocumentStructureLayout(Thumbnail)) { if (pRecord->IsPage()) { CRect rcCaption; rcCaption.SetRect(pDrawArgs->rcItem.left - RECORD_ITEM_OFFSET + 1, pDrawArgs->rcItem.bottom - RECORD_TEXT_OFFSET - 5, pDrawArgs->rcItem.right - pDrawArgs->pRow->GetTreeDepth() * RECORD_ITEM_OFFSET, pDrawArgs->rcItem.bottom); pDrawArgs->rcItem.SetRect(rcCaption.TopLeft(), rcCaption.BottomRight()); } else { CRect rcCaption (pDrawArgs->rcItem); rcCaption.left += 3; rcCaption.right -= pDrawArgs->pRow->GetTreeDepth() * RECORD_ITEM_OFFSET; pDrawArgs->rcItem.SetRect(rcCaption.TopLeft(), rcCaption.BottomRight()); } } // If this is a "click" page, draw icon in front of page title bool bDrawClickIcon = pRecord->IsPage() && pRecord->m_pContainer != NULL && pRecord->m_pContainer->ShowClickIcon(pRecord->m_pvData); if (bDrawClickIcon) { CXTPReportPaintManager* pPaintManager = pDrawArgs->pControl->GetPaintManager(); if (pPaintManager) { CRect rcCaption(pDrawArgs->rcItem); CRect rcBitmap(rcCaption.right-22, rcCaption.top, rcCaption.right-2, rcCaption.bottom); CSize csBitmap = ((CXTPDocumentStructurePaintManager*)pPaintManager)->DrawCustomBitmap(pDrawArgs->pDC, pDrawArgs->pRow, rcBitmap, 5); pDrawArgs->rcItem.right = rcBitmap.left; } } CXTPReportRecordItem::OnDrawCaption(pDrawArgs, pMetrics); }
void Graphic_Rectangle::drawBoundary(CDC* cdc) { CRect rect = GetBoundary(); CPen pen(PS_SOLID, 1, RGB(0,0,0)); cdc->SelectObject(&pen); cdc->SelectStockObject(NULL_BRUSH); cdc->SelectStockObject(WHITE_BRUSH); CRect box(rect.BottomRight().x-5, rect.BottomRight().y-5, rect.BottomRight().x+5, rect.BottomRight().y+5); cdc->Rectangle(box); box.SetRect(rect.TopLeft().x-5, rect.TopLeft().y-5, rect.TopLeft().x+5, rect.TopLeft().y+5); cdc->Rectangle(box); box.SetRect(rect.left-5, rect.bottom-5, rect.left+5, rect.bottom+5); cdc->Rectangle(box); box.SetRect(rect.right-5, rect.top-5, rect.right+5, rect.top+5); cdc->Rectangle(box); box.SetRect(rect.CenterPoint().x-5, rect.bottom-5, rect.CenterPoint().x+5, rect.bottom+5); cdc->Rectangle(box); box.SetRect(rect.CenterPoint().x-5, rect.top-5, rect.CenterPoint().x+5, rect.top+5); cdc->Rectangle(box); box.SetRect(rect.right-5, rect.CenterPoint().y-5, rect.right+5, rect.CenterPoint().y+5); cdc->Rectangle(box); box.SetRect(rect.left-5, rect.CenterPoint().y-5, rect.left+5, rect.CenterPoint().y+5); cdc->Rectangle(box); }
void CGelView::OnInitialUpdate() { CFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class // ResizeParentToFit(FALSE); // ((CMDIChildWnd *)GetParentFrame())->MDIMaximize(); // m_GelView = TRUE; // CButton m_cDraw; CDC* pDC = GetDC(); CRect ClientRect; GetClientRect(ClientRect); CPoint ptl = ClientRect.TopLeft(); CPoint pbr = ClientRect.BottomRight(); ptl.x = ptl.x + 220; ptl.y = ptl.y + 0; pbr.x = pbr.x - 0; pbr.y = pbr.y - 0; ClientRect.TopLeft() = ptl; ClientRect.BottomRight() = pbr; int DisplayHeight = ClientRect.Height(); int DisplayWidth = ClientRect.Width(); double ypi = pDC->GetDeviceCaps(LOGPIXELSY); double xpi = pDC->GetDeviceCaps(LOGPIXELSX); // WINDOWPLACEMENT wndpl; // m_cDraw.GetWindowPlacement( &wndpl ); // wndpl.rcNormalPosition.bottom = DisplayHeight - 10; // wndpl.rcNormalPosition.right = DisplayWidth - 10; // m_cDraw.SetWindowPlacement( &wndpl ); int x = (int)((double)(DisplayWidth - 10) / xpi * 100.0 ); int y = (int)((double)(DisplayWidth - 10) / ypi * 100.0 ); SetGelSize( x, y ); // x = (int)((double)DisplayWidth / xpi * 100.0 ); // y = (int)((double)DisplayHeight / ypi * 100.0 ); // pDoc->m_ViewSize = CSize( x, y ); ReleaseDC ( pDC ); m_init = 1; }
void CGelView::OnSize(UINT nType, int cx, int cy) { CFormView::OnSize(nType, cx, cy); // TODO: Add your message handler code here CGenedocDoc *pDoc = GetDocument(); // if ( pDoc->IsEmbedded() && m_GelView ) { if ( m_init ) { CDC* pDC = GetDC(); CRect ClientRect; GetClientRect(ClientRect); CPoint ptl = ClientRect.TopLeft(); CPoint pbr = ClientRect.BottomRight(); ptl.x = ptl.x + 220; ptl.y = ptl.y + 0; pbr.x = pbr.x - 0; pbr.y = pbr.y - 0; ClientRect.TopLeft() = ptl; ClientRect.BottomRight() = pbr; int DisplayHeight = ClientRect.Height(); int DisplayWidth = ClientRect.Width(); double ypi = pDC->GetDeviceCaps(LOGPIXELSY); double xpi = pDC->GetDeviceCaps(LOGPIXELSX); // WINDOWPLACEMENT wndpl; // m_cDraw.GetWindowPlacement( &wndpl ); // wndpl.rcNormalPosition.bottom = DisplayHeight - 10; // wndpl.rcNormalPosition.right = DisplayWidth - 10; // m_cDraw.SetWindowPlacement( &wndpl ); int x = (int)((double)(DisplayWidth - 10) / xpi * 100.0 ); int y = (int)((double)(DisplayHeight - 10) / ypi * 100.0 ); SetGelSize( x, y ); // x = (int)((double)DisplayWidth / xpi * 100.0 ); // y = (int)((double)DisplayHeight / ypi * 100.0 ); // pDoc->m_ViewSize = CSize( x, y ); ReleaseDC(pDC); } }
void COptionTreeList::OnLButtonUp(UINT nFlags, CPoint point) { // See if disabled if (m_otOption->IsDisableInput() || !m_otOption->IsWindowEnabled()) { CWnd::OnLButtonUp(nFlags, point); return; } // Draw column if (m_bColDrag == TRUE) { // -- Declare variables CRect rcClient; // -- Get client rectangle GetClientRect(rcClient); // -- Release capture m_bColDrag = FALSE; // -- Release capture ReleaseCapture(); // -- Resize limit // -- -- Left if (point.x < (OT_EXPANDCOLUMN + OT_RESIZEBUFFER)) { // -- -- -- Set column m_otOption->SetColumn(OT_EXPANDCOLUMN + OT_RESIZEBUFFER); } // -- -- Right else if (point.x > (rcClient.BottomRight().x - OT_RESIZEBUFFER)) { // -- -- -- Set column m_otOption->SetColumn(rcClient.BottomRight().x - OT_RESIZEBUFFER); } else { // -- -- -- Set column m_otOption->SetColumn(point.x); } // -- Update move items m_otOption->UpdateMoveAllItems(); // -- Force redraw Invalidate(); // -- Update window UpdateWindow(); } CWnd::OnLButtonUp(nFlags, point); }
void RetrievePointDims (LONG lONr, CRect &rrc, LONG &rlEpsX, LONG &rlEpsY) { Punkt pt1, pt2; DCtoOCEx (rrc.TopLeft(), &pt1); rrc.TopLeft().x = pt1.GetX(); rrc.TopLeft().y = pt1.GetY(); DCtoOCEx (rrc.BottomRight(), &pt2); rrc.BottomRight().x = pt2.GetX(); rrc.BottomRight().y = pt2.GetY(); rlEpsX = abs(rrc.right - rrc.left); rlEpsY = abs(rrc.top - rrc.bottom); }
LRESULT TextFrame::onClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { CRect rc; if(!IsIconic()){ //Get position of window GetWindowRect(&rc); //convert the position so it's relative to main window ::ScreenToClient(GetParent(), &rc.TopLeft()); ::ScreenToClient(GetParent(), &rc.BottomRight()); //save the position SettingsManager::getInstance()->set(SettingsManager::TEXT_BOTTOM, (rc.bottom > 0 ? rc.bottom : 0)); SettingsManager::getInstance()->set(SettingsManager::TEXT_TOP, (rc.top > 0 ? rc.top : 0)); SettingsManager::getInstance()->set(SettingsManager::TEXT_LEFT, (rc.left > 0 ? rc.left : 0)); SettingsManager::getInstance()->set(SettingsManager::TEXT_RIGHT, (rc.right > 0 ? rc.right : 0)); } SettingsManager::getInstance()->removeListener(this); if (viewFile) { ViewFileManager::getInstance()->removeFile(viewFile->getTTH()); ViewFileManager::getInstance()->removeListener(this); } bHandled = FALSE; return 0; }
void CDlgAppConfig::ReSize(int nID,bool nZoom) { CRect Rect; if( GetDlgItem(nID)->GetSafeHwnd() ) { GetDlgItem(nID)->GetWindowRect(Rect); ScreenToClient(Rect); //计算控件左上角点 CPoint OldTLPoint,TLPoint; OldTLPoint = Rect.TopLeft(); TLPoint.x = long(OldTLPoint.x *m_Multiple_width); TLPoint.y = long(OldTLPoint.y * m_Multiple_height ); //计算控件右下角点 CPoint OldBRPoint,BRPoint; OldBRPoint = Rect.BottomRight(); if(nZoom){ BRPoint.x = long(OldBRPoint.x *m_Multiple_width); BRPoint.y = long(OldBRPoint.y *m_Multiple_height); }else{ BRPoint.x = long(TLPoint.x + Rect.Width()); BRPoint.y = long(TLPoint.y + Rect.Height()); } //移动控件到新矩形 Rect.SetRect(TLPoint,BRPoint); GetDlgItem(nID)->MoveWindow(Rect,false); } }
void EPropWnd::EnsureVisibility( const CRect& r ) { CRect cr; GetClientRect(&cr); CPoint tl = _CP2SP( cr.TopLeft() ); CPoint br = _CP2SP( cr.BottomRight() ); cr.SetRect( tl , br ); int nCurrentScrollPos = GetScrollPos( SB_VERT ); int nDeltay = 0; int nsp = -1; if( r.bottom > cr.bottom ) { nsp = r.bottom - cr.Height(); ASSERT(nsp>=0); cr.OffsetRect( 0 , nsp ); } if( r.top < cr.top ) //hvis toppen kom over øverste.. { nsp = r.top; ASSERT(nsp>=0); } if( nsp>=0 ) { SetScrollPos( SB_VERT , nsp ); } }
XResult CXElement::SetSize( Property::SizeType param ) { CRect rect; GetRect(rect); rect.BottomRight() = rect.TopLeft() + param; return SetRect(rect); }
LRESULT SystemFrame::onClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { CRect rc; if(!IsIconic()){ //Get position of window GetWindowRect(&rc); //convert the position so it's relative to main window ::ScreenToClient(GetParent(), &rc.TopLeft()); ::ScreenToClient(GetParent(), &rc.BottomRight()); //save the position SettingsManager::getInstance()->set(SettingsManager::SYSLOG_BOTTOM, (rc.bottom > 0 ? rc.bottom : 0)); SettingsManager::getInstance()->set(SettingsManager::SYSLOG_TOP, (rc.top > 0 ? rc.top : 0)); SettingsManager::getInstance()->set(SettingsManager::SYSLOG_LEFT, (rc.left > 0 ? rc.left : 0)); SettingsManager::getInstance()->set(SettingsManager::SYSLOG_RIGHT, (rc.right > 0 ? rc.right : 0)); } ctrlPad.SetWindowText(_T("")); LogManager::getInstance()->removeListener(this); SettingsManager::getInstance()->removeListener(this); bHandled = FALSE; WinUtil::setButtonPressed(IDC_SYSTEM_LOG, false); return 0; }
void CRulerItem::Invalidate() { CRect rc = GetHitRectPix(); m_pRuler->RulerToClient(rc.TopLeft()); m_pRuler->RulerToClient(rc.BottomRight()); m_pRuler->InvalidateRect(rc); }
bool CDynGameData::CharCollision(const CRect<int>& aRect,CCharacter* aSelf) { CCoord<float> left = aRect.TopLeft(); CCoord<float> right = aRect.BottomRight(); std::vector< CEnemy >::iterator low = lower_bound(iRuntimeData->Enemies().begin(),iRuntimeData->Enemies().end(),left,SortOperator); std::vector< CEnemy >::iterator high = upper_bound(iRuntimeData->Enemies().begin(),iRuntimeData->Enemies().end(),right,SortOperator); CPlayer* ptr2; while(low != high) { if (static_cast<CCharacter*>(&(*low))!=aSelf) if (low->CollisionCheck(aRect)) return true; low++; } for (int b=0;b<iAnyPlayer.size();b++) { ptr2 = iAnyPlayer[b]; if (static_cast<CCharacter*>(ptr2)!=aSelf&& !ptr2->iDead&& ptr2->CollisionCheck(aRect)) return true; } return false; }
void gkToolBarPaneBase::RepositionWindowInternal(AFX_SIZEPARENTPARAMS* lpLayout,HWND hWnd, LPCRECT lpRect) { ASSERT(hWnd != NULL); ASSERT(lpRect != NULL); HWND hWndParent = ::GetParent(hWnd); ASSERT(hWndParent != NULL); if (lpLayout != NULL && lpLayout->hDWP == NULL) return; // first check if the new rectangle is the same as the current CRect rectOld; ::GetWindowRect(hWnd, rectOld); ::ScreenToClient(hWndParent, &rectOld.TopLeft()); ::ScreenToClient(hWndParent, &rectOld.BottomRight()); if (::EqualRect(rectOld, lpRect)) return; // nothing to do // try to use DeferWindowPos for speed, otherwise use SetWindowPos if (lpLayout != NULL) { lpLayout->hDWP = ::DeferWindowPos(lpLayout->hDWP, hWnd, NULL, lpRect->left, lpRect->top, lpRect->right - lpRect->left, lpRect->bottom - lpRect->top, SWP_NOACTIVATE|SWP_NOZORDER); } else { ::SetWindowPos(hWnd, NULL, lpRect->left, lpRect->top, lpRect->right - lpRect->left, lpRect->bottom - lpRect->top, SWP_NOACTIVATE|SWP_NOZORDER); } }
//重新布局窗体内的控件// void CDeviceChiDlg::ReSize() { float fsp[2]; POINT recNewSize; //获取现在对话框的大小// CRect TempRect; GetClientRect(&TempRect); //取客户区大小// recNewSize.x = TempRect.right - TempRect.left; recNewSize.y = TempRect.bottom - TempRect.top; fsp[0] = (float)recNewSize.x / m_OldSize.x; fsp[1] = (float)recNewSize.y / m_OldSize.y; CRect Rect; int woc; CPoint OldTLPoint, TLPoint; //左上角// CPoint OldBRPoint, BRPoint; //右下角// HWND hwndChild = ::GetWindow(m_hWnd, GW_CHILD); //列出所有控件// while (hwndChild) { woc = ::GetDlgCtrlID(hwndChild);//取得ID// GetDlgItem(woc)->GetWindowRect(Rect); ScreenToClient(Rect); OldTLPoint = Rect.TopLeft(); TLPoint.x = long(OldTLPoint.x*fsp[0]); TLPoint.y = long(OldTLPoint.y*fsp[1]); OldBRPoint = Rect.BottomRight(); BRPoint.x = long(OldBRPoint.x *fsp[0]); BRPoint.y = long(OldBRPoint.y *fsp[1]); Rect.SetRect(TLPoint, BRPoint); GetDlgItem(woc)->MoveWindow(Rect, TRUE); hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT); } m_OldSize = recNewSize; }
//##ModelId=48A14586031E void CCurveObj::MouseSelectZoomIn(CRect zoomRect) { CFloatPoint leftTop; CFloatPoint rightBottom; CPoint point; /////////////////////////////////////////////////////////// point = zoomRect.TopLeft(); double dataX = (m_bDrawReverseX)?(m_cPlotRect.right - point.x)/m_dHorizontalFactor + m_MinPosFp.m_PosX - m_MoveOffsetFp.m_PosX + m_ZoomOffsetPrevious.m_PosX/2: (point.x - m_cPlotRect.left)/m_dHorizontalFactor + m_MinPosFp.m_PosX - m_MoveOffsetFp.m_PosX + m_ZoomOffsetPrevious.m_PosX/2; double dataY = (m_bDrawReverseY)?(point.y - m_cPlotRect.top)/m_dVerticalFactor + m_MinPosFp.m_PosY - m_MoveOffsetFp.m_PosY + m_ZoomOffsetPrevious.m_PosY/2: (m_cPlotRect.bottom - point.y)/m_dVerticalFactor + m_MinPosFp.m_PosY - m_MoveOffsetFp.m_PosY + m_ZoomOffsetPrevious.m_PosY/2; leftTop.InitPoint(dataX,dataY); ///////////////////////////////////////////////////////////// point = zoomRect.BottomRight(); dataX = (m_bDrawReverseX)?(m_cPlotRect.right - point.x)/m_dHorizontalFactor + m_MinPosFp.m_PosX - m_MoveOffsetFp.m_PosX + m_ZoomOffsetPrevious.m_PosX/2: (point.x - m_cPlotRect.left)/m_dHorizontalFactor + m_MinPosFp.m_PosX - m_MoveOffsetFp.m_PosX + m_ZoomOffsetPrevious.m_PosX/2; dataY = (m_bDrawReverseY)?(point.y - m_cPlotRect.top)/m_dVerticalFactor + m_MinPosFp.m_PosY - m_MoveOffsetFp.m_PosY + m_ZoomOffsetPrevious.m_PosY/2: (m_cPlotRect.bottom - point.y)/m_dVerticalFactor + m_MinPosFp.m_PosY - m_MoveOffsetFp.m_PosY + m_ZoomOffsetPrevious.m_PosY/2; rightBottom.InitPoint(dataX,dataY); ///////////////////////////////////////////////////////////////// m_MaxPosFp.InitPoint(-10000000000.0,-10000000000.0); m_MinPosFp.InitPoint(10000000000.0,10000000000.0); m_MoveOffsetFp.InitPoint(0.0,0.0); m_ZoomOffsetPrevious.InitPoint(0.0,0.0); this->CalculateMaxPoint(m_MaxPosFp,&leftTop); this->CalculateMaxPoint(m_MaxPosFp,&rightBottom); this->CalculateMinPoint(m_MinPosFp,&leftTop); this->CalculateMinPoint(m_MinPosFp,&rightBottom); m_ZoomOffsetFp = m_MaxPosFp - m_MinPosFp; }
void CCheckStatic::SetCheck(BOOL check) { m_Check.SetCheck(check); if (m_ItemID.GetSize() > 0) { for (int i = 0; i < m_ItemID.GetSize(); i++) GetParent()->GetDlgItem(m_ItemID[i])->EnableWindow(check); } else { for (int i = 0; i < m_IDList.GetSize(); i++) { CWnd * pWnd = GetParent()->GetDlgItem(m_IDList[i]); // We grab the rect of the item, put it into client co-ord's and only modify items inside our static box CRect rc; pWnd->GetWindowRect(&rc); ScreenToClient(&rc); if (m_rcStatic.PtInRect(rc.TopLeft()) && m_rcStatic.PtInRect(rc.BottomRight())) pWnd->EnableWindow(check); } } }
void COXScrollTip::RedrawBackground(CRect rect) // --- In : // --- Out : // --- Returns : // --- Effect : Updates the windows that are covered by the specified rect (screen coordinates) { // We give the windows that are under the top left and bottom right corner of // the specified rect the opportunity the redraw themselves now. // Other areas will be repainted through a (posted) WM_PAINT, which will // be handled later. if (!rect.IsRectEmpty()) { CWnd* pBackTopLeftWnd = CWnd::WindowFromPoint(rect.TopLeft()); if (pBackTopLeftWnd != NULL) { pBackTopLeftWnd = pBackTopLeftWnd->GetTopLevelParent(); ASSERT(pBackTopLeftWnd != NULL); pBackTopLeftWnd->RedrawWindow(&rect); } CWnd* pBackBottomRightWnd = CWnd::WindowFromPoint(rect.BottomRight()); if ((pBackBottomRightWnd != NULL) && (pBackTopLeftWnd != pBackBottomRightWnd)) { pBackBottomRightWnd = pBackBottomRightWnd->GetTopLevelParent(); ASSERT(pBackBottomRightWnd != NULL); pBackBottomRightWnd->RedrawWindow(&rect); } } }
void CReportEntityLine::Draw( CDC* dc, CRect rect ) /* ============================================================ Function : CReportEntityLine::Draw Description : Draws the object. Access : Public Return : void Parameters : CDC* dc - "CDC" to draw to CRect rect - True (zoomed) rectangle to draw to. Usage : Called from "CDiagramEditor::DrawObjects". ============================================================*/ { CPen pen; const float* table = Drawer::GetColorByIndex(GetBorderColor()); COLORREF clr = RGB((int)(table[0]*255.0f),(int)(table[1]*255.0f),(int)(table[2]*255.0f)); pen.CreatePen( PS_SOLID, GetBorderThickness(), clr ); dc->SelectObject( &pen ); dc->MoveTo( rect.TopLeft() ); dc->LineTo( rect.BottomRight() ); dc->SelectStockObject( BLACK_PEN ); }
CTexViewer::eDRAGTYPE CTexViewer::CheckDragType(CRect rcSel, CPoint point) { CPoint pt; CRect rcCheck; const int W = 4; pt = rcSel.TopLeft(); rcCheck.SetRect(pt.x-W, pt.y-W, pt.x+W, pt.y+W); if (rcCheck.PtInRect(point)) return DRAGTYPE_LEFTTOP; pt = rcSel.BottomRight(); rcCheck.SetRect(pt.x-W, pt.y-W, pt.x+W, pt.y+W); if (rcCheck.PtInRect(point)) return DRAGTYPE_RIGHTBOTTOM; pt = CPoint(rcSel.right, rcSel.top); rcCheck.SetRect(pt.x-W, pt.y-W, pt.x+W, pt.y+W); if (rcCheck.PtInRect(point)) return DRAGTYPE_RIGHTTOP; pt = CPoint(rcSel.left, rcSel.bottom); rcCheck.SetRect(pt.x-W, pt.y-W, pt.x+W, pt.y+W); if (rcCheck.PtInRect(point)) return DRAGTYPE_LEFTBOTTOM; rcCheck.SetRect(rcSel.left-W, rcSel.top, rcSel.left+W, rcSel.bottom); if (rcCheck.PtInRect(point)) return DRAGTYPE_LEFT; rcCheck.SetRect(rcSel.right-W, rcSel.top, rcSel.right+W, rcSel.bottom); if (rcCheck.PtInRect(point)) return DRAGTYPE_RIGHT; rcCheck.SetRect(rcSel.left, rcSel.top-W, rcSel.right, rcSel.top+W); if (rcCheck.PtInRect(point)) return DRAGTYPE_TOP; rcCheck.SetRect(rcSel.left, rcSel.bottom-W, rcSel.right, rcSel.bottom+W); if (rcCheck.PtInRect(point)) return DRAGTYPE_BOTTOM; if (rcSel.PtInRect(point)) return DRAGTYPE_MOVE; return DRAGTYPE_NONE; }
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (! m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || ! m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar¥n"); return -1; } if (! m_wndStatusBar.Create(this) || ! m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar¥n"); return -1; } // ステータスバーインジケータが正しく表示されるよう先頭ペイン幅を変更 m_wndStatusBar.SetPaneInfo(0, 0, SBPS_NOBORDERS | SBPS_STRETCH, 0); // 最小サイズで表示 CRect rcWindow; GetWindowRect(&rcWindow); rcWindow.BottomRight() = rcWindow.TopLeft(); MoveWindow(rcWindow); m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); return 0; }
LRESULT FavoriteHubsFrame::onClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { if(!closed) { FavoriteManager::getInstance()->removeListener(this); SettingsManager::getInstance()->removeListener(this); ClientManager::getInstance()->removeListener(this); closed = true; WinUtil::setButtonPressed(IDC_FAVORITES, false); PostMessage(WM_CLOSE); return 0; } else { WinUtil::saveHeaderOrder(ctrlHubs, SettingsManager::FAVORITESFRAME_ORDER, SettingsManager::FAVORITESFRAME_WIDTHS, COLUMN_LAST, columnIndexes, columnSizes); CRect rc; if(!IsIconic()){ //Get position of window GetWindowRect(&rc); //convert the position so it's relative to main window ::ScreenToClient(GetParent(), &rc.TopLeft()); ::ScreenToClient(GetParent(), &rc.BottomRight()); //save the position SettingsManager::getInstance()->set(SettingsManager::FAV_BOTTOM, (rc.bottom > 0 ? rc.bottom : 0)); SettingsManager::getInstance()->set(SettingsManager::FAV_TOP, (rc.top > 0 ? rc.top : 0)); SettingsManager::getInstance()->set(SettingsManager::FAV_LEFT, (rc.left > 0 ? rc.left : 0)); SettingsManager::getInstance()->set(SettingsManager::FAV_RIGHT, (rc.right > 0 ? rc.right : 0)); } bHandled = FALSE; return 0; } }
bool CConvert::GridRectInRange(const CRect& r){ if(GridPointInRange(r.TopLeft()) && GridPointInRange(r.BottomRight())){ return true; }else{ return false; } }
void RetrieveLineDim (LONG lONr, CRect &rrc, LONG &rlEps) { rrc.BottomRight() = rrc.TopLeft(); rrc.bottom += LINE_EPSILON_DC; rrc.right += LINE_EPSILON_DC; Punkt pt1, pt2; DCtoOCEx (rrc.TopLeft(), &pt1); rrc.TopLeft().x = pt1.GetX(); rrc.TopLeft().y = pt1.GetY(); DCtoOCEx (rrc.BottomRight(), &pt2); rrc.BottomRight().x = pt2.GetX(); rrc.BottomRight().y = pt2.GetY(); rlEps = (abs(rrc.right - rrc.left) + abs(rrc.top - rrc.bottom))/2; }
/** * @brief Display the line/word difference highlight in edit view */ static void HighlightDiffRect(CMergeEditView * pView, const CRect & rc) { if (rc.top == -1) { // Should we remove existing selection ? } else { // select the area // with anchor at left and caret at right // this seems to be conventional behavior in Windows editors pView->SelectArea(rc.TopLeft(), rc.BottomRight()); pView->SetCursorPos(rc.BottomRight()); pView->SetNewAnchor(rc.TopLeft()); // try to ensure that selected area is visible pView->EnsureVisible(rc.TopLeft(), rc.BottomRight()); } }
CRect Twindow::getChildRect(int id) const { CRect rs; GetWindowRect(GetDlgItem(m_hwnd,id),&rs); CPoint tl=rs.TopLeft(); ScreenToClient(m_hwnd,&tl); CPoint br=rs.BottomRight(); ScreenToClient(m_hwnd,&br); return CRect(tl,br); }
void CTimeSliceView::drawAlignCross( CTimeSliceDoc* pDoc, CDC* pDC ) { // // Only draw the cross on the view that currently has the focus. // if( pDoc->m_bDrawAlignCross && m_bDrawColourImage ) { CPoint& point = pDoc->m_pointAlignCross; CRect rect; pDC->GetBoundsRect( &rect, 0 ); pDC->SelectStockObject( GRAY_BRUSH ); pDC->Rectangle( 0, point.y - 2, rect.BottomRight().x, point.y + 2 ); pDC->Rectangle( point.x - 2, 0, point.x + 2, rect.BottomRight().y ); } }
void Group::drawBoundary(CDC* cdc) { CRect rect = getBoundary();// 그릴 사각형을 가져온다. CPen m_pen(PS_SOLID, 1, RGB(0, 0, 0));// 그릴 펜의 속성을 지정 CPen *oldpen = cdc->SelectObject(&m_pen); cdc->SelectStockObject(NULL_BRUSH); cdc->Rectangle(rect);// 테두리 사각형 그리고 cdc->SelectStockObject(WHITE_BRUSH); CRect box(rect.TopLeft().x - 5, rect.TopLeft().y - 5, rect.TopLeft().x + 5, rect.TopLeft().y + 5); cdc->Rectangle(box);// 왼쪽 위 사각형 그리고 box.SetRect(rect.right - 5, rect.top - 5, rect.right + 5, rect.top + 5); cdc->Rectangle(box);// 오른쪽 위 사각형 그리고 box.SetRect(rect.left - 5, rect.bottom - 5, rect.left + 5, rect.bottom + 5); cdc->Rectangle(box);// 왼쪽 아래 사각형 그리고 box.SetRect(rect.BottomRight().x - 5, rect.BottomRight().y - 5, rect.BottomRight().x + 5, rect.BottomRight().y + 5); cdc->Rectangle(box);// 오른쪽 아래 사각형 그리고 //노드 데이터 변경 POSITION posNode = NodeData.GetHeadPosition(); while (posNode) { Figure* pObj = (Figure*)NodeData.GetNext(posNode); pObj->draw(cdc); } //차일드 데이터 변경(recursion이 일어남) POSITION posChild = Child.GetHeadPosition(); while (posChild) { Group* pGroup = (Group*)Child.GetNext(posChild); pGroup->drawBoundary(cdc); } cdc->SelectObject(&oldpen); }
LRESULT CWinHotkeyCtrl::OnLeftClick(WPARAM wParam, LPARAM lParam) { CRect r; CPoint pt; CEditWithButton::GetWindowRect(r); CRect rectButton = GetButtonRect(r); pt = rectButton.BottomRight(); pt.x = pt.x-(rectButton.Width()); OnContextMenu(this, pt); return 0; }