posts - 131, comments - 12, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
在VC中,也常常为一些图片按钮添加一些功能提示。
下面讲解实现过程:
该功能的实现主要是用CToolTipCtrl类。该类在VC  msdn中有详细说明。
首先在对话框的头文件中加入初始化语句:public:下,加入:CToolTipCtrl    m_Mytip;
然后在初始化对话框函数中加入:
m_Mytip.Create(this);  
m_Mytip.AddTool( GetDlgItem(IDC_BUTTON), "你想要添加的提示信息" ); //IDC_BUTTON为你要添加提示信息的按钮的ID
m_Mytip.SetDelayTime(200); //设置延迟
m_Mytip.SetTipTextColor( #0000ff ); //设置提示文本的颜色
m_Mytip.SetTipBkColor( #ffffff); //设置提示框的背景颜色
m_Mytip.Activate(TRUE); //设置是否启用提示

然后在类向导中添加PreTranslateMessage消息响应函数
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
  if(pMsg->message==WM_MOUSEMOVE)
  m_Mytip.RelayEvent(pMsg);
return CDialog::PreTranslateMessage(pMsg);
}
注:如果要为多个按钮添加功能提示只需在
m_Mytip.AddTool( GetDlgItem(IDC_BUTTON), "你想要添加的提示信息" );
的下面再加上类似语句,如
m_Mytip.AddTool( GetDlgItem(IDC_BUTTON1), "你想要添加的提示信息1" );
m_Mytip.AddTool( GetDlgItem(IDC_BUTTON2), "你想要添加的提示信息2" );
。。。。。。。。


例子:

声明:
CToolTipCtrl m_Tip;

初始化:
BOOL C***Dlg::OnInitDialog()
{
省略部分。。。。。。。。。。
//按钮浮动提示
m_Tip.Create(this);
m_Tip.AddTool(&m_BtnPlay,"播放");
m_Tip.SetDelayTime(100);
m_Tip.Activate(TRUE);
}
类视图中重写:
BOOL C****Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
m_Tip.RelayEvent(pMsg);
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理