Browse Source

【软件版本】
V
【模块名称】

【问题原因】
修复显示不全的问题,GetSystemMetrics(SM_CYCAPTION)获取的值不准确,应该GetWindowsRect - GetClientRect
【修改描述】

【测试结果】

sat23 3 years ago
parent
commit
e3c5359386

+ 1 - 1
TestWizardTool/TestWizardTool/TestWizardTool.ini

@@ -4,6 +4,6 @@ Com=COM27
 ;信号集路径
 xmlpath=D:\SAT\resource\RCU\TW2
 ;使用的信号集;
-useSignal=DE80
+useSignal=09_ALL_50AF_IR_(HITACHI)
 ;旧的信号集路径;
 oldxmlpath=D:\SAT\resource\RCU\TW

+ 1 - 1
TestWizardTool/TestWizardTool/TestWizardTool.rc

@@ -98,7 +98,7 @@ BEGIN
     PUSHBUTTON      "Open",BTN_OPEN_COM,49,11,29,14
     COMBOBOX        COMBO_SINGALS,81,12,98,125,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
     PUSHBUTTON      "ReLoad",BTN_RELOAD_SIGNAL,181,11,29,14
-    GROUPBOX        "",IDC_STATIC_GROUP,7,2,206,29
+    GROUPBOX        "",IDC_STATIC_GROUP,7,2,206,50
 END
 
 

+ 9 - 4
TestWizardTool/TestWizardTool/TestWizardToolDlg.cpp

@@ -316,7 +316,8 @@ void CTestWizardToolDlg::AdjustLayout()
             sy += it->height + m_nRowSpacing;
         }
 
-        sx = m_nLeftMargin + (i % m_nCols) * nWidth + (i % m_nCols + 1) * m_nColSpacing;
+        //sx = m_nLeftMargin + (i % m_nCols) * nWidth + (i % m_nCols + 1) * m_nColSpacing;
+        sx = m_nLeftMargin + (i % m_nCols) * (nWidth + m_nColSpacing);
         it->pbtnInfo->pBTN->SetWindowPos(NULL, sx, sy, nWidth, it->height, SWP_NOACTIVATE | SWP_NOZORDER);
         i++;
     }
@@ -434,7 +435,7 @@ void CTestWizardToolDlg::LoadKeyInfo(std::vector<KeyInfo> &vtKeyInfo, std::strin
         }
 
         sx = (i % m_nCols) * it->width + (i % m_nCols + 1) * m_nColSpacing;
-        m_nDefaultWidth = m_nLeftMargin + m_nCols * it->width + m_nCols * m_nColSpacing;
+        //m_nDefaultWidth = m_nLeftMargin + m_nCols * it->width + m_nCols * m_nColSpacing;
 
         if ( !it->pbtnInfo->bCreated )
         {
@@ -472,10 +473,14 @@ void CTestWizardToolDlg::LoadKeyInfo(std::vector<KeyInfo> &vtKeyInfo, std::strin
     std::vector<KeyInfo>::iterator it = vtKeyInfo.begin();
     m_nDefaultHeight = m_rcGroup.bottom + 15 + (vtKeyInfo.size()/m_nCols + (vtKeyInfo.size()%m_nCols > 0 ? 1 : 0)) * (it->height + m_nRowSpacing);
     m_nDefaultHeight = m_nDefaultHeight < MINIMUM_WINDOWS_Y ? MINIMUM_WINDOWS_Y : m_nDefaultHeight;
-    m_nDefaultWidth = m_nDefaultWidth < MINIMUM_WINDOWS_X ? MINIMUM_WINDOWS_X : m_nDefaultWidth+30;
 
+    m_nDefaultWidth = m_nLeftMargin*2 + m_nCols * it->width + m_nCols * m_nColSpacing;
+    m_nDefaultWidth = m_nDefaultWidth < MINIMUM_WINDOWS_X ? MINIMUM_WINDOWS_X : m_nDefaultWidth;
+
+    // 获取标题栏高度;
+    int nCaptionHeight = 39; //GetSystemMetrics(SM_CYCAPTION);不准 GetWindowRect - GetClientRect
     // 设置窗口大小;
-    SetWindowPos(NULL, 0, 0, m_nDefaultWidth, m_nDefaultHeight + 23/*标题栏高度*/, SWP_NOMOVE);
+    SetWindowPos(NULL, 0, 0, m_nDefaultWidth, m_nDefaultHeight + nCaptionHeight, SWP_NOMOVE|SWP_FRAMECHANGED);   //SWP_NOACTIVATE | SWP_NOZORDER
 
     AdjustLayout();
 }