ClientMDIGadget
Синтаксис
Function ClientMDIGadget(ByVal menu As HMENU,ByVal IDmenuMDI As Integer, ByVal Style As Integer=WS_CLIPCHILDREN Or WS_CLIPSIBLINGS Or WS_VSCROLL Or WS_HSCROLL) As HWND
Описание
Создает окно-клиент для MDI окон. Вы должны понимать, что создание клиент-окна жестко завязано на меню. Если вы не будете использовать меню , тогда при развертывании окна, обратно его вернуть в обычное состояние будет проблематично. Создание стандартных MDI окон без клиент окна невозможен!
Параметры
menu - хендл меню верхнего уровня (может быть 0, но меню все же создавать рекомендуется)
IDmenuMDI - первый номер идентификатор для переключения окон в меню. Остальные присваиваются автоматически прибавляя номер на единицу. Если H_menu=0, то список MDI окон в меню не будет создан.
Style - Стиль клиент-окна , возможные параметры:
- WS_BORDER - Создает окно, которое имеет тонкую линию рамки.
- WS_CAPTION - Создает окно, которое имеет строку заголовка (включает в себя стиль WS_BORDER).
- WS_CHILD - Создает дочернее окно. Этот стиль не может использоваться со стилем WS_POPUP.
- WS_CHILDWINDOW - То же самое, что и стиль WS_CHILD.
- WS_CLIPCHILDREN - Исключает область, занятую дочерними окнами, когда прорисовка происходит внутри родительского окна. Этот стиль используется при создании родительского окна.
- WS_CLIPSIBLINGS - Закрепляет дочерние окна относительно друг друга, то есть когда отдельное дочернее окно принимает сообщение WM_PAINT, стиль WS_CLIPSIBLINGS закрепляет все другие перекрывающие дочерние окна вне области дочернего окна, которое нужно модифицировать. Если стиль WS_CLIPSIBLINGS не определен, а дочерние окна перекрываются, то, возможно, что при прорисовке внутри рабочей области дочернего окна, будет выводиться внутренняя рабочая область соседнего дочернего окна.
- WS_DISABLED - Создает окно, которое первоначально заблокировано. Заблокированное окно не может принимать вводимую информацию от пользователя.
- WS_DLGFRAME - Создает окно, которое имеет стиль рамки, обычно используемый с диалоговыми окнами. Окно с этим стилем не может иметь строку заголовка.
- WS_GROUP - Определяет первый элемент управления в группе элементов управления. Группа состоит из этого первого элемента управления и всех определенных элементов управления после него, до следующего элемента управления со стилем WS_GROUP. Первый элемент управления в каждой группе обычно имеет стиль WS_TABSTOP, чтобы пользователь мог перемещаться из группы в группу. Пользователь может впоследствии передавать фокус клавиатуры от одной группы элементов управления в следующую группу элементов управления, используя клавиши со стрелками.
- WS_HSCROLL - Создает окно, которое имеет горизонтальную линейку прокрутки.
- WS_ICONIC - Создает окно, которое первоначально свернуто. Тот же самый стиль, что и WS_MINIMIZE.
- WS_MAXIMIZE - Создает окно, которое первоначально развернуто.
- WS_MAXIMIZEBOX - Создает окно, которое имеет кнопку Развернуть (Maximize). Не может быть объединен со стилем WS_EX_CONTEXTHELP. К тому же должен быть определен стиль WS_SYSMENU.
- WS_MINIMIZE - Создает окно, которое первоначально свернуто. Тот же самый стиль, что и WS_ICONIC.
- WS_MINIMIZEBOX - Создает окно, которое имеет кнопку Свернуть (Minimize). Не может быть объединен со стилем WS_EX_CONTEXTHELP. К тому же должен быть определен стиль WS_SYSMENU.
- WS_OVERLAPPED - Создает перекрывающее окно. Перекрывающее окно имеет строку заголовка и рамку. Тот же самый стиль, что и WS_TILED.
- WS_OVERLAPPEDWINDOW - Создает перекрывающее окно со стилями WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX и WS_MAXIMIZEBOX. Тот же самый, что и стиль WS_TILEDWINDOW.
- WS_POPUP - Создает выскакивающее окно. Этот стиль не может использоваться со стилем WS_CHILD.
- WS_POPUPWINDOW - Создает выскакивающее окно со стилями WS_BORDER, WS_POPUP и WS_SYSMENU. Стили WS_CAPTION и WS_POPUPWINDOW должны быть объединены, чтобы сделать меню окна (window) видимым.
- WS_SIZEBOX - Создает окно, которое имеет установку размеров рамки окна. Тот же самое, что и стиль WS_THICKFRAME.
- WS_SYSMENU - Создает окно, которое имеет меню окна (window-menu) в его строке заголовка. К тому же должен быть определен стиль WS_CAPTION.
- WS_TABSTOP - Определяет элемент управления, который может принимать фокус клавиатуры, когда пользователь нажимает клавишу ТАБУЛЯЦИИ (TAB). Нажатие на клавиши табуляции передает фокус клавиатуры на следующий элемент управления со стилем WS_TABSTOP.
- WS_THICKFRAME - Создает окно, которое имеет установку размеров рамки окна. То же самое, что и стиль WS_SIZEBOX.
- WS_TILED - Создает перекрывающее окно. Перекрывающее окно имеет строку заголовка и рамку. То же самое, что и стиль WS_ OVERLAPPED.
- WS_TILEDWINDOW - Создает перекрывающее окно со стилями WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX и WS_MAXIMIZEBOX. То же самое, что и стиль WS_ OVERLAPPEDWINDOW.
- WS_VISIBLE - Создает окно, которое является первоначально видимым.
- WS_VSCROLL - Создает окно, которое имеет вертикальную линейку прокрутки.
Платформы
Windows
Пример1 (со списком окон в меню)
#Include "window9.bi"
Dim As HWND mdi1,mdi2
Dim As HMENU hMessages,MenName
Dim As Integer event
OpenWindow("",10,10,400,400)
hMessages=Create_Menu()
MenName=MenuTitle(hMessages,"MDI")
ClientMDIGadget(MenName,100)
mdi1=MDIGadget("MDI1",10,10,200,200):WindowColor(mdi1,&h6405A3)
mdi2=MDIGadget("MDI2",100,10,200,200):WindowColor(mdi2,&h498721)
Do
event=WaitEvent
If event=EventClose Then End
Loop

