请教:如何让程序自动点击 ShowMessage("Hello") 提示框
我在程序代码中添加了一个必须的提示框 ShowMessage("Hello"), 因为有时候需要查看,但是如果在使用的时候我暂时不在电脑旁边,需要程序自动设置一个时限,超过该时限就自动点击 ShowMessage("Hello"),以便程序继续运行,我该如何实现 问题点数:100、回复次数:17Top
1 楼cczlp(不惑)回复于 2005-03-03 12:53:49 得分 10
HWND hwnd = FindWindow("xxx", "xxxx");
PostMessage(hwnd, WM_CLOSE, NULL, NULL);Top
2 楼mrarong(my name is 007)回复于 2005-03-03 13:02:45 得分 0
To: cczlp
对不起,我是刚入道,请问这两个函数怎么使用
比如我的函数是:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ShowMessage("Hello");
}
该如何处理?Top
3 楼Maconel(Maconel)回复于 2005-03-03 13:39:08 得分 10
ShowMessage是模式对话框,因此你的程序执行到这里就会停下来,一直等函数返回了,也就是窗体关闭了,才能继续执行其他代码,因此自动关闭的代码就要放在一个线程里去执行。
所以建议你一个简单点的方法,不要用ShowMessage,而是自己来做一个窗体,实现ShowMessage的功能,时间到了,新窗体自动关掉就是了,甚至还可以加上倒计时的功能。Top
4 楼constantine(飘遥的安吉儿)回复于 2005-03-03 13:40:38 得分 10
HWND FindWindow(
LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);Top
5 楼constantine(飘遥的安吉儿)回复于 2005-03-03 13:43:28 得分 0
其实大M的建议很不错,Top
6 楼milkwayhong(自在)回复于 2005-03-03 13:58:07 得分 20
这样用吧:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//ShowMessage("Hello");
MessageDlg("Hello",mtInformation, TMsgDlgButtons() << mbOK, 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
HWND hwnd = FindWindow(NULL, "Information");
PostMessage(hwnd, WM_CLOSE, NULL, NULL);
}Top
7 楼chiengod(钱神爷)回复于 2005-03-03 14:30:44 得分 0
各位的方法都不错,就不多说什么了!Top
8 楼jekeywood(各回各家,各找各妈!)回复于 2005-03-03 17:08:57 得分 5
通常解决问题都不止一个方法.见人见智,大家说得都很好啊.值得学习.
Top
9 楼samchoy(老蔡)回复于 2005-03-03 22:01:43 得分 0
个人赞成 Maconel(Maconel) 的方法Top
10 楼hsanyu(黄老邪)回复于 2005-03-03 23:15:30 得分 0
Maconel(Maconel) 的回答好Top
11 楼JedyWoody(学,然后知不足)回复于 2005-03-05 13:25:05 得分 0
jekeywood???
差点认成我的别名Top
12 楼blow_jj(阿俊)回复于 2005-03-06 12:02:51 得分 10
用SendMessage或者PostMessage都是可以的
用Hook钩住弹出窗体也是可以的
大M的说法也可以Top
13 楼dgyanyong(幸运飞龙)回复于 2005-03-07 12:02:44 得分 10
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Button1->Click();
}
加一个Timer 控件 时间的问题就解决了Top
14 楼sephil(NAILY Soft 【哈里波特大】)回复于 2005-03-07 13:35:22 得分 10
用CreateMessageDialog吧
还可以得到TForm*,够用了吧Top
15 楼rouqing(*冰雨&双子座奇缘*)回复于 2005-03-07 15:11:42 得分 10
SendMessage(...Handle,BM_CLICK,0,0);Top
16 楼wg961423(臭虫)回复于 2005-03-07 15:50:02 得分 0
个人赞成 Maconel(Maconel) 的方法Top
17 楼toby(宝宝)回复于 2005-03-07 17:45:32 得分 5
可以参考FoxMail中的做法,自己写一个窗体,然后用TTimer关闭。Top




