关于测试工程提示信息功能的说明

来源:互联网 发布:潭州seo研究中心 编辑:程序博客网 时间:2024/05/16 16:14

关于测试工程提示信息功能的说明

该功能的实现完全依赖于CPPToolTip类,该类可以在 http://www.codeproject.com/ 上下载到。具体说明见该网站的介绍。
本程序所需要的功能是点击工具栏的“属性”按钮之后,屏幕右下角弹出测试工程的详细属性。在屏幕任何地方单击鼠标左键之后,信息提示框消失。
因此,本程序没有直接按照codeproject上的介绍那样使用CPPToolTip类,而是当点击“属性”按钮之后,调用ShowHelpTooltip函数。
在ShowHelpTooltip函数的重载版本void ShowHelpTooltip (LPPOINT pt, LPCTSTR lpszString, HICON hIcon = NULL)中,lpszString支持HTML文本,因此可以利用HTML控制显示信息的格式。

弹出的信息提示框如下图所示。

信息提示框

源代码如下:

 

//// MainFrm.h中定义
public:
    CPPToolTip m_toolTip;    
// 显示测试属性的提示框
//// MainFrm.cpp中
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
       ……
    m_toolTip.Create(
this);
    
//Adds tooltip for toolbar
    m_toolTip.AddToolBar(&m_ProperBar);
       ……
}


