WEB开发网
开发学院软件开发VC 用VC++编写 网络计时计费工具 阅读

用VC++编写 网络计时计费工具

 2008-11-13 19:30:22 来源:WEB开发网   
核心提示: 首先实现程序最小化时在系统区显示图标的功能,为“确定”按钮对应的OnOk事件响应函数写入如下代码NOTIFYICONDATA ncnc.cbSize = sizeofNOTIFYICONDATAnc.hIcon = AfxGetApp->LoadIco

首先实现程序最小化时在系统区显示图标的功能。为“确定”按钮对应的OnOk事件响应函数写入如下代码

  NOTIFYICONDATA nc
  nc.cbSize = sizeofNOTIFYICONDATA
  nc.hIcon = AfxGetApp->LoadIconIDR_MAINFRAME
  nc.hWnd = m_hWnd
  lstrcpync.szTip,″hello″
  nc.uCallbackMessage = WM_NC//自定义的消息
  nc.uID = IDC_NC
  nc.uFlags = NIF_TIP | NIF_MESSAGE | NIF_ICON
  Shell_NotifyIconNIM_ADD,&nc //在托盘区显示IDR_MAINFRAME对应的图标
  ShowWindowfalse//隐藏窗口
  然后在NetTimerDlg.cpp的文件头部写入
  #define WM_NC1001 
#define IDC_NC 1002

以上代码中关键的函数是Shell_NotifyIcon,第一个参数表示你要增加、修改还是删除图标;第二个参数是一个NOTIFYICONDATA结构变量对应的地址,它的主要作用是提供必要的信息,使托盘区图标能够正常工作。需要注意的一点是一定要把原先默认的CButtonOnOk语句从函数里删除否则程序会在每次按下回车之后就自动退出。

下面代码是双击图标时的响应函数

  void CNetTimerDlgOnNcWPARAM wParam,LPARAM lParam
   switchlParam
   case WM_LBUTTONDBLCLK//如果是双击图标
  ShowWindowtrue//显示窗口
  break
  case WM_MOUSEMOVE//如果鼠标移动到了图标对应的矩形区域
  NOTIFYICONDATA nc //以下代码用来显示当前连接时间和上网费用,如果没有连接则显示“未连接”
  nc.cbSize = sizeofNOTIFYICONDATA
  nc.hIcon = AfxGetApp->LoadIconIDR_MAINFRAME
  nc.hWnd = m_hWnd
  nc.uCallbackMessage = WM_NC
  nc.uFlags = NIF_MESSAGE | NIF_TIP | NIF_ICON
  nc.uID = IDC_NC
  ifm_bConnected
  lstrcpync.szTip,m_strTime + ″n″ + m_strFee
  else
  lstrcpync.szTip,″未连接″
  Shell_NotifyIconNIM_MODIFY,&nc
  break

Tags:VC 编写 网络

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接