添加ATL Object时,选择Composite Control,并将其visible属性选上。然后,在上面放置一些Button。
编译后,在ActiveX Control Test Container里插入该控件,可以显示成在一个灰色的底板上有几个Button的样子。
但是,把这个控件放到html里时,则显示为在白色的页面上直接显示出Button,而没有一个灰色的底板。
我想在网页中也显示出一个灰色底板,达到像平时的Dialog那样。不知道该怎么做,请大家教教我!!!!

解决方案 »

  1.   

    在复合控件中手工加入对消息 WM_ERASEBKGND 的映射,在函数体中修改 m_hbrBackground 
    的值为任意颜色,再把 bHandle 设为 FALSE 即可。修改细节:
    BEGIN_MSG_MAP(CMyComOcx)
    CHAIN_MSG_MAP(CComCompositeControl<CMyComOcx>)
    MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseDlg)
    END_MSG_MAP()LRESULT OnEraseDlg(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
    {
    m_hbrBackground = GetSysColorBrush( COLOR_BTNFACE );
    bHandled = FALSE;
    return 0;
    }