//    显示测试工程的属性
void CEMCView::OnEditProper()
{
    
// TODO: 在此添加命令处理程序代码
    if(m_bIsWorking && !m_bOldVersion)
    
{
        CEMCDoc
* pDoc=GetDocument();

        CMainFrame
* pmfrm=(CMainFrame*)AfxGetMainWnd();
        pmfrm
->m_toolTip.SetDirection(PPTOOLTIP_BOTTOMEDGE_CENTER);
        pmfrm
->m_toolTip.AddTool(this,L"测试文件属性");
//        pmfrm->m_toolTip.SetColorBk(RGB(0,0,255),RGB(192,192,192));

        CPoint pt;
        CRect rc;  
        GetClientRect(
&rc);
        ClientToScreen(
&rc);
        pt.x
=rc.right;
        pt.y
=rc.bottom;    // pt为客户区窗口右下角对应的点

        
//    利用HTML控制提示框的显示格式
        
// 显示测试工程属性
        CString info=L"";
        CString str
=L"<center><h2><font face="黑体" color=red>测试工程属性</font></h2><br><hr color=blue></center><br>";
        info
+=str;
        str.Format(L
"<font size=14>测试类型:</font>");
        info
+=str;
        
if(pDoc->m_pTestPrj->m_TestCon==CE102)
        
{
            str.Format(L
"<span class=cpp-comment>CE102测试</span>");
        }

        
else if(pDoc->m_pTestPrj->m_TestCon==RE102)
        
{
            str.Format(L
"<span class=cpp-comment>RE102测试</span>");
        }

        info
+=str;
        str.Format(L
"    <font size=14>测试设备:</font>");
        info
+=str;
        
switch(pDoc->m_pTestPrj->m_TestEquip)
        
{
        
case TEST_EQUIP_NONE:
            str.Format(L
"<span class=cpp-comment>无</span><br>");
            
break;
        
case CUR_PROBE:
            str.Format(L
"<span class=cpp-comment>电流探头</span><br>");
            
break;
        
case ET_G:
            str.Format(L
"<span class=cpp-comment>ET-G</span><br>");
            
break;
        
case ET_Q:
            str.Format(L
"<span class=cpp-comment>ET-Q</span><br>");
            
break;
        
case HT_1:
            str.Format(L
"<span class=cpp-comment>HT-1</span><br>");
            
break;
        
case HT_6:
            str.Format(L
"<span class=cpp-comment>HT-6</span><br>");
            
break;
        
case LISN:
            str.Format(L
"<span class=cpp-comment>LISN</span><br>");
            
break;
        
case EZ_17:
            str.Format(L
"<span class=cpp-comment>EZ-17</span><br>");
            
break;
        }

        info
+=str;
        str.Format(L
"<font size=14>起始频率:</font>");
        info
+=str;
        str.Format(L
"<span class=cpp-comment>%5.2fMHz</span>",pDoc->m_pTestPrj->m_StartFreq);
        info
+=str;
        str.Format(L
"    <font size=14>终止频率:</font>");
        info
+=str;
        str.Format(L
"<span class=cpp-comment>%5.2fMHz</span><br>",pDoc->m_pTestPrj->m_StopFreq);
        info
+=str;    
        str.Format(L
"<font size=14>EUT电压:</font>");
        info
+=str;
        
if(pDoc->m_pTestPrj->m_TestCon==RE102)
            str.Format(L
"<span class=cpp-comment>N/A</span>    ");
        
else
            str.Format(L
"<span class=cpp-comment>%5.2fV</span>",pDoc->m_pTestPrj->m_EUTVolt);
        info
+=str;
        str.Format(L
"    <font size=14>待测设备:</font>");
        info
+=str;    
        
if(pDoc->m_pTestPrj->m_EUTName!=L"")
            str.Format(L
"<span class=cpp-comment>%s</span><br>",pDoc->m_pTestPrj->m_EUTName);
        
else
            str.Format(L
"<span class=cpp-comment>N/A</span><br>");
        info
+=str;
        str.Format(L
"<font size=14>测试模式:</font>");
        info
+=str;
        
if(pDoc->m_pTestPrj->m_TestCon==RE102)
            str.Format(L
"    <span class=cpp-comment>N/A</span>    ");
        
else
        
{
            
switch(pDoc->m_pTestPrj->m_TestMode)
            
{
            
case TEST_MODE_NONE:
                str.Format(L
"<span class=cpp-comment>无</span>    ");
                
break;
            
case DIFFER:
                str.Format(L
"<span class=cpp-comment>差模</span>");
                
break;
            
case COMMON:
                str.Format(L
"<span class=cpp-comment>共模</span>");
                
break;
            }

        }

        info
+=str;
        str.Format(L
"    <font size=14>测试距离:</font>");
        info
+=str;
        
if(pDoc->m_pTestPrj->m_TestCon==CE102)
            str.Format(L
"<span class=cpp-comment>N/A</span><br>");
        
else
            str.Format(L
"<span class=cpp-comment>%5.2fm</span><br>",pDoc->m_pTestPrj->m_TestDist);
        info
+=str;

        
//    显示频谱仪设置
        str.Format(L"<br><center><h2><font face="黑体" color=red>频谱仪设置</font></h2><br><hr color=blue></center><br>");
        info
+=str;
        str.Format(L
"<font size=14>RBW     :</font>");
        info
+=str;
        
if(pDoc->m_pTestPrj->m_TestBand==9)
            str.Format(L
"<span class=cpp-comment>9KHz</span>    ");
        
else if(pDoc->m_pTestPrj->m_TestBand==120)
            str.Format(L
"<span class=cpp-comment>120KHz</span>");
        
else
            str.Format(L
"<span class=cpp-comment>AUTO</span>    ");
        info
+=str;
        str.Format(L
"    <font size=14>显示模式:</font>");
        info
+=str;
        
switch(pDoc->m_pTestPrj->m_DispPattern)
        
{
        
case SAMPLE:
            str.Format(L
"<span class=cpp-comment>SAMPLE</span><br>");
            
break;
        
case MIN_HOLD:
            str.Format(L
"<span class=cpp-comment>MIN.HOLD</span><br>");
            
break;
        
case MAX_HOLD:
            str.Format(L
"<span class=cpp-comment>MAX.HOLD</span><br>");
            
break;
        }

        info
+=str;
        str.Format(L
"<font size=14>内部衰减:</font>");
        info
+=str;
        str.Format(L
"<span class=cpp-comment>%ddB</span>    ",pDoc->m_pTestPrj->m_InnerAttenuator);
        info
+=str;
        str.Format(L
"    <font size=14>外部衰减:</font>");
        info
+=str;
        str.Format(L
"<span class=cpp-comment>%ddB</span><br>",pDoc->m_pTestPrj->m_OuterAttenuator);
        info
+=str;

        pmfrm
->m_toolTip.ShowHelpTooltip(&pt,info);
    }

}

 

原创粉丝点击