Пример2 (без списка окон)
#Include "window9.bi"
Dim As HWND mdi1,mdi2
Dim As HMENU hMessages,MenName
Dim As Integer event
OpenWindow("",10,10,400,400)
hMessages=Create_Menu()
MenName=MenuTitle(hMessages,"MDI")
ClientMDIGadget(0,0)
mdi1=MDIGadget("MDI1",10,10,200,200):WindowColor(mdi1,&h6405A3)
mdi2=MDIGadget("MDI2",100,10,200,200):WindowColor(mdi2,&h498721)
Do
event=WaitEvent
If event=EventClose Then End
Loop

Пример3 (MDI с гаджетом)
#Include "window9.bi"
Dim As HWND mdi1,mdi2,clientmdi
Dim As HMENU hMessages,MenName
Dim As Integer event
OpenWindow("",10,10,400,400)
hMessages=Create_Menu()
MenName=MenuTitle(hMessages,"MDI")
clientmdi=ClientMDIGadget(0,0)
mdi1=MDIGadget("MDI1",10,10,200,200):WindowColor(mdi1,&h6405A3)
UseGadgetList(mdi1)
ButtonGadget(1,10,10,100,30,"Button")
UseGadgetList(clientmdi)
mdi2=MDIGadget("MDI2",100,10,200,200):WindowColor(mdi2,&h498721)
Do
event=WaitEvent
If event=EventClose Then
If EventHwnd=mdi1 Then
Close_Window(mdi1)
ElseIf EventHwnd=mdi2 Then
Close_Window(mdi2)
Else
end
EndIf
EndIf
If event=eventgadget Then
If EventNumber=1 Then
end
EndIf
EndIf
Loop

Created with the Personal Edition of HelpNDoc: Easily create Web Help sites