哪位知道,不用对话框,不用MFC,创建一个通用控件的过程,比如说树形控件、列表控件的过程?

解决方案 »

  1.   

    windows api函数 ,可惜    我这里没有msdn
      

  2.   

    HWND CreateWindow(
      LPCTSTR lpClassName,  // registered class name
      LPCTSTR lpWindowName, // window name
      DWORD dwStyle,        // window style
      int x,                // horizontal position of window
      int y,                // vertical position of window
      int nWidth,           // window width
      int nHeight,          // window height
      HWND hWndParent,      // handle to parent or owner window
      HMENU hMenu,          // menu handle or child identifier
      HINSTANCE hInstance,  // handle to application instance
      LPVOID lpParam        // window-creation data
    );
    根据lpClassName来确定创建什么控件
      

  3.   

    同上,使用CreateWindowEx, CreateWindow都可以创建稍微不同的是CListCtrl和CTreeCtrl
    参见MFC源码ClistCtrl的创建:
    VERIFY(AfxDeferRegisterClass(AFX_WNDCOMMCTL_LISTVIEW_REG));CWnd* pWnd = this;
    return pWnd->Create(WC_LISTVIEW, NULL, dwStyle, rect, pParentWnd, nID);CTreeCtrl的创建:
    VERIFY(AfxDeferRegisterClass(AFX_WNDCOMMCTL_TREEVIEW_REG));CWnd* pWnd = this;
    return pWnd->Create(WC_TREEVIEW, NULL, dwStyle, rect, pParentWnd, nID);
      

  4.   

    如果没有相应控件的头文件和lib,只有一个DLL或OCX。
    如何创建??我用又进一步发现,此控件有类型库typelib,里面有类接口,类厂接,可连接事件接口,分发指针接口。但不知道怎么用呀? 我想能否通过指针的方法创建此对象,就像自动化一样。
      

  5.   

    使用CreateWindowEx, CreateWindow
    在没有主窗口类中还要先注册RegisterClass
      

  6.   

    InitCommonControls(); 
    hTree = CreateWindowEx(WS_EX_STATICEDGE,WC_TREEVIEW," ",
    WS_BORDER|WS_CHILD|WS_VISIBLE|WS_TABSTOP|TVS_HASLINES|
    TVS_EDITLABELS|TVS_HASBUTTONS|TVS_LINESATROOT|TVS_SHOWSELALWAYS,0,0,0,0,hwnd,(HMENU)ID_YUELAN_TREE,((LPCREATESTRUCT)lParam)->hInstance, NULL);