![]() |
|
![]() ![]() ![]() |
|
NewLine |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Привет.
В обработчике меню ставлю функцию открытия окна NewFormView_2 прописанного в шаблоне. CMultiDocTemplate* m_pTemplateHex; Подскажите пожалуйста, как мне узнать открыто ли это окно или нет при следующем событии и если открыто, то просто активизировать его , а не открывать заново.
Спасибо. --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
GetWindowPlacement( WINDOWPLACEMENT* lpwndpl ) typedef struct tagWINDOWPLACEMENT { /* wndpl */ UINT length; UINT flags; UINT showCmd; POINT ptMinPosition; POINT ptMaxPosition; RECT rcNormalPosition; } WINDOWPLACEMENT; showCmd Specifies the current show state of the window. This member can be one of the following values: SW_HIDE Hides the window and passes activation to another window. SW_MINIMIZE Minimizes the specified window and activates the top-level window in the system's list. SW_RESTORE Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position (same as SW_SHOWNORMAL). SW_SHOW Activates a window and displays it in its current size and position. SW_SHOWMAXIMIZED Activates a window and displays it as a maximized window. SW_SHOWMINIMIZED Activates a window and displays it as an icon. SW_SHOWMINNOACTIVE Displays a window as an icon. The window that is currently active remains active. SW_SHOWNA Displays a window in its current state. The window that is currently active remains active. SW_SHOWNOACTIVATE Displays a window in its most recent size and position. The window that is currently active remains active. SW_SHOWNORMAL Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position (same as SW_RESTORE). Думаю без комментариев ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Kostt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 8.1.2006 Где: Томск Репутация: 2 Всего: 3 |
Например так. Заведи CFrameWnd* m_pFrame как член класса CMainFrame и проверяй его хэндл функцией IsWindow.
А главное - почитай о соглашениях по форматированию кода C/C++ |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Так...Ну я думаю кто-то из нас не понял вопроса..
![]() ![]() Как я понял у человека MDI.. Есть уже созданые дочерние окна. Они могу быть свернуты , а могут быть нет. Он хочет "поднимать" свернутые и активизировать, а развернутые-просто активизировать ![]() Это сообщение отредактировал(а) Coocky - 26.6.2006, 14:27 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
NewLine |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Да, у меня MDI приложения.
В меню есть два пункта 1 документ и 2 документ. Так вот я хочу чтобы каждый документ открывался один раз(первый), а в следующий раз при нажатии одного из пунктов меню или ничего не происходило или активизировался тот документ, который был вызван из меню. --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Перед созданием окна,в обработчике делаешь следущее
1.перебираешь все документы связаные с шаблоном. CDocTemplate::GetFirstDocPosition CDocTemplate::GetNextDoc 2.внутри этого шаблона перебираешь все окна связаные с документом CDocument::GetFirstViewPosition CDocument::GetNextView 3.Если указатель нулевой-создаем окно. Если нет вызываем для данного окна функцию GetWindowPlacement, и в соотвествии с флагом UINT showCmd, который получишь -сделать стандартные операции над этим окном ( SetWindowPlacement(),Развернуть,активировать и т.д.) Ну что-то типа этого ![]() Это сообщение отредактировал(а) Coocky - 26.6.2006, 15:41 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
NewLine |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Привет.
Написал код для проверки окна. Но не понимаю почему он не заходит во второй while ![]()
--------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ну так посмотри в отладчике: наверное, список видов документа пуст.
-------------------- ... |
|||
|
||||
NewLine |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Пуст.
А чего с этим делать-то? ![]() --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Открыть вью для данного документа "правильным" способом - через CDocTemplate::OpenDocumentFile
-------------------- ... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |