我用MFC Active向导做一个时间显示控件,其中有两个属性,一是Left(控件左边与容器左边的距离)
和Top(控件上边与容器上边的距离)。
在控件类中OnDraw()函数调用如下函数
RECT rect;
GetRectInContainer(&rect);
m_nLeft = rect.left;
m_nTop = rect.top;
BoundPropertyChanged(dispidLeft);
BoundPropertyChanged(dispidTop);
但在测试程序中显示Left和Top属性值都是-858993460,不知道为什么,请高手指点!
和Top(控件上边与容器上边的距离)。
在控件类中OnDraw()函数调用如下函数
RECT rect;
GetRectInContainer(&rect);
m_nLeft = rect.left;
m_nTop = rect.top;
BoundPropertyChanged(dispidLeft);
BoundPropertyChanged(dispidTop);
但在测试程序中显示Left和Top属性值都是-858993460,不知道为什么,请高手指点!
——最好先用IsWindow判断一下控件的句柄。
如果需要再判断一下GetRectInContainer的返回值。
COleControl::GetClientRect(&rect);
是不是程序运行起来后才是激活的?
如果这样的话,Top和Left属性就失去意义了。
我就想在对话框编辑器中编辑该控件时显示Top和Left属性
ACTIVEX控制组件彻底研究 ACTIVEX CONTROL INSIDE OUT
下面应该有:
http://community.csdn.net/Expert/topic/3789/3789751.xml?temp=.6613733