袁绍伦
路人甲
路人甲
  • 注册日期2003-08-08
  • 发帖数654
  • QQ164646905
  • 铜币1336枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1663回复:1

希望和大家讨论一个问题。关于开发ActiveX控件,里面封装MapObjects2的一个控件!

楼主#
更多 发布于:2004-12-21 16:09
<P>大家好!</P>
<P>问题是这样的:</P>
<P>我现在需要开发一个封装了MapObjects2的ActiveX控件,即:我的控件里面封装了MapObjects2控件。在界面表现上,需要在改变我的控件大小的时候,将MapObjects2控件的充满我的控件。所以,我在我的控件中添加了一个 OnSize(),在Onsize里做了如下的工作:</P>
<P>  LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL; bHandled)
 {
  CRect rect;
   ::GetClientRect(m_hWnd, ;rect);
   ::SetWindowPos(::GetDlgItem(m_hWnd, IDC_MAP1), HWND_BOTTOM, rect.left, rect.top, rect.Width(), rect.Height(), SWP_NOZORDER | SWP_FRAMECHANGED);
  return 0;
}</P>
<P>目的是使MapObjects2控件充满我的控件。但是,在这个过程中,我发现一个问题,即:</P>
<P>每次窗口大小发生变化时,获取的矩形大小总是前一次矩形的大小,也就是说,填充的矩形范围总是前一次的范围。而无法实时填充。</P>
<P>同样的方法,我添加了一个 Edit 同样进行处理,我发现,该Edit可以满足需要,每次填充的范围刚刚好是自定义控件的 ClientRect。</P>
<P>不知道各位朋友有没有做过这个方面的东西,希望大家一起讨论一下,如何解决这个问题。</P>
<P>谢谢。</P>
<P>我用的开发环境是  VC6.0 或者 VC.Net ,使用ATL开发Active控件。</P>
喜欢0 评分0
愿意和大家交朋友! QQ:47559983 MSN:shaolun_yuan@hotmail.com eMail:shaolun-yuan@163.com
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-12-23 11:04
<P>以前用vb也封装过</P><P>最近没忙这个,帮你把贴顶上去先</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部