如何编写能自动弹出的窗口?(100分)

  • 主题发起人 主题发起人 skywalker2000
  • 开始时间 开始时间
S

skywalker2000

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在程序中响应消息使本来最小化的窗口自动弹出恢复?请专家赐教,谢谢!!
 
restore 呀。
 
用Api函数OpenIcon,它可以恢复一个最小化的程序,并将其激活。
VB声明
Declare Function OpenIcon Lib "user32" Alias "OpenIcon" (ByVal hwnd As Long) As Long
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,欲恢复的窗口
注解
针对vb窗体,应使用vb的WindowState属性


 
发消息:
SendMessage(Handle,WM_SysCommand,Sc_Maximize,0);
Handle:为恢复窗体的句柄
 
定义一自定义消息,并定义以下消息处理函数:
function NewWndProc(Handle: HWND; Msg: Integer; wParam, lParam: Longint):
Longint; stdcall;
begin

{ If this is the registered message... }
if Msg = MessageID then
begin
{ if main form is minimized, normalize it }
{ set focus to application }
if IsIconic(Application.Handle) then
begin
Application.MainForm.WindowState := wsNormal;
Application.Restore;
end;
SetForegroundWindow(Application.MainForm.Handle);
Result := 0;
end
{ Otherwise, pass message on to old window proc }
else
Result := CallWindowProc(WProc, Handle, Msg, wParam, lParam);
end;

然后在需要弹出窗口时,发送自定义消息;
 
SendMessage(Handle,WM_SysCommand,sc_restore,0);
 
多人接受答案了。
 
后退
顶部