Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Form aus DLL wird nur teilweise angezeigt

  Alt 12. Mai 2005, 09:24
Hallo allerseits,

meine DLL-Forms halten mich wiedermal beschaeftigt. Ich hab jetzt das Ganze so umgestellt, dass ich nur mehr ein Handle eines Forms erwarte, und nicht ein TForm-Objekt (damit auch C++-DLLs verwendet werden koennen).
Nun habe ich aber das Problem, dass nicht alles angezeigt wird. Hier mal ein paar Codeschnippsel.
In der DLL geschieht das:
Delphi-Quellcode:
function GetMainForm: HWND; stdcall;
begin
   Result := TfrmDLL.Create(nil).Handle;
end;
Geladen wird so:
Delphi-Quellcode:
Module.DLLFormProc := GetProcAddress(Module.DLLHandle, PChar('GetMainForm'));
//...
Module.ModuleFormHandle := TGetDLLFrm(Module.DLLFormProc);

SetParent(Module.ModuleFormHandle, ModuleParentHandle);
WindowStyle := GetWindowLong(Module.ModuleFormHandle, GWL_STYLE);
WindowStyle := WindowStyle or WS_CHILD;
WindowStyle := WindowStyle and not WS_BORDER;
WindowStyle := WindowStyle and not WS_THICKFRAME;
WindowStyle := WindowStyle and not WS_CAPTION;
WindowStyle := WindowStyle or WS_MAXIMIZE;
WindowStyle := WindowStyle and not WS_SYSMENU;
SetWindowLong(Module.ModuleFormHandle, GWL_STYLE, WindowStyle);
SetWindowPos(Module.ModuleFormHandle, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE or SWP_SHOWWINDOW);
ShowWindow(Module.ModuleFormHandle, SW_HIDE);
Anschliessend zeige ich irgendwo das Form an, und zwar mit ShowWindow(TTBXItem(Sender).Tag, SW_SHOW); Das Handle des Forms wird ins Tag des TBX-Buttons geschrieben, welcher die Anzeige regelt. Das Problem ist hierbei nicht, dass das Form nicht angezeigt wird, sondern dass nicht alles angezeigt wird. Ich hab 3 Labels, 1 StaticText, ein Memo und eine TBXToolbar auf dem Form, aber ich sehe nur die 3 Labels. Muss ich noch irgendwelche Messages ans Form schicken, damit es sich neu zeichnet oder so? Waere nett wenn mir jemand weiterhelfen koennte.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat