Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2006, 12:01   #1
strannik
python developer
Пользователь Подтвердите свой е-майл
 
Аватар для strannik
 
Регистрация: 30.11.2006
Сообщений: 81
По умолчанию помогите разобраться с примером

Товарищи программисты подскажите пожалуйста почему при выполнении такого кода окно появляется прозрачным???

program WinMin;
uses
Windows,
Messages;
const
AppName = 'WinMin';
Var
Window : HWnd;
hButton1, hLabel1 : HWnd;
Message : TMsg;
WindowClass : TWndClass;
function WindowProc (Window : HWnd; Message, WParam : Word;
LParam : LongInt) : LongInt; stdcall;
begin
WindowProc := 0;
case Message of
wm_Destroy : begin
PostQuitMessage (0);
Exit;
end;
wm_Command : if lParam = hButton1 then MessageBeep (mb_OK);
end;
WindowProc := DefWindowProc (Window, Message, WParam, LParam);
end;

begin
with WindowClass do begin
Style := cs_HRedraw or cs_VRedraw;
lpfnWndProc := @WindowProc;
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := 0;
hIcon := LoadIcon (0, idi_Application);
hCursor := LoadCursor (0, idc_Arrow);
hbrBackground := COLOR_BTNFACE + 1;
lpszMenuName := '';
lpszClassName := AppName;
end;
If RegisterClass (WindowClass) = 0 then Halt (255);
Window := CreateWindow (AppName, 'Win_Min', ws_OverlappedWindow,
cw_UseDefault, cw_UseDefault, cw_UseDefault, cw_UseDefault,
0, 0, HInstance, nil);
hButton1 := CreateWindow ('Button', 'Button1',
WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
5, 5, 65, 24, Window, 0, hInstance, nil);
hLabel1 := CreateWindow('Static', 'Label1', WS_VISIBLE or WS_CHILD or
SS_LEFT,
80, 10, 70, 20, Window, 0, hInstance, nil);
ShowWindow (Window, CmdShow);
UpdateWindow (Window);
SetFocus(hButton1);
while GetMessage (Message, 0, 0, 0) do begin
TranslateMessage (Message);
DispatchMessage (Message);
end;
Halt (Message.wParam);
end.
Границы расширяет тот, кто выходит за них.
strannik вне форума Ответить с цитированием
Старый 20.12.2006, 20:13   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

во первых если хочешь чтобы тебе помогли приводи код в нормальном виде в тегах CODE
rpy3uH вне форума Ответить с цитированием
Старый 20.12.2006, 20:19   #3
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

вся проблема вот здесь

Код:
function WindowProc (Window : HWnd; Message, WParam : Word;
  LParam : LongInt) : LongInt; stdcall;
надо так
Код:
function WindowProc (Window : HWnd; Message, WParam : DWord;
  LParam : LongInt) : LongInt; stdcall;
оба параметра и код сообщения должны быть 4х байтовыми

Последний раз редактировалось rpy3uH; 20.12.2006 в 20:22.
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите разобраться с icq _ик_ Помощь студентам 1 29.04.2008 19:05
помогите с примером Briz Помощь студентам 5 23.10.2007 14:34
Помогите разобраться! Кот Microsoft Office Excel 3 14.08.2007 19:48