在dll的mdichild中加了第3方控制元件后,比如cxPageControl,執行 Application.CreateForm(MDIChildFormClass,Reference),
最后會報地址錯誤,跟蹤后在視窗程序例外,使用的是delphi5。
procedure TMainForm.ClientWndProc(var Message: TMessage);
var
h : HWND;
oldTag : Integer;
procedure Default;
begin
with Message do
Result := CallWindowProc(FDefClientProc, ClientHandle, Msg, wParam, lParam);
end;
begin
with Message do
if ( Msg = WM_MDICASCADE ) or ( Msg = WM_MDITILE )then
begin
h := SendMessage( ClientHandle, WM_MDIGETACTIVE, 0, 0 );
ShowWindow( IDEForm.Handle, SW_HIDE );
oldTag := IDEForm.Tag;
IDEForm.Tag := NOSIZETAG;
Default;
IDEForm.Tag := oldTag;
ShowWindow( IDEForm.Handle, SW_SHOW );
SetWindowPos( IDEForm.Handle, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOSIZE or SWP_NOMOVE );
SendMessage( ClientHandle, WM_MDIACTIVATE, Word( h ), 0 );
end
else if Msg = WM_MDIDESTROY then
begin
DelFromWindowList(wParam);
Default;
end
else Default;
end;
uj5u.com熱心網友回復:
有沒有傳遞dll的Application.Handle := 你的主工程的Application.Handleuj5u.com熱心網友回復:
MidForm只能掛直接在MainForm上,如果掛在MainForm之下的容器中,就會出現類似的錯誤。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/88795.html
標籤:VCL組件開發及應用
