Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.09.2010, 14:12
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию WinApi и Регионы окна

Всем привет, трабл такой. На vlc превосходно работает перерисовка регионов, а на winapi нет. Код у меня такой:
Код:
program APIx_Project3;

uses
  windows,
  messages,
  commctrl;

var
  WinClass : TWndClass;
  Form : HWND;
  Handle : HWND;
  Msg : TMSG;
  hFont : HWND;
  HRegion1, Hreg2, Hreg3: THandle;
  Region: HRGN;

procedure ShutDown; //процедура завершения программы
begin
  DeleteObject(hFont); //удаление шрифта
  UnRegisterClass('TAPIxForm', Form); //удаление окна
  ExitProcess(Form); //закрытие программы
end;

function WindowProc(hwnd, msg, wparam, lparam: longint): longint; stdcall; //обработчик сообщений
begin
  Result := DefWindowProc(hwnd, msg, wparam, lparam);
  case Msg of
WM_COMMAND:
if (lParam = ...) and (HiWord(wParam) = BN_CLICKED) then
  begin
  ...;
  end;
  WM_DESTROY: ShutDown;
  end;
end;

begin
Form := GetModuleHandle(nil);
  with WinClass do
  begin
   Style := CS_PARENTDC; 
   hIcon := LoadIcon(Form, MAKEINTRESOURCE('APIXICON')); 
   lpfnWndProc := @WindowProc;
   hInstance := Form;
   hbrBackground := COLOR_BTNFACE + ...;
   lpszClassName := 'TAPIxForm';
   hCursor := LoadCursor(0, IDC_ARROW);
   Region := CreateEllipticRgn(0, 0, 490, 300);
   SetWindowRgn(Handle, Region, True);
  end;
InitCommonControls;
RegisterClass(WinClass); 

Handle := CreateWindowEx(0, 'TAPIxForm', 'NAC',
WS_POPUP or WS_GROUP or
WS_VISIBLE or WS_MINIMIZEBOX or WS_MAXIMIZEBOX or WS_SYSMENU or WS_EX_CLIENTEDGE,
219, 116, 500, 366,
0, 0,
Form, nil);

hFont := CreateFont(
-11, 0, 0, 0, 0, 0, 0, 0,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH or FF_DONTCARE, 'MS Sans Serif');

  while(GetMessage(Msg, 0, 0, 0)) do
  begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
  end.
Подскажите что я делаю не так, в google и yandex ничего не нашёл
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025