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

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

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

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

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

源代码如下:

关于测试工程提示信息功能的说明关于测试工程提示信息功能的说明/**/ /// /MainFrm.h中定义
关于测试工程提示信息功能的说明public :
关于测试工程提示信息功能的说明 CPPToolTipm_toolTip;
// 显示测试属性的提示框
关于测试工程提示信息功能的说明关于测试工程提示信息功能的说明
/**/ /// /MainFrm.cpp中
关于测试工程提示信息功能的说明int CMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct)
关于测试工程提示信息功能的说明关于测试工程提示信息功能的说明
... {
关于测试工程提示信息功能的说明 ……
关于测试工程提示信息功能的说明 m_toolTip.Create(
this );
关于测试工程提示信息功能的说明
// Addstooltipfortoolbar
关于测试工程提示信息功能的说明
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));
关于测试工程提示信息功能的说明

关于测试工程提示信息功能的说明 CPointpt;
关于测试工程提示信息功能的说明 CRectrc;
关于测试工程提示信息功能的说明 GetClientRect(
& rc);
关于测试工程提示信息功能的说明 ClientToScreen(
& rc);
关于测试工程提示信息功能的说明 pt.x
= rc.right;
关于测试工程提示信息功能的说明 pt.y
= rc.bottom; // pt为客户区窗口右下角对应的点
关于测试工程提示信息功能的说明
关于测试工程提示信息功能的说明
// 利用HTML控制提示框的显示格式
关于测试工程提示信息功能的说明
// 显示测试工程属性
关于测试工程提示信息功能的说明
CStringinfo = L "" ;
关于测试工程提示信息功能的说明 CStringstr
= L " <center><h2><fontface="黑体"color=red>测试工程属性</font></h2><br><hrcolor=blue></center><br> " ;
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明 str.Format(L
" <fontsize=14>测试类型:</font> " );
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明
if (pDoc -> m_pTestPrj -> m_TestCon == CE102)
关于测试工程提示信息功能的说明关于测试工程提示信息功能的说明
... {
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>CE102测试</span> " );
关于测试工程提示信息功能的说明 }

关于测试工程提示信息功能的说明
else if (pDoc -> m_pTestPrj -> m_TestCon == RE102)
关于测试工程提示信息功能的说明关于测试工程提示信息功能的说明
... {
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>RE102测试</span> " );
关于测试工程提示信息功能的说明 }

关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明 str.Format(L
" <fontsize=14>测试设备:</font> " );
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明
switch (pDoc -> m_pTestPrj -> m_TestEquip)
关于测试工程提示信息功能的说明关于测试工程提示信息功能的说明
... {
关于测试工程提示信息功能的说明
case TEST_EQUIP_NONE:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>无</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明
case CUR_PROBE:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>电流探头</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明
case ET_G:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>ET-G</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明
case ET_Q:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>ET-Q</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明
case HT_1:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>HT-1</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明
case HT_6:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>HT-6</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明
case LISN:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>LISN</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明
case EZ_17:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>EZ-17</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明 }

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

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

关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明 str.Format(L
" <fontsize=14>测试距离:</font> " );
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明
if (pDoc -> m_pTestPrj -> m_TestCon == CE102)
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>N/A</span><br> " );
关于测试工程提示信息功能的说明
else
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>%5.2fm</span><br> " ,pDoc -> m_pTestPrj -> m_TestDist);
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明
关于测试工程提示信息功能的说明
// 显示频谱仪设置
关于测试工程提示信息功能的说明
str.Format(L " <br><center><h2><fontface="黑体"color=red>频谱仪设置</font></h2><br><hrcolor=blue></center><br> " );
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明 str.Format(L
" <fontsize=14>RBW:</font> " );
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明
if (pDoc -> m_pTestPrj -> m_TestBand == 9 )
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>9KHz</span> " );
关于测试工程提示信息功能的说明
else if (pDoc -> m_pTestPrj -> m_TestBand == 120 )
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>120KHz</span> " );
关于测试工程提示信息功能的说明
else
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>AUTO</span> " );
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明 str.Format(L
" <fontsize=14>显示模式:</font> " );
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明
switch (pDoc -> m_pTestPrj -> m_DispPattern)
关于测试工程提示信息功能的说明关于测试工程提示信息功能的说明
... {
关于测试工程提示信息功能的说明
case SAMPLE:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>SAMPLE</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明
case MIN_HOLD:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>MIN.HOLD</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明
case MAX_HOLD:
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>MAX.HOLD</span><br> " );
关于测试工程提示信息功能的说明
break ;
关于测试工程提示信息功能的说明 }

关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明 str.Format(L
" <fontsize=14>内部衰减:</font> " );
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>%ddB</span> " ,pDoc -> m_pTestPrj -> m_InnerAttenuator);
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明 str.Format(L
" <fontsize=14>外部衰减:</font> " );
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明 str.Format(L
" <spanclass=cpp-comment>%ddB</span><br> " ,pDoc -> m_pTestPrj -> m_OuterAttenuator);
关于测试工程提示信息功能的说明 info
+= str;
关于测试工程提示信息功能的说明
关于测试工程提示信息功能的说明 pmfrm
-> m_toolTip.ShowHelpTooltip( & pt,info);
关于测试工程提示信息功能的说明 }

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