//说明:窗体屏蔽ESC只需要3
按钮添加信息提示则要1、2、3都有
1、
BOOL CDlgTEST::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
...
InitContextHelp();
...
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
2、
void CDlgTEST::InitContextHelp()
{
m_cShowHelp.Create(this);
m_cShowHelp.AddTool(GetDlgItem(IDC_BTN_SEARCH),"消息提示1");
m_cShowHelp.AddTool(GetDlgItem(IDC_BTN_CONV),"消息提示2");
m_cShowHelp.AddTool(GetDlgItem(IDC_BTN_TEST),"消息提示3");
m_cShowHelp.AddTool(GetDlgItem(IDC_START),"消息提示4");
m_cShowHelp.AddTool(GetDlgItem(IDC_BTN_RESTART),"消息提示5");
m_cShowHelp.SetDelayTime(TTDT_INITIAL,200); //设置延迟
m_cShowHelp.SetTipTextColor( RGB(0,0,255) ); //设置提示文本的颜色
m_cShowHelp.SetTipBkColor( RGB(255,255,208)); //设置提示框的背景颜色
m_cShowHelp.Activate(TRUE); //设置是否启用提示
}
3、
//重载虚函数:加入处理代码
BOOL CDlgTEST::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
//监测按键事件
if(pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN: //屏蔽回车
case VK_ESCAPE: //屏蔽ESC
return true;
}
}
//监测鼠标移动
if (pMsg->message == WM_MOUSEMOVE)
{
m_cShowHelp.RelayEvent(pMsg); //启用
}
return CDialog::PreTranslateMessage(pMsg);
}