Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

Вопрос о стилях окон   Найти похожие ветки 

 
Владимир Березин   (2004-10-31 18:13) [0]

Здравствуйте!
Подскажите, пожалуйста, какие флаги WS_XX следует использовать
для получения окна у которого нет ничего кроме поверности?
У меня комбинация WS_POPUP or WS_VISIBLE почему-то дает невиди-
мое окно.


 
Игорь Шевченко ©   (2004-10-31 18:33) [1]


> У меня комбинация WS_POPUP or WS_VISIBLE почему-то дает
> невиди-
> мое окно.


А что в WM_PAINT написано ?


 
Владимир Березин   (2004-10-31 18:43) [2]

>>А что в WM_PAINT написано ?

Ничего.


 
Vladimir Vorfolomeev ©   (2004-10-31 19:00) [3]

Во первых поставь WS_POPUP и используй ShowWindow чтобы показать окно, также после этого рекомендуется обновить UpdateWindow


 
Владимир Березин   (2004-10-31 19:04) [4]

>> Во первых поставь WS_POPUP и используй ShowWindow чтобы показать окно, также после этого рекомендуется обновить UpdateWindow

Это все сделано.


 
Vladimir Vorfolomeev ©   (2004-10-31 19:11) [5]

Как ты создаеш окно?

Если все на API, то во первых нужно

1) Зарегистрировать класс окна
2) Создать окно
3) Показать его
4) Обрабатывать сообщения

Наверно ты не обрабатываеш сообщения


 
Владимир Березин   (2004-10-31 19:18) [6]

>> Как ты создаеш окно?

Вот весь код.

program winmin;
{
**********************************
*                                *
* Минимальное Windows-приложение *
*                                *
**********************************
}
uses
 Windows,
 Messages;

const sClassName = "WinClass";
     sCaption = "Минимальное приложение";
     
var Window:HWND;
   wc:TWndClass;
   msg:TMsg;

//--- Оконная функция ---
function WinProc
(Window:HWND; Mes:Word;
WParam:Word; LParam:LongInt):Integer;stdcall
begin
Result:=0;
case Mes of
 WM_DESTROY:    begin
                 PostQuitMessage(0);
                 Halt
                end;
end;
Result:=DefWindowProc(Window,Mes,WParam,LParam)
end;

//--- Инициализация приложения ---
procedure AppInit;
begin
//--- Регистрация оконного класса ---
wc.style := CS_HREDRAW or CS_VREDRAW;
wc.lpfnWndProc := @WinProc;
wc.cbClsExtra := 0;
wc.cbWndExtra := 0;
wc.hInstance := HInstance;
wc.hIcon := LoadIcon(0, IDI_APPLICATION);
wc.hCursor := LoadCursor(0, IDC_ARROW);
wc.hbrBackground := GetStockObject(BLACK_BRUSH);
wc.lpszMenuName := nil;
wc.lpszClassName := sClassName;
RegisterClass(wc);
//--- Создание окна ---
Window:=CreateWindow(sClassName,
                     sCaption,
                     WS_VISIBLE or WS_POPUP,
                     CW_USEDEFAULT,
                     CW_USEDEFAULT,
                     CW_USEDEFAULT,
                     CW_USEDEFAULT,
                     0,0,
                     hInstance,nil);
if Window=0 then Halt;
ShowWindow(Window, SW_SHOW);
UpdateWindow(Window);
end;

//--- Основной цикл ---
procedure AppRun;
begin
while GetMessage(msg,Window,0,0) do begin
 TranslateMessage(msg);
 DispatchMessage(msg)
end;
end;

begin
AppInit;
AppRun
end.


 
Vladimir Vorfolomeev ©   (2004-10-31 19:22) [7]

Вместо CW_USEDEFAULT, поставь реальные значения.

Удачи тебе.


 
Владимир Березин   (2004-10-31 19:37) [8]

>> Вместо CW_USEDEFAULT, поставь реальные значения.

>> Удачи тебе.

Спасибо, все получилось!


 
GuAV ©   (2004-10-31 20:21) [9]

Владимир Березин   (31.10.04 19:18) [6]
while GetMessage(msg,Window,0,0) do


Смотрим в MSDN про GetMessage. Читаем warning.


>                 Halt

Зачем ? PostQuitMessage сделает то что описано в её названии и при получении Quit Message фция GetMessage вернёт False. А хальт - не хорошо.

Владимир Березин   (31.10.04 19:18) [6]
function WinProc
(Window:HWND; Mes:Word;
WParam:Word;
LParam:LongInt):Integer;stdcall


Неверно. Это только в win16 было так.
Надо так:

function WindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;


 
Vladimir Vorfolomeev ©   (2004-10-31 22:40) [10]

Насчет Msg и wParam правильно замечено. Но с win16 я с тобой GuAV не согласен, так как win16 не была многозадачной.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.043 c
3-1100239591
Layner
2004-11-12 09:06
2004.12.12
А с расширенными ХП под MSSQLServer никто не работал?


14-1101145603
_Дельфин_
2004-11-22 20:46
2004.12.12
Учебник по WinAPI


1-1101310313
Frozzen
2004-11-24 18:31
2004.12.12
Освобождение памяти


14-1101301441
РВА
2004-11-24 16:04
2004.12.12
Где найти


1-1101877338
Shtukos
2004-12-01 08:02
2004.12.12
С некоторых пор Delphi 7 не запускается, а выдает окно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский