Re[2]: ToolBar ActiveX Control
От: Talex  
Дата: 01.08.02 15:20
Оценка:
Здравствуйте Vi2, Вы писали:

T>> Переименуй .ocx в .dll — они имеют одинаковый формат. Должны, по крайней мере.


Spasibo Vi2 za otvet!

Togda znachit pridetsya menya' mnogoe v registry (ProgID, put' k failu, t.e. ego rasshirenie, i t.p.), a eto bol'shay moroga i mogut bit v dal'neishem problemu. Chto skajete?

U menya osnovnaya problema takova. Delayu proeskt cherez File->New->ATL COM AppWizard. Dal'she dobavlyayu Composite Control. Tam dlya sozdaniya toolbara nujen sled kod, i Init Dialoge ili Create —

CToolBar m_wndToolBar;

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
        | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
        !m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
    {
        TRACE0("Failed to create toolbar\n");
        return -1;      // fail to create
    }

    // TODO: Delete these three lines if you don't want the toolbar to
    //  be dockable
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndToolBar);



delo v tom chto CreateEx trebuet CWnd*, a Composite Control kotorii ya dobavil ne CWnd, on vsego lish imeet kakoi-to neyasnii HWND.

Kogda ya pishu drugoi kod —


LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
    {
        //this->m_hWnd;
        CWnd* pwnd ;
        pwnd->Attach( m_hWnd ) ;

        if (!m_wndToolBar.CreateEx(pwnd, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
            | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
            !m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
        {
            TRACE0("Failed to create toolbar\n");
            return -1;      // fail to create
        }


to programma dae oshiblu i ostanavlivaetsya na tom chto ASSERT(m_hWnd==NULL).

nu voobschem nujno etot toolbar creatnut', no nujen parent window kotorogo netu :(
_______________
Volka nogi kormyat
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.