0008 0x0008 Недостаточно памяти для обработки команды
От: abdyla_v Украина  
Дата: 31.08.07 13:53
Оценка:
Значит так : Я создал проэкт Visual C++ => Win32 Project => Windows Application ( ATL ). Далее в функции BOOL InitInstance(HINSTANCE, int) {...} написал следующий код :


HWND hWnd;

   hInst = hInstance; // Store instance handle in our global variable
   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
    
   if (!hWnd)
   {
      return FALSE;
   }
   //AtlInitCommonControls(ICC_COOL_CLASSES | ICC_BAR_CLASSES); // add flags to support other controls
    InitCommonControls();
    LoadLibrary(CRichEditCtrl::GetLibraryName());

    RECT rect;
    rect.left = 10; // x1
    rect.top = 10; // y1
    rect.right = 150; // x2
    rect.bottom = 120; // y2
//  GetClientRect(hWnd, &rect);

    CEdit edit;
    edit.Create(hWnd,rect,_T("Edit"),WS_CHILD|WS_VISIBLE|WS_BORDER|WS_VSCROLL|WS_HSCROLL|ES_MULTILINE,0,IDC_MAINEDIT,0);
    edit.SetWindowText(_T("Edit control"));
    edit.SetFocus();

    CTrackBarCtrl Slider;
    rect.top = rect.bottom + 10; 
    rect.bottom = rect.top + 30; 
    HWND hWnd_Slider = Slider.Create(hWnd,rect,_T("SLider"),WS_CHILD|WS_VISIBLE,0,1,0);
    Slider.SetRange(0,255);

    CButton button;
    rect.top = rect.bottom + 10;
    rect.bottom = rect.top + 40;  
    button.Create(hWnd,rect,_T("Button"),WS_CHILD|WS_VISIBLE,0,IDC_BUTTON1,0);

    CListBox list;
    rect.top = rect.bottom + 10;
    rect.right = 240;
    rect.bottom = rect.top + 80;
    list.Create(hWnd,rect,_T("ListBox"),WS_CHILD|WS_VISIBLE|WS_BORDER|WS_VSCROLL|WS_HSCROLL,0,IDC_LISTBOX,0);
    list.AddString( _T("String_1") );
    list.AddString( _T("String_2") );
    list.AddString( _T("String_3") );
    list.AddString( _T("String_4") );
    list.AddString( _T("String_5") );
        
        CRichEditCtrl
    rect.top = rect.bottom + 10;
    rect.bottom = rect.top + 100;
    rich.Create(hWnd, rect, _T("RichEdit"),WS_CHILD|WS_VISIBLE|WS_BORDER|WS_VSCROLL|WS_HSCROLL|ES_MULTILINE,0,IDC_RICHEDIT,0);
    rich.SetWindowText(_T("Rich Edit"));

    CStatic m_static;
    rect.top = rect.bottom + 10;
    rect.bottom = rect.top + 50;
    m_static.Create(hWnd, rect, _T("Static"),WS_CHILD|WS_VISIBLE|WS_BORDER,0,IDC_MYSTATIC,0);
    m_static.SetWindowText(_T("Static control"));

    CComboBox m_combo;
    rect.top = rect.bottom + 20;
    rect.bottom = rect.top + 50;
    m_combo.Create(hWnd, rect, _T("ComboBox"),WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_TABSTOP|CBS_DROPDOWNLIST,0,IDC_COMBO,0); 
    m_combo.AddString(_T("String_1"));
    m_combo.AddString(_T("String_2"));
    m_combo.AddString(_T("String_3"));
    m_combo.SetCurSel( 0 );
    
    /**********/
    CTreeViewCtrl m_tree;
    rect.top = rect.bottom + 10;
    rect.bottom = rect.top + 80;
    m_tree.Create(hWnd, rect, _T("TreeView"), WS_CHILD|WS_VISIBLE|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT|WS_BORDER, WS_EX_CLIENTEDGE,IDC_TREE,0);
    m_tree.EnableScrollBar(SB_HORZ,ESB_ENABLE_BOTH);
    TCHAR *strName = _T("Root");
    HTREEITEM Root = m_tree.InsertItem(strName, 6, 6, TVI_ROOT, TVI_LAST);
    // Нада доделать!!
    /**********/

    CUpDownCtrl m_port_spin;
    rect.left = 170; // x1
    rect.top = 10; // y1
    rect.right = 200; // x2
    rect.bottom = 50; // y2
    m_port_spin.Create(hWnd, rect, _T("UpDownCtrl"),WS_CHILD|WS_VISIBLE,0,IDC_PORTSPIN,0); 

       CProgressBarCtrl 
        rect.right = 300; // x2
    rect.top = rect.bottom + 10;
    rect.bottom = rect.top + 40;
    m_ProgressBar.Create(hWnd,rect,_T("ProgressBar"),WS_CHILD|WS_VISIBLE,0,IDC_PROGRESS,0);

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
   
   _ghEnd = hWnd;




Далее в функции LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {...} добавил парочку строчек :

       case IDC_BUTTON1:
           if ( wmEvent == BN_CLICKED )
               MessageBox(hWnd, _T("Click Button"),_T("Message"),MB_OK);
           break;



Далее все компилится! Когда нажать на кнопку Button выводится MessageBox. Но после нескольких нажиманий и выводов окна MessageBox кнопка перестает работать — тоеть MessageBox не выводится а в дебаге последняя ошибка это — 0008 (0x0008) Недостаточно памяти для обработки команды.

С чем это связано? Что нада сделать что бы всё работало нормально?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.