当在界面中放置一个ActiveX控件时,ID为1,当放第二个控件时ID自动为3,第三个为ID为自动为5,依次递加,不知道这在编写ActiveX控件时该怎么去实现?

解决方案 »

  1.   


    自动?手动?动态添加?
    网页?MFC窗口?
      

  2.   

    ID不都是IDE自动添加的吗。你顺序放控件ID就会顺序递增了。当然,你手工添加也行。。如果你让ActiveX控件自己去处理的话,可能会导致ID重复了。。当然这只是因为我暂时不知道是不是有这方法而已
      

  3.   

    自动???如何自动???下面这样是手动:CAxWindow wnd[10];
    UINT nID = 0;
    for(int i=1;i<=10;i++)
    {
    RECT rect = {1,i*100,200,(i+1)*100};
    nID = (i-1)*2+1;
    wnd[i].Create(m_hWnd, rect, _T("{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"),WS_CHILD|WS_VISIBLE|WS_BORDER, 0, nID); 
    }
      

  4.   

    丢人了
    里面的一句:    //wnd[i].Create(m_hWnd, rect, _T("{XXXXXXX……
        wnd[i-1].Create(m_hWnd, rect, _T("{XXXXXXX……
      

  5.   

    也许我表述的不对,比如我自己添加一个属性,假如为num,在对话框中,通过右键插入控件,放置第一个ActiVeX控件,此时num为1,当同样方法放置第二个是num就自动为3,第三个时就为5……就这样下去,要实现这个功能,这种功能的ActiveX控件该怎么实现?我用的mFC
      

  6.   


    看懂了,楼主的意思是控件开放一个只读属性,返回本身的实例计数,这个计数要1,3,5这样递增。
    应该不难,试试加一个共享全局变量,在控件的构造函数增加,析构函数减少。
    或者在com工厂类里加个变量。