这篇教程C++ GetItemRect函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetItemRect函数的典型用法代码示例。如果您正苦于以下问题:C++ GetItemRect函数的具体用法?C++ GetItemRect怎么用?C++ GetItemRect使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetItemRect函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ReleaseCapturevoid CDiasStatusBar::OnRButtonUp (UINT nFlags, CPoint point) { if (GetCapture() != this) { ReleaseCapture (); return; } ReleaseCapture (); CRect rect1, rect2; GetItemRect (2, rect1); GetItemRect (3, rect2); uvar32_64 n, count = 0; CaImMenu menu; CaImMenuItem** ppItems; menu.CreatePopupMenu (); GetItemRect (2, rect1); GetItemRect (3, rect2); if (rect1.PtInRect (point) || rect2.PtInRect (point)) { count = theApp.GeomScales.GetCount (); ppItems = new CaImMenuItem*[count]; for (n = 0; n < count; ++n) { ppItems[n] = new CaImMenuItem (theApp.GeomScales[n].GetName() + "/t(" + theApp.GeomScales[n].GetUnits () + ")", (theApp.GeomScales[aimActive].GetPos () == n) ? AMIS_CHECKED : 0); menu.AppendMenu (MF_STRING | MF_ENABLED | MF_OWNERDRAW, ID_TOOLS_GEOMSCALE_1 + n, (LPCTSTR)ppItems[n]); } menu.CheckMenuRadioItem (0, n, theApp.GeomScales[aimActive].GetPos (), MF_BYPOSITION); } GetItemRect (4, rect1); GetItemRect (5, rect2); if (rect1.PtInRect (point) || rect2.PtInRect (point)) { count = theApp.DensScales.GetCount (); ppItems = new CaImMenuItem*[count]; for (n = 0; n < count; ++n) { ppItems[n] = new CaImMenuItem (theApp.DensScales[n].GetName() + "/t(" + theApp.DensScales[n].GetUnits () + ")", (theApp.DensScales[aimActive].GetPos () == n) ? AMIS_CHECKED : 0); menu.AppendMenu (MF_STRING | MF_ENABLED | MF_OWNERDRAW, ID_TOOLS_GEOMSCALE_1 + n, (LPCTSTR)ppItems[n]); } menu.CheckMenuRadioItem (0, n, theApp.DensScales[aimActive].GetPos (), MF_BYPOSITION); } GetWindowRect (rect2); menu.TrackPopupMenu (TPM_LEFTALIGN, point.x + rect2.left, point.y + rect2.top, this); for (n = 0; n < count; ++n) delete ppItems[n]; if (count > 0) delete [] ppItems;}
开发者ID:macx0r,项目名称:dias-inet,代码行数:49,
示例2: GetSelectionMarkvoid CWndLog::CalcCoordsForCurSel(){ int iCurSel = GetSelectionMark (); if (iCurSel == -1) { POSITION pos = GetFirstSelectedItemPosition (); if (pos) iCurSel = GetNextSelectedItem (pos); } if (iCurSel != -1) { RECT rc; GetItemRect (iCurSel, &rc, LVIR_BOUNDS); m_rbPt.x = rc.left + 30; m_rbPt.y = rc.top; } else m_rbPt.x = m_rbPt.y = 30;}
开发者ID:naroya,项目名称:freedownload,代码行数:20,
示例3: SetButtonInfoBOOL CToolBarWithCombo::CreateComboBox(CComboBox& comboBox, UINT nIndex, UINT nID, int nWidth, int nDropHeight){ // Create the combo box SetButtonInfo(nIndex, nID, TBBS_SEPARATOR, nWidth); CRect rect; GetItemRect(nIndex, &rect); rect.top = 1; rect.bottom = rect.top + nDropHeight; if (!comboBox.Create( CBS_DROPDOWN|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL, rect, this, nID)) { TRACE("Failed to create combo-box/n"); return FALSE; } return TRUE;}
开发者ID:BackupTheBerlios,项目名称:iris-svn,代码行数:20,
示例4: GetItemRect//************************************************************************void CHeaderView::BiselaBoton(CRect rcWin,CGDI* pDC){ CPen cp; CPen cps; CPen cpw; cp.CreatePen(PS_SOLID,1, m_clrFace); cps.CreatePen(PS_SOLID,1, CDrawLayer::GetRGBSemiShadow()); cpw.CreatePen(PS_SOLID,1, m_clrLight); /*************************************************** pDC->Draw3dRect(rcWin,m_clrLight,m_clrShadow); rcWin.DeflateRect(1,1); pDC->Draw3dRect(rcWin,m_clrFace,m_clrFace); ***************************************************/ int iNumItems=GetItemCount(); int iContx=0; for (int i =0; i < iNumItems; i++) { CRect recItem; GetItemRect(i, recItem); iContx+=recItem.Width(); //quitamos todas las lineas recItem.DeflateRect(1,1); pDC->SelectObject(&cpw); pDC->MoveTo(iContx-2,rcWin.top+1); pDC->LineTo(iContx-2,rcWin.bottom-1); pDC->SelectObject(&cps); pDC->MoveTo(iContx-1,rcWin.top+1); pDC->LineTo(iContx-1,rcWin.bottom-1); pDC->SelectObject(&cpw); pDC->MoveTo(iContx,rcWin.top+1); pDC->LineTo(iContx,rcWin.bottom-1); } cp.DeleteObject(); cps.DeleteObject(); cpw.DeleteObject(); }
开发者ID:weimingtom,项目名称:swc,代码行数:42,
示例5: GetItem// TODO: make sure that moved items maintain their selection stateint ExListViewCtrl::moveItem(int oldPos, int newPos) { TCHAR buf[512]; LVITEM lvi; lvi.iItem = oldPos; lvi.iSubItem = 0; lvi.mask = LVIF_IMAGE | LVIF_INDENT | LVIF_PARAM | LVIF_STATE; GetItem(&lvi); TStringList l; for(int j = 0; j < GetHeader().GetItemCount(); j++) { GetItemText(oldPos, j, buf, 512); l.push_back(buf); } SetRedraw(FALSE); if(oldPos < newPos) { lvi.iItem = newPos + 1; } else { lvi.iItem = newPos; } int i = InsertItem(&lvi); int m = 0; for(TStringIter k = l.begin(); k != l.end(); ++k, m++) { SetItemText(i, m, k->c_str()); } EnsureVisible(i, FALSE); if(i < oldPos) DeleteItem(oldPos + 1); else DeleteItem(oldPos); SetRedraw(TRUE); RECT rc; GetItemRect(i, &rc, LVIR_BOUNDS); InvalidateRect(&rc); return i;}
开发者ID:BackupTheBerlios,项目名称:ldcpp-svn,代码行数:42,
示例6: CInPlaceListBoxCListBox* CPlayerListCtrl::ShowInPlaceListBox(int nItem, int nCol, CAtlList<CString>& lstItems, int nSel){ CRect rect; if (!PrepareInPlaceControl(nItem, nCol, rect)) { return nullptr; } DWORD dwStyle = WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL/*|WS_HSCROLL*/ | LBS_NOTIFY; CListBox* pListBox = DEBUG_NEW CInPlaceListBox(nItem, nCol, lstItems, nSel); pListBox->Create(dwStyle, rect, this, IDC_LIST1); CRect ir; GetItemRect(m_nItemClicked, &ir, LVIR_BOUNDS); pListBox->SetItemHeight(-1, ir.Height()); CDC* pDC = pListBox->GetDC(); CFont* pWndFont = GetFont(); pDC->SelectObject(pWndFont); int width = GetColumnWidth(nCol); POSITION pos = lstItems.GetHeadPosition(); while (pos) { int w = pDC->GetTextExtent(lstItems.GetNext(pos)).cx + 16; if (width < w) { width = w; } } ReleaseDC(pDC); CRect r; pListBox->GetWindowRect(r); ScreenToClient(r); r.top = ir.bottom; r.bottom = r.top + pListBox->GetItemHeight(0) * (pListBox->GetCount() + 1); r.right = r.left + width; pListBox->MoveWindow(r); m_fInPlaceDirty = false; return pListBox;}
开发者ID:Chris-Hood,项目名称:mpc-hc,代码行数:41,
示例7: CreateDragImagevoid CDragDropTreeCtrl::OnBeginDrag(NMHDR* pNMHDR, LRESULT* pResult){ *pResult = 0; NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; HTREEITEM hItem = pNMTreeView->itemNew.hItem; // Create a drag image. If the assertion fails, you probably forgot // to assign an image list to the control with SetImageList. Create- // DragImage will not work if the control hasn't been assigned an // image list! m_pImageList = CreateDragImage(hItem); ASSERT(m_pImageList != NULL); if (m_pImageList != NULL) { // Compute the coordinates of the "hot spot"--the location of the // cursor relative to the upper left corner of the item rectangle. CRect rect; GetItemRect(hItem, rect, TRUE); CPoint point(pNMTreeView->ptDrag.x, pNMTreeView->ptDrag.y); CPoint hotSpot = point; hotSpot.x -= rect.left; hotSpot.y -= rect.top; // Convert the client coordinates in "point" to coordinates relative // to the upper left corner of the control window. CPoint client(0, 0); ClientToScreen(&client); GetWindowRect(rect); point.x += client.x - rect.left; point.y += client.y - rect.top; // Capture the mouse and begin dragging. SetCapture(); m_pImageList->BeginDrag(0, hotSpot); m_pImageList->DragEnter(this, point); m_hDragItem = hItem; m_bDragging = TRUE; }}
开发者ID:gunjanms,项目名称:trunk-tortoisesvn-code,代码行数:41,
示例8: GetClientRectvoid SmartListCtrl::updateItemInternal( int index, const AssetInfo& inf, bool removeFromCache ){ if ( !provider_ || index < 0 ) return; if ( removeFromCache ) { listCacheBig_.cacheRemove( inf.text(), inf.longText() ); listCacheSmall_.cacheRemove( inf.text(), inf.longText() ); } CRect clRect; GetClientRect( &clRect ); CRect rect; GetItemRect( index, &rect, LVIR_BOUNDS ); if ( rect.right >= 0 && rect.bottom >= 0 && rect.left <= clRect.right && rect.top <= clRect.bottom ) { RedrawItems( index, index ); RedrawWindow( rect, NULL, 0 ); }}
开发者ID:siredblood,项目名称:tree-bumpkin-project,代码行数:21,
示例9: GetItemCountvoid CNewHeaderCtrl::OnLButtonDown(UINT nFlags, CPoint point){ if (m_nCheckColumn >= 0) { CRect rcItem; int nItems = GetItemCount(); for (int i = 0; i < nItems; ++i) { GetItemRect(i, &rcItem); rcItem.right = rcItem.left + 16; if (i == m_nCheckColumn && rcItem.PtInRect(point)) { m_bAllCheck = !m_bAllCheck; Invalidate(FALSE); ::PostMessage(::GetParent(::GetParent(m_hWnd)), WM_LIST_HEADER_CHECK_CHANGED, i, m_bAllCheck); return; } } } CHeaderCtrl::OnLButtonDown(nFlags, point);}
开发者ID:yinkaisheng,项目名称:MFCListCtrlEx,代码行数:21,
示例10: ClearSelectionstatic BOOL ClearSelection(LPBRTABLE lpNode, LPSTR lpData, LEVEL_TYPE level){ selinfo *si = (selinfo *) lpData; COLORREF rgb = GetBrowserSelectionColor(si->hDC); RECT rect; GetItemRect(si->lpBrData, lpNode, level, &rect); if (BRITEM_FLAGS(lpNode) & SELECTED_ITEM) { ColorNode(si->hDC, GetSysColor(COLOR_WINDOW), rgb, rect.left, rect.top, rect.right, rect.bottom); if (ITEMID_BRITEM(lpNode) == BrSelection.idObj) BrSelection.idObj = NULLID; BrSelection.wCount--; BRITEM_FLAGS(lpNode) &= ~SELECTED_ITEM; } return TRUE;}
开发者ID:thearttrooper,项目名称:KappaPC,代码行数:21,
示例11: GetItemRectbool CSideBar::AddItems(const SideBarItem *pItemList,int NumItems){ if (pItemList==NULL || NumItems<=0) return false; size_t OldSize=m_ItemList.size(); m_ItemList.resize(OldSize+NumItems); ::CopyMemory(&m_ItemList[OldSize],pItemList,NumItems*sizeof(SideBarItem)); if (m_Tooltip.IsCreated()) { for (int i=0;i<NumItems;i++) { if (pItemList[i].Command!=ITEM_SEPARATOR) { RECT rc; GetItemRect((int)OldSize+i,&rc); m_Tooltip.AddTool((UINT)OldSize+i,rc); } } } return true;}
开发者ID:DBCTRADO,项目名称:TVTest,代码行数:21,
示例12: AdjustItemImagevoid ecConfigToolView::Refresh (wxTreeItemId h){ if(h) { // TODO Not sure if we need this#if 0 AdjustItemImage(h); // Invalidate the labels of the affected items CRect rect; GetItemRect(h, rect, TRUE ); rect.left+=m_TreeXOffsetAdjustment; InvalidateRect(rect); // Do the same for the cell view CRect rcBuddyClient; CConfigTool::GetCellView()->GetClientRect(rcBuddyClient); rect.left=rcBuddyClient.left; rect.right=rcBuddyClient.right; CConfigTool::GetCellView()->InvalidateRect(rect);#endif }}
开发者ID:Robertysc,项目名称:ecos,代码行数:21,
示例13: _GetItemDatabool CListViewCtrlEx::_PtInSubItemLink( const POINT &pt, int nItem, int& nSubItem ){ if( nItem>=0 && nItem<_super::GetItemCount() ) { TListItem *pItem = _GetItemData(nItem); if (!pItem) return false; if ( pItem->dwFlags & LISTITEM_TITLE ) { for ( int i = 0; i < pItem->subItems.size(); i++) { const TListSubItem& subItem = pItem->subItems[i]; if ( subItem.type == SUBITEM_LINK) { CRect rcItem; CRect rcLink = subItem.rcOffset; GetItemRect(nItem,rcItem, LVIR_BOUNDS); rcLink.OffsetRect(rcItem.left, rcItem.top); if ( rcLink.PtInRect(pt) ) { nSubItem = i; return true; } } } } else if(nSubItem>=0 && nSubItem<pItem->subItems.size()) { const TListSubItem &subItem = pItem->subItems[nSubItem]; if( subItem.type==SUBITEM_LINK ) { // Check if in LINK Rect RECT rcLink = {0}; return _GetSubItemLinkRect(nItem, nSubItem, subItem.str, rcLink) && PtInRect(&rcLink, pt); } } } return false;}
开发者ID:charlessoft,项目名称:PicManager,代码行数:40,
示例14: PopupSubMenuHRESULT CMenuToolbarBase::PopupSubMenu(UINT iItem, UINT index, IShellMenu* childShellMenu, BOOL keyInitiated){ // Calculate the submenu position and exclude area RECT rc = { 0 }; if (!GetItemRect(index, &rc)) return E_FAIL; POINT a = { rc.left, rc.top }; POINT b = { rc.right, rc.bottom }; ClientToScreen(&a); ClientToScreen(&b); POINTL pt = { a.x, b.y }; RECTL rcl = { a.x, a.y, b.x, b.y }; if (m_initFlags & SMINIT_VERTICAL) { // FIXME: Hardcoding this here feels hacky. if (IsAppThemed()) { pt.x = b.x - 1; pt.y = a.y - 1; } else { pt.x = b.x - 3; pt.y = a.y - 3; } } // Display the submenu m_isTrackingPopup = TRUE; m_menuBand->_ChangePopupItem(this, iItem); m_menuBand->_OnPopupSubMenu(childShellMenu, &pt, &rcl, keyInitiated); return S_OK;}
开发者ID:mvardan,项目名称:ros-svn-mirror,代码行数:40,
示例15: GetClientRectint CPlayerListCtrl::GetBottomIndex() const{ CRect r; GetClientRect(r); int nBottomIndex = GetTopIndex() + GetCountPerPage() - 1; if(nBottomIndex >= GetItemCount()) { nBottomIndex = GetItemCount() - 1; } else if(nBottomIndex < GetItemCount()) { CRect br; GetItemRect(nBottomIndex, br, LVIR_BOUNDS); if(br.bottom < r.bottom) nBottomIndex++; } return(nBottomIndex);}
开发者ID:banduladh,项目名称:meplayer,代码行数:22,
示例16: GetItemRectvoid CMyListCtrl::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default CRect rect; ////////////////////////////////////////////////// if(m_nCurSelected!=-1) { GetItemRect(m_nCurSelected,&rect,LVIR_BOUNDS); this->InvalidateRect(&rect); } ////////////////////////////////////////////////// switch(nChar) { case 40://↓ m_nCurSelected++; if(m_nCurSelected>=this->GetItemCount()) m_nCurSelected--; break; case 38://↑ m_nCurSelected--; if(m_nCurSelected<0) m_nCurSelected++; break; case 39://→ m_nCurSelCol++; if(m_nCurSelCol>=this->GetHeaderCtrl()->GetItemCount()) m_nCurSelCol--; break; case 37://← m_nCurSelCol--; if(m_nCurSelCol<0) m_nCurSelCol++; break; } this->GetItemRect(m_nCurSelected,&rect,LVIR_BOUNDS); this->InvalidateRect(&rect); CListCtrl::OnKeyDown(nChar, nRepCnt, nFlags);}
开发者ID:wth515812076,项目名称:WineAnaSys,代码行数:39,
示例17: CommandToIndex//------------------------------------------------------------------------------void CNetscapeStatusBar::DrawSecureStatus(HDC hdc){ int idx = CommandToIndex( IDS_SECURITY_STATUS ); if (idx < 0) return; UINT nID, nStyle; int cxWidth; GetPaneInfo(idx, nID, nStyle, cxWidth); BOOL bSecure = !(nStyle & SBPS_DISABLED); RECT rect; GetItemRect( idx, &rect ); HDC hdcBitmap = ::CreateCompatibleDC( hdc ); HBITMAP hbmOld = (HBITMAP)::SelectObject( hdcBitmap, sm_hbmpSecure ); FEU_TransBlt( hdc, rect.left+1, rect.top+1, sm_sizeSecure.cx, sm_sizeSecure.cy, hdcBitmap, bSecure ? sm_sizeSecure.cx : 0, 0,WFE_GetUIPalette(GetParentFrame()) ); ::SelectObject( hdcBitmap, hbmOld ); VERIFY( ::DeleteDC( hdcBitmap ));}
开发者ID:vicamo,项目名称:b2g_mozilla-central,代码行数:23,
示例18: wnd /// <summary>Shrinks to fit.</summary> void SuggestionList::ShrinkToFit() { try { // Check if less than 1 page of items if (GetCountPerPage() > (int)Content.size() && !Content.empty()) { ClientRect wnd(this); CRect rc(0,0,0,0); // Calculate item height if (!GetItemRect(0, &rc, LVIR_LABEL) || !rc.Height()) throw Win32Exception(HERE, L"Unable to retrieve item height"); // Resize SetWindowPos(nullptr,-1,-1, wnd.Width(), rc.Height()*Content.size(), SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE); } } catch (ExceptionBase& e) { Console.Log(HERE, e); } }
开发者ID:CyberSys,项目名称:X-Studio-2,代码行数:23,
示例19: GetItemImageRectBOOL EXWaitingTreeCtrl::GetItemImageRect(HTREEITEM hItem, LPRECT pRect){ if (GetImageList(TVSIL_NORMAL) == NULL) return FALSE; // no images CRect rc; // get item rect if (!GetItemRect(hItem, &rc, TRUE)) return FALSE; int cx = GetSystemMetrics(SM_CXSMICON); int cy = GetSystemMetrics(SM_CYSMICON); // move onto the icon space int margin = (rc.Height()-cy)/2; rc.OffsetRect(-cx-3 , margin); rc.right = rc.left + cx; // make it square rc.bottom = rc.top + cy; // make it square *pRect = rc; return TRUE;}
开发者ID:sosoayaen,项目名称:DescentBoardGameTools,代码行数:22,
示例20: HitTestvoid KGListCtrl::OnLButtonDown(UINT nFlags, CPoint point){ int nResult = false; int nRetCode = false; int nItem = HitTest(point); CRect rect; int nRigPos = 0; KG_PROCESS_ERROR(nItem != -1); LPKGLISTITEM pHitItem = (LPKGLISTITEM)GetItemData(nItem); KG_PROCESS_ERROR(pHitItem); GetItemRect(nItem, &rect, LVIR_BOUNDS); nRigPos = rect.left + rect.Height() * (pHitItem->nTitleLever + 1); KG_PROCESS_ERROR(point.x < nRigPos); nRetCode = Expand(pHitItem); KG_PROCESS_ERROR(pHitItem->arryItemText.GetCount() == 1); KG_PROCESS_ERROR(nRetCode); nResult = true;Exit0: return CListCtrl::OnLButtonDown(nFlags, point);}
开发者ID:viticm,项目名称:pap2,代码行数:22,
示例21: GetItemCountBOOL CClosableTabCtrl::OnCommand(WPARAM wParam, LPARAM lParam){ if (wParam == MP_REMOVE) { if (m_ptCtxMenu.x != -1 && m_ptCtxMenu.y != -1) { int iTabs = GetItemCount(); for (int i = 0; i < iTabs; i++) { CRect rcItem; GetItemRect(i, rcItem); if (rcItem.PtInRect(m_ptCtxMenu)) { GetParent()->SendMessage(UM_CLOSETAB, (WPARAM)i); break; } } return TRUE; } } return CTabCtrl::OnCommand(wParam, lParam);}
开发者ID:BackupTheBerlios,项目名称:resurrection,代码行数:22,
示例22: GetCursorPos/////////////////////////////////////////////////////////////////////////////// handle selection/////////////////////////////////////////////////////////////////////////////void CCustomListCtrl::OnClick(NMHDR* pNMHDR, LRESULT* pResult) { int i; int nRes = RES_BLANK; CRect rect; CPoint point; //get current mouse position GetCursorPos(&point); ScreenToClient(&point); //reset the selection m_nSelection = -1; //run throuch each item for(i = 0; i < GetItemCount(); i++) { GetItemRect(i, &rect, LVIR_ICON); //check it if(TRUE == rect.PtInRect(point)) { m_nSelection = i; break; } } //get the item data if(-1 != m_nSelection) { nRes = GetItemData(m_nSelection); } //set it in the view VIEW->setResource(nRes); //redraw Invalidate();}
开发者ID:saladyears,项目名称:Sea3D,代码行数:42,
示例23: GetDCBOOL CMyListBox::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default #if 1 pDC = GetDC(); //CString d="ctlcolor"; //MessageBox(d,NULL,MB_OK); for(int i = 0;i<GetCount();i++) { CRect eachrc; CBrush brush; CString str; GetItemRect(i,eachrc); CDC dcMemory; dcMemory.CreateCompatibleDC(pDC); // Select the bitmap into the in-memory DC CBitmap* pOldBitmap = dcMemory.SelectObject(&m_BackScreenBitmap); pDC->BitBlt(0, 0+i*eachrc.Height(), bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory, 0, 0, SRCCOPY); pDC->SelectObject(pOldBitmap); //pDC->FillRect(eachrc,&brush); GetText(i,str); pDC->SetBkMode(TRANSPARENT); pDC->SelectObject(GetFont()); pDC->SelectObject(&myfont); pDC->DrawText(str,&eachrc,DT_VCENTER | DT_SINGLELINE); }#endif return true;// //return CListBox::OnEraseBkgnd(pDC);}
开发者ID:houyhea,项目名称:lab,代码行数:39,
示例24: switchvoid CPlayerToolBar::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult){ LPNMTBCUSTOMDRAW pTBCD = reinterpret_cast<LPNMTBCUSTOMDRAW>(pNMHDR); LRESULT lr = CDRF_DODEFAULT; switch (pTBCD->nmcd.dwDrawStage) { case CDDS_PREERASE: m_volctrl.Invalidate(); lr = CDRF_DODEFAULT; break; case CDDS_PREPAINT: { // paint the control background, this is needed for XP CDC dc; dc.Attach(pTBCD->nmcd.hdc); RECT r; GetClientRect(&r); dc.FillSolidRect(&r, ::GetSysColor(COLOR_BTNFACE)); dc.Detach(); } lr |= CDRF_NOTIFYITEMDRAW; break; case CDDS_ITEMPREPAINT: // notify we want to paint after the system's paint cycle lr |= CDRF_NOTIFYPOSTPAINT; lr |= CDRF_NOTIFYITEMDRAW; break; case CDDS_ITEMPOSTPAINT: // paint over the duplicated separator CDC dc; dc.Attach(pTBCD->nmcd.hdc); RECT r; GetItemRect(11, &r); dc.FillSolidRect(&r, GetSysColor(COLOR_BTNFACE)); dc.Detach(); lr |= CDRF_SKIPDEFAULT; break; } *pResult = lr;}
开发者ID:KyleSanderson,项目名称:mpc-hc,代码行数:39,
示例25: HitTestint CClickList::HitTestEx(const CPoint &Point, int &Col) const{ Col = 0; // Make sure that the ListView is in LVS_REPORT if (LVS_REPORT != (GetWindowLong(m_hWnd, GWL_STYLE) & LVS_TYPEMASK)) return HitTest(Point, NULL); // Get the top and bottom row visible int row = GetTopIndex(); int bottom = row + GetCountPerPage(); if (bottom > GetItemCount()) bottom = GetItemCount(); // Get the number of columns CHeaderCtrl *pHeader = const_cast<CClickList *>(this)->GetHeaderCtrl(); if (NULL == pHeader) return -1; // Loop through the visible rows CRect rect; int nColumnCount = pHeader->GetItemCount(), colnum, colwidth; for (; row <= bottom; row++) { // Get bounding rect of item and check whether point falls in it. GetItemRect(row, &rect, LVIR_BOUNDS); if (rect.PtInRect(Point)) // Now find the column for (colnum = 0; colnum < nColumnCount; colnum++) { colwidth = GetColumnWidth(colnum); if (Point.x >= rect.left && Point.x <= rect.left + colwidth) { Col = colnum; return row; } rect.left += colwidth; } } return -1;}
开发者ID:HPCKP,项目名称:gridengine,代码行数:39,
示例26: rcItemvoid CSkinComboBox_ListBox::OnRButtonUp(UINT nFlags, CPoint point){ CRect rcItem(0,0,0,0); int nIndex = -1; for (int i =0; i<GetCount(); i++) { GetItemRect(i, &rcItem); if(rcItem.PtInRect(point)) { if ( m_hOwnerWnd != NULL ) nIndex = i; break; } } ::PostMessage(m_hOwnerWnd,WM_CBO_LIST_RBUTTONUP,nIndex,0); __super::OnRButtonUp(nFlags, point);}
开发者ID:HuugY,项目名称:MFC_Project,代码行数:22,
示例27: GetTopIndex/* Return the item index of the point locate in */int CDropListBox::PointTest(CPoint point){ int i = GetTopIndex(), nCount = GetCount(), nResult; if(i == LB_ERR) { return LB_ERR; } CRect rect; for(; i < nCount; i++) { if((nResult = GetItemRect(i, &rect)) == LB_ERR) { return LB_ERR; } if(PtInRect(&rect, point)) { return i; } } return LB_ERR;}
开发者ID:killbug2004,项目名称:cosps,代码行数:23,
注:本文中的GetItemRect函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetItemSuffixFactor函数代码示例 C++ GetItemRandomPropertyId函数代码示例 |