![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
А как узнать количество дочерних окон в SDI приложении?
mmms © (2006-10-29 20:00:00)Заранее благодарю.
Джо (2006-10-29 21:08:00) [61]Скажите, а Вы выплатите штуку, если я докажу, что эта Ваша фраза:
>> Можно вообще создать просто окно (без его видимости, т.е. читую оконную процедуру).
— бессмысленна? ;>
MikePetrichenko (2006-10-29 21:06:00) [62]
> на самом деле я отлично понимаю, о чём ты говоришь. и подозреваю,
> что ты понимаешь, о чём я. но флэйм -- это же святое! %-
> )
+1
> изыди! Боливар не вынесет троих! %-)
Сто пудово. Уж штуку я могу себе позволить. Но 2 - никак. Мне же на GPRS не останется :)
MikePetrichenko (2006-10-29 21:03:00) [63]Именно это она и делает. То что написано.
Опять же. Определимся в терминах. Причем учтите, что child window действительно переводится дочернее окно, но интересно, а кто догадался перевести MDI Client window как "дочернее окно"? И почему общеупотребительным для "дочернее окно" используется именно в MDI приложениях. Это раз.
Второе, повторюсь, но если лень читать всю ветку, вопрос был исклучитесль про SDI приложение. Как получить количество ДОЧЕРНИХ окон. Не спрашивали ни про контролы, ни про диалоги. именно ДОЧЕРНИХ.
Я понимаю, что всем очень хочется денег. :)
До в данном контексте (контексте вопроса) ответ никак - вполне верен. И просьба создать там дочернее окно (в смысле, понятному 99% программистов) вызовет удивление, так как приложение превратится в MDI.
Я понимаю, что потом можно вспомнить и про кнопки и про диалоги и про ListView всякие и т.п. Можно вообще создать просто окно (без его видимости, т.е. читую оконную процедуру). Тоже вроде окно и тоже вроде дочернее.
Также жедательно вспомнить, что SDI приложение (главная его форма) само является дочерним окном от DeskTop и т.д.
Мне кажется, полемика бессмыслена...
Ketmar (2006-10-29 21:03:00) [64]>[26] Джо(c) 29-Oct-2006, 21:02
>Почуял я, так сказать, the smell of money и явился :)
изыди! Боливар не вынесет троих! %-)
Джо (2006-10-29 21:02:00) [65]Почуял я, так сказать, the smell of money и явился :)
Джо (2006-10-29 21:01:00) [66]> [24] Ketmar © (29.10.06 21:00)
> >[23] Джо(c) 29-Oct-2006, 20:57
> о! и ты к нам? welcome. %-)
Ну, где еще штукобакс, развлекаясь, получить можно? :)
Ketmar (2006-10-29 21:00:00) [67]>[22] MikePetrichenko(c) 29-Oct-2006, 20:56
>По-моему пора завести форум (Ketmar-Mike) где и будем
>выясняь детали реализации того или иного механизма
>функционирования Windows, Unix, Delphi и прочего :)
можно и так. %-)
на самом деле я отлично понимаю, о чём ты говоришь. и подозреваю, что ты понимаешь, о чём я. но флэйм -- это же святое! %-)
>[23] Джо(c) 29-Oct-2006, 20:57
о! и ты к нам? welcome. %-)
Джо (2006-10-29 20:57:00) [68]> MikePetrichenko ©
Скажите, а функция EnumChildWindows, по-Вашему, что делает? И не Майкрософт ее автор? И не он же автор такого текста:
The EnumChildWindows function enumerates the child windows that belong to the specified parent window by passing the handle to each child window, in turn, to an application-defined callback function. EnumChildWindows continues until the last child window is enumerated or the callback function returns FALSE.
?
:D
MikePetrichenko (2006-10-29 20:56:00) [69]
> Ketmar © (29.10.06 20:52) [20]
По-моему пора завести форум (Ketmar-Mike) где и будем выясняь детали реализации того или иного механизма функционирования Windows, Unix, Delphi и прочего :)
Глядишь - не прохой FAQ получится, куда можно будет посылать "НадМозги". Все ближе, чем Google.
MikePetrichenko (2006-10-29 20:53:00) [70]
> CreateWindow() с классом BUTTON создаст окно. так справка
> говорит. а то, что окно является ещё и контролом -- это
> частности.
Не совсем верно. Контрол он и есть контрол. Для него даже специальный термин введен. А вот то что он окно - детали его реализации.
А еще есть и диалоги, кторые тоже окна, но по другому. :)
> и мой ответ в [1] тоже некорректен поэтому. %-) тем более,
> что он вообще не к окнам, а к формам относится. %-)
Верно. Все зависит от терминологии. А диалоги вообще можно из шаблона вместе с конролами создать без всяких CreateWindow. :)
Ketmar (2006-10-29 20:52:00) [71]>[18] MikePetrichenko(c) 29-Oct-2006, 20:48
>приложении SDI/MDI. Это окно у которого установлен стиль
>MDI_CHILD.
что имеет смысл в MDI application. в SDI нет такого понятия. зато есть дочерние окна. кнопки, например. если мне со словарём докажут, что "child window" в вышеприведённой цитате из win32.hlp обозначает "зелёный сыр" -- тогда соглашусь, что нет дочерних окон в SDI.
%-)
Ketmar (2006-10-29 20:49:00) [72]>[17] MikePetrichenko(c) 29-Oct-2006, 20:45
>Никак. Их там нет. Вопрос не про кнопку, которая контрол.
CreateWindow() с классом BUTTON создаст окно. так справка говорит. а то, что окно является ещё и контролом -- это частности.
и мой ответ в [1] тоже некорректен поэтому. %-) тем более, что он вообще не к окнам, а к формам относится. %-)
MikePetrichenko (2006-10-29 20:48:00) [73]
> [13]. справка -- (c) Microsoft.
Ну давай цитатами кидатся. :) Хорошо.
Особо популярно. То что имеется в виду под Child Window в приложении SDI/MDI. Это окно у которого установлен стиль MDI_CHILD. (Опять же в Microsoft). Такого окна в SDI приложении быть не может по определнию (оно SDI). В противном случае оно уже превращается в MDI.
Либо выдайте свои определения child window и тогда на основе ваших терминов можно будет строить спор. Я пользуюсь общеупотребительными терминами (теми же, которые употребляет Microsoft) в контексте вопроса темы.
MikePetrichenko (2006-10-29 20:45:00) [74]
> А как узнать количество дочерних окон в SDI приложении?
Никак. Их там нет. Вопрос не про кнопку, которая контрол. Можно конечно сейчас добраться до того, что и Desktop является child windows у друго-го окна.
Еще раз. Не путать божий дар с яичницей.
Ketmar (2006-10-29 20:44:00) [75]>[15] MikePetrichenko(c) 29-Oct-2006, 20:42
[13]. справка -- (c) Microsoft.
MikePetrichenko (2006-10-29 20:42:00) [76]
> э-э-э... что-то ты не то тут сказал, по-моему.
Я же написал. Определитесь в терминах. У SDI приложения по определнию Microsoft нет дочерних окон. Точнее они все "дочернии" от десктопа, но никто (даже Microsoft) в таком смысле это не употребляет.
А вот у MDI приложения окна называются именно "дочерними" по отношению к главному окну приложения.
По сему - корректная постановка вопроса, 90% ответа на него.
P.S. Я не отмазываюсь, но сей спор уже проходил.
Ketmar (2006-10-29 20:41:00) [77]так что, Майк, плати Диме денежку. жаль, я не успел первым -- мне бы тоже не помешала хотя бы половина означеной суммы...
Ketmar (2006-10-29 20:40:00) [78]выдержка ис справки по CreateWindow() (выделение -- моё):
BUTTON Designates a small rectangular child windowthat represents a button the user can click to turn it on or off. Button controls can be used alone or in groups, and they can either be labeled or appear without text. Button controls typically change appearance when the user clicks them.
Ketmar (2006-10-29 20:39:00) [79]>[9] MikePetrichenko(c) 29-Oct-2006, 20:33
э-э-э... что-то ты не то тут сказал, по-моему.
MikePetrichenko (2006-10-29 20:39:00) [80]Frame, Client, and Child Windows
An MDI application has three kinds of windows: a frame window, an MDI client window, as well as a number of child windows. The frame window is like the main window of the application: it has a sizing border, a title bar, a window menu, a minimize button, and a maximize button. The application must register a window class for the frame window and provide a window procedure to support it.
An MDI application does not display output in the client area of the frame window. Instead, it displays the MDI client window. An MDI client window is a special type of child window belonging to the preregistered window class MDICLIENT. The client window is a child of the frame window; it serves as the background for child windows. It also provides support for creating and manipulating child windows. For example, an MDI application can create, activate, or maximize child windows by sending messages to the MDI client window.
When the user opens or creates a document, the client window creates a child window for the document. The client window is the parent window of all MDI child windows in the application. Each child window has a sizing border, a title bar, a window menu, a minimize button, and a maximize button. Because a child window is clipped, it is confined to the client window and cannot appear outside it.
An MDI application can support more than one kind of document. For example, a typical spreadsheet application enables the user to work with both charts and spreadsheets. For each type of document that it supports, an MDI application must register a child window class and provide a window procedure to support the windows belonging to that class. For more information about window classes, see Window Classes. For more information about window procedures, see Window Procedures.
Following is a typical MDI application. It is named Multipad.