Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему не работает ComboBox 
:(
    Опции темы
andrew_
Дата 13.12.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



Создал диалоговое приложение. В него добавил еще одно диалоговое окно. Добавил в него ComboBox, связал с переменной. Потом вызываю AddString. Компилируется все нормально.
Но при запуске проги в месте вызова AddString работа проги обрывается. В чем проблема?
Такая же проблема и с Listbox'ом. А с EditBox'ами все нормально.
PM MAIL   Вверх
Greeen
Дата 13.12.2006, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



andrew_, супер постановка вопроса. Товарищч, а код где?


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
andrew_
Дата 14.12.2006, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



Ну вот код констуктора диалогового окна если поможет. 
Все программа компилится нормально.
Код

MPLEMENT_DYNAMIC(CByName, CDialog)
CByName::CByName(CWnd* pParent /*=NULL*/)
    : CDialog(CByName::IDD, pParent)
    , m_uiPort(0)
    , m_sCompName(_T(""))
    , m_sName(_T(""))
{
    m_uiPort=22222;
    m_sName="Noname";

    LPSERVER_INFO_101 pBuf = NULL;
   LPSERVER_INFO_101 pTmpBuf;
   DWORD dwLevel = 101;
   DWORD dwPrefMaxLen = -1;
   DWORD dwEntriesRead = 0;
   DWORD dwTotalEntries = 0;
   DWORD dwTotalCount = 0;
   DWORD dwServerType = SV_TYPE_SERVER; // all servers
   DWORD dwResumeHandle = 0;
   NET_API_STATUS nStatus;
   LPTSTR pszServerName = NULL;
   DWORD i;
   CString temp;
     nStatus = NetServerEnum((LPCWSTR)pszServerName,
                           dwLevel,
                           (LPBYTE *) &pBuf,
                           dwPrefMaxLen,
                           &dwEntriesRead,
                           &dwTotalEntries,
                           dwServerType,
                           NULL,
                           &dwResumeHandle);
   if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
   {
      if ((pTmpBuf = pBuf) != NULL)
      {
         for (i = 0; i <1; i++)
         {
            assert(pTmpBuf != NULL);

            if (pTmpBuf == NULL)
            {
               //fprintf(stderr, "An access violation has occurred\n");
               break;
            }
            temp=pTmpBuf->sv101_name;
            m_ComboBox.AddString(temp); // НА ЭТОМ МЕСТЕ ОШИБКА
             
            //pTmpBuf->sv101_name;
           pTmpBuf++;
           // dwTotalCount++;
         }         
      }
   }

}


Это сообщение отредактировал(а) andrew_ - 14.12.2006, 09:04
PM MAIL   Вверх
Earnest
Дата 14.12.2006, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



В конструкторе нельзя использовать функции типа CCombobox::AddString: окно и его контролы еще не существуют.
Стандартное место, где обычно инициализируются контролы - OnInitDialog. Только сначала не забудь вызвать базовый метод.


--------------------
...
PM   Вверх
andrew_
Дата 14.12.2006, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



Цитата(Earnest @  14.12.2006,  09:12 Найти цитируемый пост)
Только сначала не забудь вызвать базовый метод. 


Что под этим понимается? Базовы метод чего и какой?

Это сообщение отредактировал(а) andrew_ - 14.12.2006, 09:16
PM MAIL   Вверх
Earnest
Дата 14.12.2006, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Метод базового класса. Иначе получишь те же самые грабли, т.к. именно там связываются контролы с твоими переменными и раньше к ним обращаться нельзя.


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0785 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.