информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsГде водятся OGRыПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft Authenticator прекращает... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[C++] Как сделать вид типа CListBox? 31.05.01 18:21  Число просмотров: 1187
Автор: 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-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach