首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > 服务器相关 > 程序运行后,立即隐藏到系统栏内 ( 期待更好的解决办法 )。
【标  题】:程序运行后,立即隐藏到系统栏内 ( 期待更好的解决办法 )。
【关键字】:
【来  源】:http://www.cnitblog.com/_skyfly/archive/2006/06/22/12699.html

程序运行后,立即隐藏到系统栏内 ( 期待更好的解决办法 )。

我写了一个程序,每N秒,定时对数据库进行刷新,以修正数据库内的一些数据。我把它放在启动菜单栏里,希望一开机就运行。同时希望程序一运行就隐藏到系统栏,这样不影响我使用其它程序。

本来我是想直接在CMainDlg::OnInitDialog中用ShowWindow(SW_HIDE);的,但是很不幸,程序窗口依然显示。在网上查找一段时间以后没有找到解决办法,只好自行摸索了。

最后我是通过延时发隐藏窗口请求来解决的(先显示窗口,等待一段时间,再隐藏窗口)。我想主窗口在CMainDlg::OnInitDialog中不能隐藏的原因,是该函数运行后,还有一些事件刷新了主窗口,所以我通过延时等待所有的主窗口事件处理完成以后再进行隐藏。

在CMainDlg::OnInitDialog中:

// ?设置定时间隔
SetTimer(IDT_TIMER_TOSYSTRAY,DELAY_TIME * 1000 );

在CMainDlg::OnTimer中:
switch(wParam)
{
case?IDT_TIMER_TOSYSTRAY:
????
//?隐藏窗口到系统栏
????KillTimer(IDT_TIMER_TOSYSTRAY);
????SendMessage(WM_CLOSE);
????
break;
case?IDT_TIMER_REFRESH:
????
break;
}

真正的处理函数:
LRESULT?CMainDlg::OnClose(UINT?/*uMsg*/,?WPARAM?/*wParam*/,?LPARAM?/*lParam*/,?BOOL&?/*bHandled*/)
{
????
//?TODO:?Add?your?message?handler?code?here?and/or?call?default
????if?(IsWindowVisible())
????????ShowWindow(SW_HIDE);
????
return?0;
}
龙腾网络电视试用版五分钟限制破解:【上一篇】
关于正则表达式的贪婪与非贪婪模式:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • FreeBSD读书笔记—5存储器管理—5.2FreeBSD虚拟存储器系统概述
  • UML 简单描述
  • 用C语言描述数据结构
  • 支持中文的无组件文件上传:示例
  • zz学习嵌入式Linux系统的笔记和体会
  • ip ospf priority
  • 程序员的10种级别
  • Data Conversions
  • Fireworks4.0教程(八、自动操作)
  • 利用PHP实现与ASP Banner组件相似的类
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.