From 24e3d5124ed62ebd613ba883a366ea3461c9dd17 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 11 三月 2025 11:30:13 +0800
Subject: [PATCH] 1.CMFCPropertyGridCtrl控件调整,使单元项可选,不可编辑。
---
SourceCode/Bond/Servo/CPanelAttributes.cpp | 32 ++++++++++++++++++--------------
1 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/SourceCode/Bond/Servo/CPanelAttributes.cpp b/SourceCode/Bond/Servo/CPanelAttributes.cpp
index e36312d..1c33774 100644
--- a/SourceCode/Bond/Servo/CPanelAttributes.cpp
+++ b/SourceCode/Bond/Servo/CPanelAttributes.cpp
@@ -62,11 +62,12 @@
unsigned int nSize = attrubutes.size();
for (unsigned int i = 0; i < nSize; i++) {
SERVO::CAttribute* pAttribute = attrubutes.getAttribute(i);
-
- m_gridCtrl.AddProperty(new CMFCPropertyGridProperty(
+ CMFCPropertyGridProperty* pProperty = new CMFCPropertyGridProperty(
pAttribute->getName().c_str(),
pAttribute->getValue().c_str(),
- pAttribute->getDescription().c_str()));
+ pAttribute->getDescription().c_str());
+ pProperty->AllowEdit(FALSE);
+ m_gridCtrl.AddProperty(pProperty);
}
}
@@ -136,7 +137,6 @@
void CPanelAttributes::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);
- CDialogEx::OnSize(nType, cx, cy);
if (GetDlgItem(IDC_LINE1) == nullptr) return;
CWnd* pItem;
@@ -146,29 +146,33 @@
pItem = GetDlgItem(IDC_LINE1);
pItem->MoveWindow(rcClient.right - 3, 0, 3, rcClient.Height());
+ int x2 = rcClient.right - 6;
int y = 3;
- pItem = GetDlgItem(IDC_LABEL_TITLE);
- pItem->GetWindowRect(&rcItem);
- pItem->MoveWindow(5, y, rcClient.Width() - 8, rcItem.Height());
-
pItem = GetDlgItem(IDC_BUTTON_CLOSE);
pItem->GetWindowRect(&rcItem);
- pItem->MoveWindow(rcClient.right - 6 - rcItem.Width(), y, rcItem.Width(), rcItem.Height());
+ pItem->MoveWindow(x2 - rcItem.Width(), y, rcItem.Width(), rcItem.Height());
+ x2 -= rcItem.Width();
+ x2 -= 3;
+
+ pItem = GetDlgItem(IDC_LABEL_TITLE);
+ pItem->GetWindowRect(&rcItem);
+ pItem->MoveWindow(5, y, x2 - 5, rcItem.Height());
y += rcItem.Height();
- y += 3;
+ y += 8;
+
GetDlgItem(IDC_MFCPROPERTYGRID1)->MoveWindow(5, y, rcClient.Width() - 13, rcClient.Height() - 3 - y);
}
-#define MASTER_PANEL_MIN_WIDTH 88
-#define MASTER_PANEL_MAX_WIDTH 588
+#define ATTRIBUTES_PANEL_MIN_WIDTH 88
+#define ATTRIBUTES_PANEL_MAX_WIDTH 588
void CPanelAttributes::OnVLineMoveX(NMHDR* nmhdr, LRESULT* result)
{
BYVERTICALLINE_NMHDR* pNmhdrex = (BYVERTICALLINE_NMHDR*)nmhdr;
int x = pNmhdrex->dwData;
m_nPanelWidth += x;
- m_nPanelWidth = max(m_nPanelWidth, MASTER_PANEL_MIN_WIDTH);
- m_nPanelWidth = min(m_nPanelWidth, MASTER_PANEL_MAX_WIDTH);
+ m_nPanelWidth = max(m_nPanelWidth, ATTRIBUTES_PANEL_MIN_WIDTH);
+ m_nPanelWidth = min(m_nPanelWidth, ATTRIBUTES_PANEL_MAX_WIDTH);
GetParent()->SendMessage(ID_MSG_PANEL_RESIZE, m_nPanelWidth, 0);
CString strIniFile, strValue;
--
Gitblit v1.9.3