IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Окно на WinApi (https://www.imho.ws/showthread.php?t=61679)

dex0r 13.06.2004 23:22

Окно на WinApi
 
Хочу написать программу, которая создает окно без рамки (и заголовка)
Код:

Inst := hInstance;
  with WinClass do
  begin
    //style              := CS_CLASSDC or CS_PARENTDC;
    style:=cs_hredraw or cs_vredraw;
    lpfnWndProc        := @WindowProc;
    hInstance          := Inst;
    hbrBackground      := color_btnface + 1;
    lpszClassname      := 'TESTWINDOW';
    hCursor            := LoadCursor(0, IDC_ARROW);
  end;
  RegisterClass(WinClass);

  Hwnd := CreateWindowEx(WS_EX_TOOLWINDOW,'TESTWINDOW', 'capt',  WS_popup,  363, 278, 505, 365, 0, 0, Inst, nil);

после запуска программы, весь таскбар 'виснет', т.е. не реагирует ни на какие сообщения... если добавить WS_CAPTION то программа работает нормально, но появляется проклятая рамка... может можно какнить по-другому сделать?

alexey_ma 14.06.2004 12:49

Можно попробовать создать окно с caption и поставить на него регион который прячет заголовок. Как ставить регионы обсуждалось пару дней назад : "Нестандартный вид формы " http://imho.ws/showthread.php?t=60808

edbond 03.07.2004 22:34

попробуй вместо Ws_popup написать Ws_visible

alexey_ma 04.07.2004 15:23

А толку то ? У него стиль Ws_ex_toolwindow создает окно с узким заголовком. А он хочет окно без заголовка и без бордера.

/7y3uK 04.07.2004 16:31

Ой, точно :)

вот, правда запоздало, но вдруг поможет:

Ws_dlgframe - создание окна с двойной рамкой без заголовка.
Ws_overlapped - перекрывающееся окно
Ws_thickframe - окно с толстой рамкой, для изменения размеров окна.
Ws_visible
Ws_vscroll
..
ну и т.д.

pva++ 12.07.2004 12:43

проверенный способ
 
:beer: Если сейчас нигде не ошибусь, то попробуй вот как:

Код:

CreateWindowEx(0, "CLASSNAME"(*или как у тебя*), 0, WS_POPUP|WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, GetModuleHandle(0), 0);
  • не забудь отрисоваться на WM_PAINT (от этого винда "виснет", а точнее гоняется по короткому циклу)
  • если хочешь рамку WS_BORDER

для паскальщиков считать '=", 0=Nil в нужных местах

dex0r 12.07.2004 19:30

pva++, Большое спасибо! всё отлично пахет! :yees:


Часовой пояс GMT +4, время: 13:19.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.