Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> окна WINDOWS, Как создать окно, как в ПРОВОДНИКЕ 
:(
    Опции темы
RAN
Дата 16.4.2003, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

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



Если открыть стандартный windows explorer или другую программу с подобмым оформлением, то там внутри окна справа "намертво" закреплено окно (по умолчанию дерево папок, но можно и переключить через меню Вид->Панели обозревателя). В этом окне есть лишь кнопка закрытия окна и заголовок. Короче, может кто знает как подобное окно получить. Дайте хоть какую-нибудь информацию для любой среды разработки (я всё равно всё через API и commctrl.h делаю).

БОЛЬШОЕ СПАСИБО!
PM MAIL ICQ   Вверх
Step
Дата 16.4.2003, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



у тебя есть фрейм, туда занеси два чилдовских окна, в одно дерево или четам надо а во второе рабочее окно.
если на апи пишет то для тебя это не будте проблема
или создай диалог с двумя элементами управления дерево с права, слева рабочая область, и слегка доворотить


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
RAN
Дата 16.4.2003, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

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



Я тебя понял, Step, я именно это и собирался завтра попробывать (времени не хватило сегодня), но интуитивно чуствую, что этот эффект не получиться. Мне не ясно какой стиль у окна со списком. Потому как фрейм у него похож на фрейм дочернего окна в MDI в развёрнутом состоянии (квадратный даже в WIndows XP и маленькая кнопка <x> для его закрытия). Думаю обычное окно так выглядеть не будет.

PM MAIL ICQ   Вверх
Step
Дата 16.4.2003, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



делай на основе диалога...

кстати визуал или билдер используеш


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
RAN
Дата 16.4.2003, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

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



Использую Builder, но думаю перейти на VC, мне кажется он больше под API заточен
PM MAIL ICQ   Вверх
Step
Дата 16.4.2003, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



как не как одна фирма и апи и визуал


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DENNN
Дата 17.4.2003, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А в чем проблема то?
Если так приспичило, нарисуй в углу свой крестик и по щелчку на нем закрывай дочернее окно.
PM ICQ   Вверх
Vyacheslav
Дата 17.4.2003, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Берешь TForm . Кладешь две панели. Одну из них прижимаешь влево( Align = alLeft.) . Вторую выравниваешь на клиента ( Align = alClient)ю Между ними можно еще положить TSplitter, прижатый также влево( для изменения ширины навигатора в рантайме). На левую панель кладешь TreeView(Align = alClient) - вот тебе и навигатор в левой части. Добавляешь пункт меню или кнопку в тулбаре, которая при нажатии будет либо убирать навигатор, либо его востанавливать
Код

void __fastcall TMyForm::PanelBtnOnClick(TObject *Sender)
{
  static iny StoreWidth = 0;
  //LeftPanel - левая панель;
  LeftPanel->Width =  ( LeftPanel->Width )?(StroreWidth = LeftPanel->Width, 0):( StoreWidth );  
}


Можно еще сделать панель как плавающую придокированую к левой части. При этом отдокирование запретить. Тогда дополнительно в верхней части панели появится двойной Bevel и миниатюрная кнопочка для закрытия.


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Step
Дата 17.4.2003, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код
void __fastcall TMyForm::PanelBtnOnClick(TObject *Sender)
{
  static iny StoreWidth = 0;
  //LeftPanel - левая панель;
  LeftPanel->Width =  ( LeftPanel->Width )?(StroreWidth = LeftPanel->Width, 0):( StoreWidth );  
}

одно из решений


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Vyacheslav
Дата 17.4.2003, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вот еще один выриант с использованием плавающего окна
Создаем две формы TForm1 и TForm2. Отменяем для TForm2 автоматическое создание.
На TForm1 кладем TPanel и выравниваем влево. Также на форму положим ToolBar и TSplitter(
Далее код
Код

// unit1.h
class TForm2;
class TForm1 : public TForm
{
published: // IDE-managed Components
   TPanel *Panel1;
   TSplitter *Splitter1;
   TToolBar *ToolBar1;
   TToolButton *ToolButton1;
   void fastcall ToolButton1Click(TObject *Sender);
private: // User declarations
    TForm2* Form;
public:  // User declarations
   fastcall TForm1(TComponent* Owner);
};
//unit1.cpp
TForm1 *Form1;
//---------------------------------------------------------------------------
fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
  Panel->DockSite = true;
  Form =  new TForm2(this);
  Form->ManualDock(Panel1,NULL, alClient);
  Form->Visible = true;
}
//---------------------------------------------------------------------------
//открыть панель
void fastcall TForm1::ToolButton1Click(TObject *Sender)
{
  Panel1->Visible = true;
  Form->Visible = true;
}
//---------------------------------------------------------------------------

//unit2.cpp
//---------------------------------------------------------------------------
fastcall TForm2::TForm2(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
   Form1->Panel1->Visible = false;    
}
//---------------------------------------------------------------------------

В результате у нас в главной форме слева будет находится форма, в верхней части которой будет две полоски и кнопочка [x]. По этой кнопке левая форма будет прятаться, а по нажатию кнопки в тулбаре появляться


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Step
Дата 17.4.2003, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



сплитер это очень хорошо, и удобно...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
RAN
Дата 19.4.2003, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

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



Всё это очень хорошо, всем спасибо, но главное - в Windows похоже нет стандартного способа создания таких окон. Я решил эту проблему, добавив ToolBar. Кстати, вопрос касался WinAPI без VCL. ВСЕМ БОЛЬШОЕ СПАСИБО ЗА ОЧЕНЬ ДЕЛЬНЫЕ СОВЕТЫ.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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