阅读:1829回复:1
希望和大家讨论一个问题。关于开发ActiveX控件,里面封装MapObjects2的一个控件!
<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> |
|
|
1楼#
发布于:2004-12-23 11:04
<P>以前用vb也封装过</P><P>最近没忙这个,帮你把贴顶上去先</P>
|
|
|