本文整理汇总了C++中TDC::SetViewportOrg方法的典型用法代码示例。如果您正苦于以下问题:C++ TDC::SetViewportOrg方法的具体用法?C++ TDC::SetViewportOrg怎么用?C++ TDC::SetViewportOrg使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TDC
的用法示例。
在下文中一共展示了TDC::SetViewportOrg方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
//
/// Called by Paint to repaint all of the gadgets, PaintGadgets iterates through the
/// list of gadgets, determines the gadget's area, and repaints each gadget.
///
/// You can override this function to implement a specific look (for example,
/// separator line, raised, and so on).
//
void
TGadgetWindow::PaintGadgets(TDC& dc, bool, TRect& rect)
{
TPoint viewport = dc.GetViewportOrg();
for (TGadget* gadget = Gadgets; gadget; gadget = gadget->Next) {
if (gadget->GetBounds().Touches(rect)) {
dc.SetViewportOrg((TPoint&)gadget->GetBounds());
// If the gadget is a sloppy painter & needs clipping support, set the
// clip rect before painting, otherwise just paint. Most gadgets don't
// need this help
//
if (gadget->Clip) {
TRegion savedClipRgn;
dc.GetClipRgn(savedClipRgn);
dc.IntersectClipRect(gadget->GetBounds());
gadget->Paint(dc);
dc.SelectClipRgn(savedClipRgn);
}
else
gadget->Paint(dc);
}
}
dc.SetViewportOrg(viewport);
}
示例2: offset
//
/// If TScroller_AutoOrg is true (default condition), BeginView automatically
/// offsets the origin of the logical coordinates of the client area by XPos, YPos
/// during a paint operation. If AutoOrg is false (for example, when the scroller is
/// larger than 32,767 units), you must set the offset manually.
//
void
TScroller::BeginView(TDC& dc, TRect& rect)
{
long xOrg = XPos * XUnit;
long yOrg = YPos * YUnit;
if (AutoOrg && xOrg <= INT_MAX && yOrg <= INT_MAX) {
TPoint offset(int(-xOrg), int(-yOrg));
dc.SetViewportOrg(offset);
rect -= offset;
}
}