简介
实施分配器窗格内的统治者 - 2,是基于的工作。本文提供annbsp的,例如在MDI和SDI应用程序的执行情况。
我已经改变了创建标尺,添加显示/隐藏标尺和格式化代码的某些部分的功能。实施MDI的方式包括"Ruler.hquot;CChildFrame类:公众的CMDIChildWnd{ ... ... 私人:CRulerSplitterWnd m_Rulers; / /标尺对象
60; 市民:无效ShowRulers(布尔bShow); / /切换标尺
160; 无效UpdateRulersInfo(stRULER_INFO stRulerInfo); / /更新的统治者 ... ...};/ /创建标尺
BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs &
#160; CCreateContext * pContext){ (!m_Rulers.CreateRulers(这一点,pContext)){ TRACE("创造的统治者的错误\ nquot;); 返回的CMDIChildWnd::OnCreateClient(lpcs,pContext); } 返回TRUE;/ /切换标尺无效CChildFrame::ShowRulers(BOOL bShow){
;
m_Rulers.ShowRulers(bShow);}/ /更新的统治者
无效CChildFrame:UpdateRulersInfo(stRULER_INFO stRulerInfo){
60; m_Rulers.UpdateRulersInfo(stRulerInfo);}SDI的方式包括"Ruler.hquot;类CMainFrame:CFrameWnd的公共{ ....
所有,其余的MDI执行相同。互动
(在这种情况下CScrollView)在您看来,赶上GT; / /更新鼠标位置的标尺上的OnMouseMove,OnVScroll和OnHScroll消息与统治者互动无效CDemoView:的OnMouseMove(UINT nFlags,口岸系统点){
UpdateRulersInfo(RW_POSITION,GetScrollPosition(),点);
... ... / /垂直滚动范围的标尺和位置更新 无效CDemoView:OnVScroll(UINT nSBCode,UINT的非营利组织,
160; CScrollBar * pScrollBar) { UpdateRulersInfo(RW_VSCROLL,GetScrollPosition()); ... ...
; / /更新的水平滚动范围的标尺和位置 无效CDemoView:OnHScroll(UINT nSBCode UINT的非营利组织,CScrollBar * pScrollBar) {
0; UpdateRulersInfo(RW_HSCROLL,GetScrollPosition());
和finallyvoid CDemoView:UpdateRulersInfo(INT n消息,ScrollPos连接点,连接点POS){ stRULER_INFO pRulerInfo; pRulerInfo.uMessage = n消息; &
#160; pRulerInfo.ScrollPos = ScrollPos; pRulerInfo.Pos =名次; pRulerInfo.DocSize = m_ImageSize; pRulerInfo.fZoomFactor = m_fZoomFactor; / / CMainFrame中的SDI ((CMainFrame中*)GetParentFrame())- GT; UpdateRulersInfo(pRulerInfo); / /在MDI CChildFrame ((CChildFrame *)GetParentFrame())- GT; UpdateRulersInfo(pRulerInfo);}
任何方式,看看在演示!
这就是它!
享受!