информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Как сделать вид типа CListBox? 31.05.01 18:21  Число просмотров: 1100
Автор: 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




Rambler's Top100
Рейтинг@Mail.ru


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