窗体不能关闭(50分)

  • 主题发起人 主题发起人 benny_lxc
  • 开始时间 开始时间
B

benny_lxc

Unregistered / Unconfirmed
GUEST, unregistred user!
本人正在写一个发短消息的程序,发送过程写在一个过程里面,并在过程里作了判断,希望
在不能与短信中心建立连接时给出一个提示信息,然后关闭窗体,但是程序在给出不能建
立连接的提示信息后却不能关闭窗体,分别试了Close,Free,Destroy都不行,这是为什么?
单步调试时发现到Close处还继续往下执行,是不是还有其它的进程在执行就关闭不了?
怎么样才能强行将窗体关闭?
 
SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);

向窗口发送WM_CLOSE消息应该是可以的,如果不行可能是因为窗口停止响应,可用如下方法:
...
DWORD dwThreadId,dwProcessId;
HANDLE hProcess;
dwThreadId = GetWindowThreadProcessId(hWnd,&dwProcessId);
hProcess = OpenProcess(PROCESS_TERMINATE,FALSE,dwProcessId);
if(hProcess==NULL) return FALSE;
// so bad !
TerminateProcess(hProcess);
...
不过,这不是一个好方法,以为这样终止一个进程,有时会产生意想不到的后果。
 
這樣我想以上位仁兄的幫助就行了..???
能把過程放上來嗎?
 
你的接收过程是不是阻塞了?
用异步I/O把!
 
好像必须把连接断开以后才行,否则,估计要用ctrl+alt+del了。呵呵
 
谢谢yy2001兄,按照仁兄的建议,用第二方法才将问题解决了,虽然有点粗暴,但毕竟是一个
解决的办法!
 

Similar threads

后退
顶部