/*********************************************************************** This routine is called when the menu command ROTATEMINUS is selected. The region selected is rotated 90 degress counterclockwise. ***********************************************************************/ OpRotMinus() { int vsize, hsize, size; Rectangle r, rbuf; Bitmap * buffer; if (GetIconRect(&r) == 0) return(0); hsize = horsize(r); vsize = versize(r); size = hsize + vsize; buffer = balloc(Rect(0, 0, size, size)); if (buffer == ((Bitmap * ) 0)) return(0); rectf(buffer, buffer->rect, F_CLR); rbuf = raddp(r, sub(Pt(vsize, 0), r.origin)); bitblt(&display, raddp(r, icon.origin), buffer, rbuf.origin, F_XOR); horshear(buffer, rbuf, -vsize, true); vershear(buffer, Rect(rbuf.origin.x - vsize, rbuf.origin.y, rbuf.corner.x, rbuf.corner.y), size, true); horshear(buffer, Rect(rbuf.origin.x - vsize, rbuf.corner.y - 1, rbuf.corner.x, rbuf.corner.y + hsize - 1), hsize, false); Erase(r); FetchIcon(buffer, Rect(rbuf.corner.x - vsize, rbuf.corner.y - 1, rbuf.corner.x, rbuf.corner.y + hsize - 1), add(r.origin, sub(Pt(hsize / 2, vsize / 2), Pt(vsize / 2, hsize / 2))), Rect(0, 0, Xblocks, Yblocks)); bfree(buffer); }
void CPageNavigator::EnsureIconVisible(int nItem) { RECT ItemRect = {0,0,0,0}; GetIconRect(nItem, &ItemRect); RECT ClientRect = {0,0,0,0}; GetClientRect(&ClientRect); int iDelta = 0; int dx = (ClientRect.left + m_xLeft) - ItemRect.left; if (dx > 0) iDelta = dx; dx = (ClientRect.right - m_xLeft) - ItemRect.right; if (dx < 0) iDelta = dx; if (!iDelta) return; for (int i = 0; i < GetItemCount(); i++) { POINT pt = {0,0}; GetItemPosition(i, &pt); pt.x += iDelta; SetItemPosition(i, pt); } }
VOID CDUIIconTextItem::PaintForgnd(HDC dc) { CRefPtr<CImageList> pIcon; if(m_bExpand) { pIcon = m_uiData.m_pExpandIcon; } else { pIcon = m_uiData.m_pNormalIcon; } if(pIcon.IsNull() || pIcon->IsNull()) { return; } INT nImageIndex(m_nIconIndex); if(nImageIndex >= pIcon->GetItemCount()) { nImageIndex = 0; } RECT rtIcon = GetIconRect(); pIcon->DrawInCenter(dc , rtIcon, nImageIndex); }
RECT CDUIIconTextItem::GetTextRect() { RECT rtBK = GetBKRect(); RECT rtIcon = GetIconRect(); RECT rtText = rtBK; rtText.left = rtIcon.right + GetPaddingWidth(); return rtText; }
LRESULT CMyEdit::OnNcHitTest(CPoint point) { // TODO: Add your message handler code here and/or call default CRect rcIcon; GetIconRect(rcIcon); if (PtInRect(&rcIcon, point)) { return HTBORDER; } return CEdit::OnNcHitTest(point); }
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point) { CRect rcIcon; CPoint pt; GetCursorPos(&pt); GetIconRect(rcIcon); if( PtInRect(&rcIcon,pt)) return; m_bPress = TRUE; CEdit::OnLButtonDown(nFlags, point); }
LRESULT CSkinEdit::OnNcHitTest(CPoint point) { CRect rcIcon; GetIconRect(rcIcon); if( PtInRect(&rcIcon,point)) { return HTBORDER; } return __super::OnNcHitTest(point); }
void CTabItem_Normal::Paint(CDC* pDC) { CRect rect; rect = GetRect(); rect.right -= m_iItemGap; if (m_bActive) CFaceManager::GetInstance()->DrawImageBar(IBI_PAGETAB_A, pDC->m_hDC, rect); else { if (IsHover()) CFaceManager::GetInstance()->DrawImageBar(IBI_PAGETAB_H, pDC->m_hDC, rect); else CFaceManager::GetInstance()->DrawImageBar(IBI_PAGETAB_N, pDC->m_hDC, rect); } if(m_bHasIcon) { if (GetIconRect(rect)) { m_imgIcon.Draw(pDC->GetSafeHdc(), rect.left, rect.top); } } // DrawText <begin> if (GetTextRect(rect)) { CFontDC font(pDC->GetSafeHdc(), _T("宋体")); font = 12; int iOldMode = pDC->SetBkMode(TRANSPARENT); COLORREF clrOldText; if (m_bActive) { clrOldText = pDC->SetTextColor(RGB(154, 2, 1)); } else { clrOldText = pDC->SetTextColor(RGB(255, 255, 255)); } pDC->DrawText(m_strCaption, rect, DT_VCENTER | DT_SINGLELINE | DT_CENTER | DT_WORD_ELLIPSIS); pDC->SetTextColor(clrOldText); pDC->SetBkMode(iOldMode); } // DrawText <end> }
void CMyEdit::OnNcLButtonUp(UINT nHitTest, CPoint point) { CWnd *pWnd = GetParent(); if ( pWnd != NULL && pWnd->GetSafeHwnd() != NULL ) { CRect rcIcon; CPoint pt; GetCursorPos(&pt); GetIconRect(rcIcon); if( PtInRect(&rcIcon,pt)) pWnd->PostMessage(WM_COMMAND,GetDlgCtrlID()); } CEdit::OnNcLButtonUp(nHitTest, point); }
BOOL CTabItem_Normal::GetTextRect(CRect &rect) { rect = GetRect(); rect.right -= m_iItemGap; rect.right -= MARGIN_H; CRect rtIcon; if (GetIconRect(rtIcon)) rect.left = rtIcon.right + 2; else rect.left += MARGIN_H; if (m_bActive) rect.top += 4; else rect.top += 8; return TRUE; }
BOOL CMyEdit::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { CRect rcIcon; CPoint pt; GetCursorPos(&pt); GetIconRect(rcIcon); if( PtInRect(&rcIcon,pt)) { if( m_bHandCursor ) SetCursor(LoadCursor(NULL,IDC_HAND)); else SetCursor(LoadCursor(NULL,IDC_ARROW)); return TRUE; } return CEdit::OnSetCursor(pWnd, nHitTest, message); }
void CMyEdit::OnLButtonUp(UINT nFlags, CPoint point) { CRect rcIcon; CPoint pt; GetCursorPos(&pt); GetIconRect(rcIcon); if (PtInRect(rcIcon, pt)) { return; } else { if (m_bPress) { m_bPress = FALSE; RedrawWindow(NULL, NULL, RDW_FRAME | RDW_VALIDATE | RDW_NOERASE | RDW_ERASE); } } CEdit::OnLButtonUp(nFlags, point); }
LRESULT CPageNavigator::OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { if (!m_bCapture) return S_OK; ReleaseCapture(); m_bCapture = false; if (!m_bDown) return S_OK; m_bDown = false; int nPage = -1; POINT ptCursor = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; for (int i = 0; i < GetItemCount(); i++) { RECT ItemRect = {0,0,0,0}; GetIconRect(i, &ItemRect); if (::PtInRect(&ItemRect, ptCursor)) { nPage = i; break; } } if (::GetFocus() != m_hWnd) ::SetFocus(m_hWnd); if (nPage < m_pAGDoc->GetNumPages()) { int nLastPage = GetPage(); if (SelectPage(nPage, true/*bSetState*/)) SendMessage(GetParent(), WM_COMMAND, MAKEWPARAM(GetDlgCtrlID(), BN_CLICKED/*wNotifyCode*/), MAKELPARAM(nLastPage,nPage)); } else { // It must be the add button SendMessage(GetParent(), WM_COMMAND, MAKEWPARAM(IDC_DOC_PAGEADD, BN_CLICKED/*wNotifyCode*/), 0L); } return S_OK; }
void CSkinEdit::OnNcLButtonUp(UINT nHitTest, CPoint point) { CWnd *pWnd = GetParent(); if ( pWnd != NULL && pWnd->GetSafeHwnd() != NULL ) { CRect rcIcon; CPoint pt; GetCursorPos(&pt); GetIconRect(rcIcon); if( PtInRect(&rcIcon,pt)) { //m_bSendMsg = true; pWnd->PostMessage(WM_EDIT_CLICK,GetDlgCtrlID()); //m_bSendMsg = false; } } __super::OnNcLButtonUp(nHitTest, point); }
LRESULT CPageNavigator::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { if (!m_hWnd || !m_pAGDoc) return E_FAIL; NMHDR* pNMHDR = (NMHDR*)lParam; // don't handle messages from odd places if (pNMHDR->hwndFrom != m_hWnd && pNMHDR->hwndFrom != ::GetParent(m_hWnd)) { bHandled = false; return 1; } LRESULT lResult = 0; switch (pNMHDR->code) { case NM_CLICK: { NMITEMACTIVATE* pItemAct = (NMITEMACTIVATE*)pNMHDR; if (!pItemAct) break; int nPage = -1; for (int i = 0; i < GetItemCount(); i++) { RECT ItemRect = {0,0,0,0}; GetIconRect(i, &ItemRect); if (::PtInRect(&ItemRect, pItemAct->ptAction)) { nPage = i; break; } } if (nPage < m_pAGDoc->GetNumPages()) { int nLastPage = GetPage(); if (SelectPage(nPage, false/*bSetState*/)) SendMessage(GetParent(), WM_COMMAND, MAKEWPARAM(GetDlgCtrlID(), BN_CLICKED/*wNotifyCode*/), MAKELPARAM(nLastPage,nPage)); } else { // It must be the add button SendMessage(GetParent(), WM_COMMAND, MAKEWPARAM(IDC_DOC_PAGEADD, BN_CLICKED/*wNotifyCode*/), 0L); } break; } case NM_SETFOCUS: case NM_KILLFOCUS: case LVN_KEYDOWN: case LVN_ITEMCHANGING: case LVN_ITEMCHANGED: case LVN_INSERTITEM: case LVN_DELETEITEM: case LVN_DELETEALLITEMS: case LVN_ITEMACTIVATE: // happens on a double-click case LVN_BEGINDRAG: { bHandled = false; // not handled break; } // These message do not occur normally case LVN_BEGINRDRAG: case LVN_COLUMNCLICK: case LVN_ODCACHEHINT: case LVN_ODSTATECHANGED: case LVN_ODFINDITEM: case LVN_HOTTRACK: case LVN_BEGINLABELEDIT: case LVN_ENDLABELEDIT: case LVN_GETDISPINFO: case LVN_SETDISPINFO: case LVN_MARQUEEBEGIN: case LVN_GETINFOTIP: default: { bHandled = false; // not handled break; } } return lResult; }
int CALLBACK GetMemoData( LPVOID lp, int nGetType, LPVOID lpData, int nDataSize) { switch( nGetType) { case _GET_MEMO: return GetMemo( lp, lpData, nDataSize); case _GET_TITLE: return GetTitle( lp, lpData, nDataSize); case _GET_FONT: return GetFont( lp, lpData, nDataSize); case _GET_FORECOLOR: return GetForeColor( lp, lpData, nDataSize); case _GET_BACKCOLOR: return GetBackColor( lp, lpData, nDataSize); case _GET_ICON: return GetIconIndex( lp); case _GET_ZORDER: return GetZOrder( lp); case _GET_WINDOWTYPE: return GetWindowType( lp); case _GET_RECT_NORMAL: return GetNormalRect( lp, lpData, nDataSize); case _GET_POINT_TITLE: return GetTitlePoint( lp, lpData, nDataSize); case _GET_POINT_ICON: return GetIconPoint( lp, lpData, nDataSize); case _GET_RECT_TITLE: return GetTitleRect( lp, lpData, nDataSize); case _GET_RECT_ICON: return GetIconRect( lp, lpData, nDataSize); case _GET_TIMERENABLE: return IsTimerEnable( lp); case _GET_TIMER_TYPE: return GetTimerType( lp); case _GET_TIMER_MONTH: return GetTimerMonth( lp); case _GET_TIMER_DAY: return GetTimerDay( lp); case _GET_TIMER_HOUR: return GetTimerHour( lp); case _GET_TIMER_MIN: return GetTimerMin( lp); case _GET_TIMER_WEEK: return GetTimerWeek( lp); case _GET_TIMER_SOUND: return GetTimerSound( lp, lpData, nDataSize); case _GET_LINKENABLE: return IsLink( lp); case _GET_LINK_FILE: return GetLinkFile( lp, lpData, nDataSize); case _GET_LINK_PARAM: return GetLinkParam( lp, lpData, nDataSize); case _GET_CREATE_YEAR: return GetCreateYear( lp); case _GET_CREATE_MONTH: return GetCreateMonth( lp); case _GET_CREATE_DAY: return GetCreateDay( lp); case _GET_DEF_FONT: return GetDefFont( lpData, nDataSize); case _GET_DEF_FORECLR: return GetDefForeColor( lpData, nDataSize); case _GET_DEF_BACKCLR: return GetDefBackColor( lpData, nDataSize); case _GET_VERSION: return VERSION_CODE; } return 0; }