информационная безопасность
без паники и всерьез
 подробно о проекте
Портрет посетителяЗа кого нас держат?Все любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
 Компрометация eMudhra вынудила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Как сделать вид типа CListBox? 31.05.01 18:21  Число просмотров: 1333
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Окно сделалось, но пустое, че то сам листбокс не создаёца
> вроде надо его создавать функцией OnCreate(LPCREATESTRUCT
> lpCreateStruct)
> но как?

нееее. это тут не причем.
"поиграй" со стилями. не забудь обязательно добавить WS_CHILD | WS_VISIBLE. а GetListBox(), можешь сделать так.
и на всякий, хотя не играет роли, добавь PreCreateWindow()б и надо еше RuntimeClass:

class CListBoxView : public CCtrlView
{

DECLARE_DYNCREATE(CListBoxView)
public:
CListBoxView();
virtual ~CListBoxView();

public:
const CListBox& GetListBox() const;
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
};

IMPLEMENT_DYNCREATE(CListBoxView, CCtrlView)

CListBoxView::CListBoxView()
: CCtrlView(_T("LISTBOX"), (LBS_STANDART | WS_CHILD | WS_VISIBLE) & (~WS_BORDER))
{
}

CListBoxView::~CListBoxView()
{
}

const CListBox& CListBoxView::GetListBox() const
{
return *((CListBox *) this);
}

BOOL CListBoxView::PreCreateWindow(CREATESTRUCT& cs)
{
return CCtrlView::PreCreateWindow(cs);
}

короче, если что не получится, меняй стили в конструкторе
<programming>
[C++] Как сделать вид типа CListBox? 30.05.01 20:58  
Автор: myrmidon Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Делаю SDI прогу с несколькими видами, разделённые сплиттером
В каждую панель вставляю вид, который описан отдель в классе, так:
splitter.CreateView(0, 0, RUNTIME_CLASS(CView), pContext);
CView сделан от класса CEditView
Хочю сделать так же, но с классом CListBox
Пока ничо не выходит, кто нить знает, как можно это сделать?
[C++] Как сделать вид типа CListBox? 31.05.01 01:30  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Делаю SDI прогу с несколькими видами, разделённые
> сплиттером
> В каждую панель вставляю вид, который описан отдель в
> классе, так:
> splitter.CreateView(0, 0, RUNTIME_CLASS(CView), pContext);
> CView сделан от класса CEditView
> Хочю сделать так же, но с классом CListBox
> Пока ничо не выходит, кто нить знает, как можно это
> сделать?

если с помощью MFC, попробуй:
class CListBoxView : public CCtrlView
{
public:
CListBoxView();
}

CListBoxView::CListBoxView()
: CCtrlView("LISTBOX", LBS_STANDARD & (~WS_BORDER)) // убираем бордер если он есть,
// стиль пропиши на усмотрение или потом поменяй
{
}

ну и все остальное пальчиками набери. вроде должно сработать
[C++] Как сделать вид типа CListBox? 31.05.01 17:31  
Автор: myrmidon Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Окно сделалось, но пустое, че то сам листбокс не создаёца
вроде надо его создавать функцией OnCreate(LPCREATESTRUCT lpCreateStruct)
но как?

есть пример с CListCtrl, там он образован от класса CListView
и в вызове OnCreate(LPCREATESTRUCT lpCreateStruct) пишеца так:
if(CListView::OnCreate(lpCreateStruct) == -1)
{
return -1;
}
CListCtrl & lc = GetListCtrl();
lc.InsertColumn(0, "Col 1", LVCFMT_LEFT, 100);

И ещо, весь вид должен быть образован с помощью вот такой муйни - IMPLEMENT_DYNCREATE
что бы потом запихнуть его в окно используя RUNTIME_CLASS
[C++] Как сделать вид типа CListBox? 31.05.01 18:21  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Окно сделалось, но пустое, че то сам листбокс не создаёца
> вроде надо его создавать функцией OnCreate(LPCREATESTRUCT
> lpCreateStruct)
> но как?

нееее. это тут не причем.
"поиграй" со стилями. не забудь обязательно добавить WS_CHILD | WS_VISIBLE. а GetListBox(), можешь сделать так.
и на всякий, хотя не играет роли, добавь PreCreateWindow()б и надо еше RuntimeClass:

class CListBoxView : public CCtrlView
{

DECLARE_DYNCREATE(CListBoxView)
public:
CListBoxView();
virtual ~CListBoxView();

public:
const CListBox& GetListBox() const;
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
};

IMPLEMENT_DYNCREATE(CListBoxView, CCtrlView)

CListBoxView::CListBoxView()
: CCtrlView(_T("LISTBOX"), (LBS_STANDART | WS_CHILD | WS_VISIBLE) & (~WS_BORDER))
{
}

CListBoxView::~CListBoxView()
{
}

const CListBox& CListBoxView::GetListBox() const
{
return *((CListBox *) this);
}

BOOL CListBoxView::PreCreateWindow(CREATESTRUCT& cs)
{
return CCtrlView::PreCreateWindow(cs);
}

короче, если что не получится, меняй стили в конструкторе
и еще 31.05.01 18:54  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> CListBoxView::CListBoxView()
> : CCtrlView(_T("LISTBOX"), (LBS_STANDART | WS_CHILD |
> WS_VISIBLE) & (~WS_BORDER))
> {
> }
>
вот тут, пусть WS_BORDER - не будет для тебя догмой, его тоже попробуй.
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach