首页
社区
课程
招聘
[旧帖] [求助]不断更新MessagBox的显示内容 0.00雪花
发表于: 2011-8-4 11:03 1457

[旧帖] [求助]不断更新MessagBox的显示内容 0.00雪花

2011-8-4 11:03
1457
我用GetLocalTime调用了系统时间后用MessageBox显示出来但是怎么更新这个时间?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 63
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先说个思路:
建立一个定时器,让它每秒执行下面的功能:
1、用FindWindow获取这个对话框的句柄
2、然后用EnumChildWindows枚举对话框下的控件
3、在这个EnumChildWindows的回调方法里,要用GetClassName来获取控件的类名。如果类名是“Static”就用SetWindowText修改

我不知道如何在C++里实现,不过C#就会,只能给个C#的版本了,不过这样容易理解些
Timer r_Timer;

void ShowMessageBox()
{
    r_Timer.Start();
    MessageBox.Show("时间", "标题", MessageBoxButtons.OK, MessageBoxIcon.Information); //注意这里的标题要和下面的一样
    r_Timer.Stop();
}
void r_Timer_Tick(object sender, EventArgs e)
{
    var rHandle = FindWindow(null, "标题"); //因为这里是根据标题来寻找窗口,所以这个标题要对应上面的
    if (rHandle != IntPtr.Zero)
        EnumChildWindows(rHandle, EnumChildren, IntPtr.Zero); 
}
void EnumChildren(IntPtr hWnd, IntPtr param) //回调方法
{
    //获取类名
    var rClassName = new StringBuilder(1024);
    GetClassName(hWnd, rClassName, 1024);
    
    if (rClassName.ToString() == "Static") //如果控件是标签
        SetWindowText(hWnd, DateTime.Now.ToLongTimeString()); //设置文本为目前时间
}
2011-8-4 12:09
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lia
3
先看二楼提供的内容了啊
2011-8-4 23:35
0
雪    币: 50
活跃值: (453)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这多费劲呀。不如显示自己的窗口多好。一切都在掌握之中
2011-8-5 15:09
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
但是这写的东西少了很多 可惜不会
2011-8-11 10:04
0
游客
登录 | 注册 方可回帖
返回
//