WinAPI: CreateWindowEx

shadow 03.06.2004 - 15:32 | Есть проект, в нем форма. На форме кнопка. По нажатию на нее Нужно сделать дочернее окно с использованием CreateWindowEx. Непонятки с первым параметром - классом окна. Как его можно зарегистрировать? Накопал RegisterClass, но там тоже параметр не легкий....структура такая нехилая. Попроще есть что-нить? Еще бы лучше пример на C# :) Спасибо.
Doid 1 - 03.06.2004 - 15:51 | На чем проект?
shadow 2 - 03.06.2004 - 16:02 | C# я кстати там с проблемой вызова API функций столкнулся файла Windows.h там нет, поэтому всякие типы типа WS_CHILD и т.д. надо самому определять. Или я чего то не знаю.
Doid 3 - 03.06.2004 - 16:39 | Я с C# пока не разбирался :). А что? В C# не вариант использовать Windows.Forms?
shadow 4 - 04.06.2004 - 10:22 | Как я понял, ты предлагаешь мне сделать другую форму? Это я могу, но мне нужно именно дочернее окно...а не форма, потому что форма выпадает в панель задач. А мне нужно, чтобы она сворачивалась вместе с главным окном. И не висела как отдельное приложение.
Doid 5 - 04.06.2004 - 10:54 | А это случайно не подойдет? Form.Owner Property ... Remarks To make a form owned by another form, assign its Owner property a reference to the form that will be the owner. When a form is owned by another form, it is minimized and closed with the owner form. For example, if Form2 is owned by form Form1, if Form1 is closed or minimized, Form2 is also closed or minimized. Owned forms are also never displayed behind their owner form. You can use owned forms for windows such as find and replace windows, which should not disappear when the owner form is selected. To determine the forms that are owned by a parent form, use the OwnedForms property.
shadow 6 - 04.06.2004 - 11:01 | почему то такого не нашел в свойствах формы я пишу для КПК, там .NET Compact Framework, не все свойства доступны. Зато нашел свойство Parent. Устанавливаю его для новой формы в this form2.Parent = this; вроде как она теперь принадлежит главной, все работает, но не отображается значок закрытия новой формы.... и она висит себе спокойно до закрытия всего приложения. Хотя FormBorderStyle = FixedDialog.
siapk 7 - 04.06.2004 - 11:02 | Что б получить дочернюю форму с помощью CreateWindowEx нужно дискриптор владельца поставить как Application->handle и все будет ОК!
shadow 8 - 04.06.2004 - 11:16 | в том, то и дело, что нет там handle это .net compact framework все урезано
Doid 9 - 04.06.2004 - 11:17 | (6) Я попробовал обычный проект. Если я правильно все понял, то установка form2.Owner = this; сделала то, что надо: На form1 кинул кнопу, в обработчике написал: ... Form2_ = new Form2(); Form2_.Show(); ... Потом кинул еще кнопу, в обработчике которой написал: ... Form2_.Owner = this; ... Результаты: - Запускается приложение, появляется первая форма. - При нажатии на первую кнопу появляется вторая форма, в панели задач появляется значок. - При нажатии на вторую кнопу значок с панели задач исчезает, при сворачивании первой формы следом сворачивается и вторая.
Doid 10 - 04.06.2004 - 11:19 | (+9) Но это на обычном, не урезанном.
shadow 11 - 04.06.2004 - 11:22 | Form picForm = new Form(); picForm.BackColor = System.Drawing.Color.Silver; picForm.Location = new System.Drawing.Point(100, 150); picForm.ClientSize = new System.Drawing.Size(100, 120); picForm.Show(); мля, 5 минут назад этот код давал новую форму с размером 100 на 120. Прошло 5 минут, нифига не менял, и что я вижу - окно на весь экран. Уже и VStudio перезапускал

>>