Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

Создание невидимого окна   Найти похожие ветки 

 
MaxxSoft ©   (2006-03-21 10:42) [0]

Необходимо создать невидимое окно, делаю так

var
 NewWnd: HWND;
begin
 NewWnd := CreateWindow(nil, nil, SW_HIDE, 0, 0, 100, 100, Handle, 0, 0, nil);
end;

В итоге окно не создается, NewWnd равен 0
Какие параметры задаю неправильно?


 
balepa ©   (2006-03-21 10:51) [1]

Если на АПИ то одного CreateWindow мало
program Project1;

uses
 windows,
 messages;

{"модули windows и messages  самые необходимые — они обязательно должны быть
объявлены в начале каждой Вашей программы!}
var
 wc : TWndClassEx;  //Переменная шаблона класса окна
 MainWnd : HWND;   //Описатель главного окна
 Mesg : TMsg;          //Переменная для цикла сбора сообщений
{  Далее следует оконная процедура главного окна. Обратите внимание на служебное
 слово stdcall оно вынуждает компиллятор генерировать особый вид кода, который

 может быть вызван любой windows-программой, без этого служебного слова
 программа не сможет  работать вообще!}

function WindowProc(wnd:HWND; Msg : Integer; Wparam:Wparam; Lparam:Lparam):Lresult;
stdcall;
Begin
 {Далее происходит цикл обработки сообщений}
 case msg of
 wm_destroy :  //Сообщение посылаемое при уничтожении окна
   Begin
    postquitmessage(0); exit;

    Result:=0;
   End
  else Result:=DefWindowProc(wnd,msg,wparam,lparam);
 end;
End;

{Переменные xPos,yPos,nWidth,nHeight в принципе не нужны, однако я их завел
(и вам рекомендую) для лучшей читабельности программы}

var
 xPos,yPos,nWidth,nHeight : Integer;
begin //Тело программы
{  Далее идет заполнение шаблона класса окна}

wc.cbSize:=sizeof(wc);
wc.style:=cs_hredraw or cs_vredraw or cs_noclose;
wc.lpfnWndProc:=@WindowProc;
wc.cbClsExtra:=0;

wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(0,idi_application);
wc.hCursor:=LoadCursor(0,idc_arrow);
wc.hbrBackground:=COLOR_BTNFACE+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:="WinMin : Main";
RegisterClassEx(wc); //Регистрация нового класса в системе

{"заполнение переменных xPos,yPos,nWidth,nHeight}

xPos:=100;
yPos:=150;
nWidth:=400;

nHeight:=250;

{ Создание главного окна}
MainWnd:=CreateWindowEx (
0,                    //флаги расширенных стилей
"WinMin : Main",    //имя класса окна, данное при заполнении структуры wc
"Simple Window",          //заголовок окна
ws_overlappedwindow, //флаги стилей окна
{подробнdее о стилях см. после текста программы}
xPos,               //горизонтальная позиция окна
yPos,               //вертикальная позиция окна

nWidth,             //ширина окна
nHeight,            //высота окна
0,                  //описатель родительского окна (parent) или окна-владельца (owner)
0,                  //описатель меню окна (меню нет, нет и описателя)
Hinstance,          //описатель приложения
nil                 //address of window-creation data
);
ShowWindow(MainWnd,CmdShow); //Отображаем окно

//Цикл обработки сообщений
//он может слегка видоизменяться, но эти строчки присутсвуют всегда

While GetMessage(Mesg,0,0,0) do
begin
 TranslateMessage(Mesg);
 DispatchMessage(Mesg);
end;
end.


 
MaxxSoft ©   (2006-03-21 11:07) [2]

Спасибо.
Я так понял, можно не на АПИ?


 
Сергей М. ©   (2006-03-21 11:11) [3]


> Я так понял, можно не на АПИ?


Обычная VCL-форма со свойством Visible=False - вот тебе и невидимое окно)


 
Reindeer Moss Eater ©   (2006-03-21 11:38) [4]

AllocateHWND



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

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
15-1148298030
Gorlum
2006-05-22 15:40
2006.06.18
Управление ISA-сервером


15-1147673699
Сергей И
2006-05-15 10:14
2006.06.18
Информация по литературе


2-1148910333
JTAG
2006-05-29 17:45
2006.06.18
Господа подскажите плз, как вызвать из программы нажатие


3-1145170476
Виталька 2006
2006-04-16 10:54
2006.06.18
Конфигурация BDE при установке


15-1148664747
Логин
2006-05-26 21:32
2006.06.18
Как прикрутить FR 2.40 от Delphi 5 к BCB 6?