Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите, дайте стиль плоской формы
Форум программистов > Системное программирование > Другие
AdiSan
Вообщем нужна плоская форма без заголовка, без рамки. В редакторе ресурсов сделаю такой (flat поставлю), компилишь, запускаешь, а у нее заголовок. Таже хрень и при создании окна CreateWindow'ом.
Дайте мне тупо эти циферки которые дать нужно окну: style и exstyle
ну или перечислите эти константы WS_ DS_
А то я на грани отчаяния ужо хочу регион прямоугольный вырезать, чтоб этой рамочки с заголовком небыло. Недавно в API просто.
sax_ol
Цитата
Билл Гейтс плохо учился в школе. Бывало, только смотрит в окно и ничего не делает. Любил он окна.
Для создания окна без заголовка с любым стилем контура сделайте следующее:
Добавьте объявление процедуры

procedure CreateParams(var Params: TCreateParams); override;
и ее реализацию:

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
Style := (Style OR WS_POPUP) AND NOT WS_DLGFRAME;
end;

Установите BorderStyle в bsSizeable.
AdiSan
Да этож дельфи, там то это без проблем. А я окно на АПИ леплю. Так вот мне и надо всего 2 циферки:
Style и exStyle окна. Эти константы как только не сочетал, запускаю - шиш.
sax_ol
Для: AdiSan
Вы бы показали че там у вас.
API API, оно везде апи, а вот синтаксис разный.
AdiSan
А че там показывать, делаю окно из ресурса Dialog, плоское оно не получается. Пробовал и в С++ диалог About сделать плоским тоже не получилось.
sax_ol
Для: AdiSan
Не хотите, как хотите.
AdiSan
Да собсно че показать то, ну вот:
#define IDD_DLG1 1000
IDD_DLG1 DIALOGEX 6,6,200,123
CAPTION "IDD_DLG"
FONT 8,"MS Sans Serif",0,0
STYLE 0x100B0000
BEGIN
END

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

Делаю я на FreeBasic'е, но как говорил уже на сях тож не получается
sax_ol
вот так на паскале
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) AND NOT WS_CAPTION);
а вам надо синтаксис вашего бейсика смотреть
AdiSan
Вот это то что надо, только окно получается объемное/приподнятое и ресайзится. какую еще константу снять чтобы была абсолютно плосткой
sax_ol
WS_POPUP и WS_BORDER

Вам надо было изночально оговорить в чем пишете, т.к. это вносит свои нюансы.
К примеру в Delphi операция AND она и в логике и в побитовых, а в с++ это уже не так, там ! и ~ соответсвенно, отсюда и непонятки могут быть.
Да и ваще всегда надо указывать по возможности все данные, иначе плохо когда человек пришел просит помощи но при этом в партизана играет, тут же не детский сад.
AdiSan
sax_ol, спасибо.
Да причем тут на чем я пишу, изначально я просил дать мне 2 циферки - значение Style и ExStyle (щас ExStyle отпал за ненадобностью). Их же можно потом дать окну SetWindowLong'ом.
WS_POPUP и WS_BORDER
Чет ниче не получилось: форма действительно не ресайзится, но с 3D рамкой, которая мне не нужна.
Чтоб не запариваться, sax_ol, можешь мне дать функцию CreateWindowEx со всеми параметрами хоть на паскале, я все перевариваю, чтобы получилось плоское окошко, а то там то GetWLong не попрет.
sax_ol
Цитата(AdiSan @ 29:12:2007, 15:57 )
Да причем тут на чем я пишу

Если этого не поняли, то печально ... поэтому то вы и
Цитата(AdiSan @ 29:12:2007, 15:57 )
Чет ниче не получилось


PS: WS_POPUP надо добавить, а WS_BORDER убрать
AdiSan
>>PS: WS_POPUP надо добавить, а WS_BORDER убрать
Как то я не допер: ведь действительно выбор языка влияет на то, надо ли прибавлять или отнимать. Видите ли для этого мы в Дельфи убираем, а в Басике прибавляем.
Зачем умничать, просто помог бы, у меня опять нихрена не вышло. Из-за такого детского (для гуру) вопроса развили такие дебаты, зачем это.

Я знаю, что программисты умные люди, и я тоже!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.