免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 3463|回复: 7
收起左侧

标尺功能实现方法

[复制链接]

2072

主题

100000万

铜板

363

好友

地信专家组

每一次的分离都是为了下一次的相聚

Rank: 14Rank: 14Rank: 14Rank: 14

积分
17622

精华勋章宣传勋章爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章贡献勋章

发表于 2009-11-22 16:14 | 显示全部楼层 |阅读模式
标尺功能实现方法:
*调用Tool_opr.dll动态库。
*代码调用:
1.在Frame窗口类的头文件中定义:
public:
CRuleSplitter m_Splitter;
2、在Frame 的
::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
m_Splitter.Initalize(this,RUNTIME_CLASS(CTestFrameView),lpcs,pContext);
//若开发者的程序为切分视结构,则调用:
m_Splitter.Initalize(&m_wndSplitter,RUNTIME_CLASS(CTestFrameView),lpcs,pContext,m_wndSplitter.IdFromRowCol(0, 1));
}
3、在view的ondraw中调用
int  *ipscreenPnts;
double  *dpGridpnts;
int  iNum,i;
D_DOT    ddTmp;
CPoint   ptTmp;

CRuleSplitter *par =(CRuleSplitter *)GetParent();
if(par->IsKindOf( RUNTIME_CLASS( CRuleSplitter ) ))
   {
  if(par->GetSafeHwnd())
  {
   D_RECT drc;
   RECT   rc;
   _GetWinDispRect(&drc);
   GetClientRect(&rc);
   ClientToScreen(&rc);
   par->SetPicScreenMetrics(rc);
   par->SetRange(drc.xmax,drc.xmin,drc.ymax,drc.ymin);
   if (par->AdjustXGridArray(&ipscreenPnts,&dpGridpnts,&iNum))
   {
    for(i=0;i<iNum;i++)
    {
     ddTmp.x = dpGridpnts;
     ddTmp.y = DEF_PIXEL;
     _LpToWp(&ddTmp,&ptTmp);
     ClientToScreen(&ptTmp);
     ipscreenPnts = ptTmp.x;
    }
   }
   if (par->AdjustYGridArray(&ipscreenPnts,&dpGridpnts,&iNum))
   {
   
    for(i=0;i<iNum;i++)
    {
     ddTmp.x = DEF_PIXEL;
     ddTmp.y = dpGridpnts;
     _LpToWp(&ddTmp,&ptTmp);
     ClientToScreen(&ptTmp);
     ipscreenPnts = ptTmp.y;
    }
   }
   par->UpdateRuler();
  }
}

4、在PreTranslateMessage(MSG* pMsg)中调用
BOOL CTestFrameView:reTranslateMessage(MSG* pMsg)
{
CRuleSplitter *par =(CRuleSplitter *)GetParent();
if(par->IsKindOf( RUNTIME_CLASS( CRuleSplitter ) ))
{
  if(par->GetSafeHwnd())
  {
   par->RelayMsg(pMsg);
  }
}
return CGisEditView::PreTranslateMessage(pMsg);
}

0

主题

27

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
232
发表于 2009-12-11 20:42 | 显示全部楼层
晕         [s:9]

3

主题

598

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
275
发表于 2010-1-28 21:07 | 显示全部楼层
版主真是高手,本人配服至致

284

主题

2万

铜板

130

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3467

活跃勋章

发表于 2010-8-17 20:52 | 显示全部楼层
雷人一个啦!这样的程序我一看没晕,请写出注释行!!
星期天快过了!!!!!!!

2

主题

2208

铜板

1

好友

地信学员

Rank: 12Rank: 12Rank: 12

积分
639
QQ
发表于 2010-8-18 18:32 | 显示全部楼层
[s:207]  [s:196]  [s:199]

0

主题

5376

铜板

1

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2348
QQ
发表于 2022-3-20 14:49 | 显示全部楼层
谢谢提供分享
回复 支持 反对

使用道具 举报

发表于 2025-4-15 17:25 | 显示全部楼层
持续学习 持续进步
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表