Skocz do zawartości

Recommended Posts

Napisano

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

Napisano

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.

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...