如何关我的WINDOW(50分)

  • 主题发起人 主题发起人 xzg163
  • 开始时间 开始时间
X

xzg163

Unregistered / Unconfirmed
GUEST, unregistred user!

1。我的程序主要是用WINSOCKET来进行对话,采用SOCKET 的C/S通讯方式,
2。在客户端,我把程序隐含起来(FORM HIDE),同时利用SHOWWINDOW函数把该
窗口在任务栏的图标也去掉,只在任务栏右侧(显示输入法的地方)显示一个小图标。
3。客户端的程序由于具有隐蔽的目的,所以没有直接对该程序关闭的操作,也就是
说,除了用结束任务的方法外,该程序没有被正常关闭的手段,这些特点是我自己
要求要达到的。而且也一切正常。
4,问题出现在哪里?那就是我要关闭WINDOW,由于上述程序的存在,使得WINDOW
不能关闭,我也不知道问题出在那里,只希望各位高手能指点问题之所在。有什么
方法可以实现正常化。
(我已经在WINDOW API版贴了我的问题,如果谁给出满意的回答,把那里的50分也给他(她))
 
你是改写了close或者closequery事件?
 
你是否把程序放到Systray中,如果是的话,我好像关闭系统,程序也相应退出,
不会有什么问题。
 
在CLOSEQUERY处我没有做任何的变动


我在程序中比较特别的地方,就是把程序隐含并在右下方生成图标的语句如下:
首先定义:CONST MY_MESSAGE:=WM_USER+100;

PROCEDURE Tform.oncreate.....;//在CREATE 事件
VAR nid:TNotifyIconData;
begin
nid.cbsize:=sizeof(nid);
nid.Wnd:=Handle;
nid.uID:=2180570;
nid.hIcon:=Apllication.Icon.Handle;
nid.szTip:='信息发布';
nid.uCallbackMessage:=MY_MESSAGE;
nid.uFlags:=NIF_ICOn or NIF_TIP or NIF_MESSAGE;
IF NOT SHELL_NotifyIcon(NIM_ADD,@nid) then
begin
//
end;
showwindow(Findwindow(nid,@Application.Title[1]),sw_hide);
//其他普通内容
end;
 
估计你使用了delphi带来的 NM 的tcp/ip控件?(TNM...)
如果是, 那控件会阻止windows退出。
推荐ics控件:http://www.rtfm.be/fpiette/indexuk.htm
 
我的问题已经自己解决,由于没有人给出答案,而且我已经在WINDOW API版
付出分数,再这里,我不想再付出,毕竟我自己的分数也少得可怜。谢谢大家。
 
没事的,可能是因为大家都没法解决,
 
多人接受答案了。
 
后退
顶部