Skocz do zawartości

Global Class


Law

Recommended Posts

Piasiu: z tego "można było używać potem w innych aplikacjach" wynika ze chodzi mu chyba o wlasna kontrolke jesli tak to podaje co nalezalo by zrobic:

1. Stworzyc DLL ke
2. tworzysz swoja klase kontrolki
3. tworzysz funkcje inicjujaca np InitMyCustomControl a w niej
a. Sprawdzasz czy jest juz zarejestrowana (GetClassInfoEx)
b. wypelniasz strukture WNDCLASSEX
c. Jesli nie rejestrujesz (RegisterClassEx)
4. w DllMain przy dolaczaniu sie procesu do DLLki robisz inicjalizacje

if (dwReason == DLL_PROCESS_ATTACH)
   InitMyCustomControl();

W aplikacji klienckiej zaladuj swoj dll (LoadLibrary) i koniec :]

Zycze powodzenia

Link do komentarza
Udostępnij na innych stronach

Naprawdę nie ma nikogo, kto potrafiłby by to zrobić? Rzucę trochę kodu:

Randomize;
  NewClass.style:=CS_GLOBALCLASS;
  NewClass.lpfnWndProc:=@WindowProc;
  NewClass.hInstance:=HInstance;
  NewClass.hIcon:=LoadIcon(0, IDI_APPLICATION);
  NewClass.hCursor:=LoadCursor(0, IDC_ARROW);
  NewClass.hbrBackground:=COLOR_WINDOW;
  NewClass.lpszClassName:='zMainWindow';
  RegisterClass(NewClass);
  NewWindow:=CreateWindow(NewClass.lpszClassName, Title, WS_VISIBLE or WS_SYSMENU,
                          0, 0, Width, Height, 0, 0, HInstance, nil);
  Result:=NewWindow;
  while GetMessage(NewMsg, 0, 0, 0) do
  begin
    TranslateMessage(NewMsg);
    DispatchMessage(NewMsg);
  end;

To jest kod funkcji szCreateWindow, ma za zadanie zarejestować klasę i stworzyć okno.

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...