From 11ee8f6cca8b5fbfd1c6c63b2a6b9151a3f50279 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 07 一月 2025 11:52:10 +0800
Subject: [PATCH] 1.工具条按钮点击响应; 2.增加删除按钮;
---
SourceCode/Bond/BoounionPLC/BoounionPLCDlg.cpp | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 178 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/BoounionPLC/BoounionPLCDlg.cpp b/SourceCode/Bond/BoounionPLC/BoounionPLCDlg.cpp
index a0db823..f23fc67 100644
--- a/SourceCode/Bond/BoounionPLC/BoounionPLCDlg.cpp
+++ b/SourceCode/Bond/BoounionPLC/BoounionPLCDlg.cpp
@@ -71,6 +71,13 @@
ON_WM_DESTROY()
ON_WM_SIZE()
ON_WM_CTLCOLOR()
+ ON_COMMAND(ID_MENU_FILE_EXIT, &CBoounionPLCDlg::OnMenuFileExit)
+ ON_UPDATE_COMMAND_UI(ID_MENU_FILE_EXIT, &CBoounionPLCDlg::OnUpdateMenuFileExit)
+ ON_COMMAND(ID_MENU_FILE_SETTINGS, &CBoounionPLCDlg::OnMenuFileSettings)
+ ON_UPDATE_COMMAND_UI(ID_MENU_FILE_SETTINGS, &CBoounionPLCDlg::OnUpdateMenuFileSettings)
+ ON_COMMAND(ID_MENU_HELP_ABOUT, &CBoounionPLCDlg::OnMenuHelpAbout)
+ ON_WM_INITMENUPOPUP()
+ ON_MESSAGE(ID_MSG_TOOLBAR_BTN_CLICKED, &CBoounionPLCDlg::OnToolbarBtnClicked)
END_MESSAGE_MAP()
@@ -119,6 +126,12 @@
m_pPagePlcList = new CPagePlcList();
m_pPagePlcList->Create(IDD_PAGE_PLC_LIST, this);
m_pPagePlcList->ShowWindow(SW_SHOW);
+
+
+ // 菜单
+ CMenu menu;
+ menu.LoadMenu(IDR_MENU_APP);
+ SetMenu(&menu);
ShowWindow(SW_MAXIMIZE);
@@ -177,6 +190,76 @@
return static_cast<HCURSOR>(m_hIcon);
}
+void CBoounionPLCDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
+{
+ ASSERT(pPopupMenu != NULL);
+
+ CCmdUI state;
+ state.m_pMenu = pPopupMenu;
+ ASSERT(state.m_pOther == NULL);
+ ASSERT(state.m_pParentMenu == NULL);
+
+ HMENU hParentMenu;
+ if (AfxGetThreadState()->m_hTrackingMenu == pPopupMenu->m_hMenu)
+ state.m_pParentMenu = pPopupMenu;
+ else if ((hParentMenu = ::GetMenu(m_hWnd)) != NULL)
+ {
+ CWnd* pParent = this;
+ if (pParent != NULL &&
+ (hParentMenu = ::GetMenu(pParent->m_hWnd)) != NULL)
+ {
+ int nIndexMax = ::GetMenuItemCount(hParentMenu);
+ for (int nIndex = 0; nIndex < nIndexMax; nIndex++)
+ {
+ if (::GetSubMenu(hParentMenu, nIndex) == pPopupMenu->m_hMenu)
+ {
+ state.m_pParentMenu = CMenu::FromHandle(hParentMenu);
+ break;
+ }
+ }
+ }
+ }
+
+ state.m_nIndexMax = pPopupMenu->GetMenuItemCount();
+ for (state.m_nIndex = 0; state.m_nIndex < state.m_nIndexMax;
+ state.m_nIndex++)
+ {
+ state.m_nID = pPopupMenu->GetMenuItemID(state.m_nIndex);
+ if (state.m_nID == 0)
+ continue;
+
+ ASSERT(state.m_pOther == NULL);
+ ASSERT(state.m_pMenu != NULL);
+ if (state.m_nID == (UINT)-1)
+ {
+ state.m_pSubMenu = pPopupMenu->GetSubMenu(state.m_nIndex);
+ if (state.m_pSubMenu == NULL ||
+ (state.m_nID = state.m_pSubMenu->GetMenuItemID(0)) == 0 ||
+ state.m_nID == (UINT)-1)
+ {
+ continue;
+ }
+ state.DoUpdate(this, TRUE);
+ }
+ else
+ {
+ state.m_pSubMenu = NULL;
+ state.DoUpdate(this, FALSE);
+ }
+
+ UINT nCount = pPopupMenu->GetMenuItemCount();
+ if (nCount < state.m_nIndexMax)
+ {
+ state.m_nIndex -= (state.m_nIndexMax - nCount);
+ while (state.m_nIndex < nCount &&
+ pPopupMenu->GetMenuItemID(state.m_nIndex) == state.m_nID)
+ {
+ state.m_nIndex++;
+ }
+ }
+ state.m_nIndexMax = nCount;
+ }
+}
void CBoounionPLCDlg::OnDestroy()
{
@@ -238,3 +321,98 @@
return m_hbrBkgnd;
}
+
+void CBoounionPLCDlg::OnMenuFileSettings()
+{
+ //CSettingsDlg dlg;
+ //dlg.DoModal();
+}
+
+void CBoounionPLCDlg::OnUpdateMenuFileSettings(CCmdUI* pCmdUI)
+{
+ pCmdUI->Enable(FALSE);
+}
+
+void CBoounionPLCDlg::OnMenuFileExit()
+{
+ PostMessage(WM_CLOSE);
+}
+
+void CBoounionPLCDlg::OnUpdateMenuFileExit(CCmdUI* pCmdUI)
+{
+ pCmdUI->Enable(TRUE);
+}
+
+void CBoounionPLCDlg::OnMenuHelpAbout()
+{
+ CAboutDlg dlgAbout;
+ dlgAbout.DoModal();
+}
+
+LRESULT CBoounionPLCDlg::OnToolbarBtnClicked(WPARAM wParam, LPARAM lParam)
+{
+ int id = (int)lParam;
+ if (id == IDC_BUTTON_ADD) {
+ AfxMessageBox("IDC_BUTTON_ADD");
+ }
+ else if (id == IDC_BUTTON_DELETE) {
+ AfxMessageBox("IDC_BUTTON_DELETE");
+ }
+ else if (id == IDC_BUTTON_SETTINGS) {
+
+ }
+ else if (id == IDC_BUTTON_OPERATOR) {
+ /*
+ int menuId = (int)wParam;
+ UserManager& userManager = UserManager::getInstance();
+ if (menuId == 0) {
+ CLoginDlg loginDlg;
+ loginDlg.DoModal();
+ }
+ else if (1 == menuId) {
+ CChangePasswordDlg changePasswordDlg;
+ changePasswordDlg.DoModal();
+ }
+ else if (2 == menuId) {
+ CUserManagerDlg dlg;
+ if (dlg.DoModal() != IDOK) {
+ logManager.log(SystemLogManager::LogType::Operation, _T("用户管理的预操作被取消!"));
+ }
+ }
+ else if (3 == menuId) {
+ CSystemLogManagerDlg dlg;
+ dlg.DoModal();
+ }
+ else if (4 == menuId) {
+ int ret = AfxMessageBox(_T("是否切换用户?切换用户会退出当前账号!"), MB_OKCANCEL | MB_ICONEXCLAMATION);
+ if (ret != IDOK) {
+ return 0;
+ }
+
+ logManager.log(SystemLogManager::LogType::Operation, _T("确认切换角色!"));
+ if (userManager.isLoggedIn()) {
+ logManager.log(SystemLogManager::LogType::Info, _T("退出登录!"));
+ userManager.logout();
+ }
+
+ CLoginDlg loginDlg;
+ loginDlg.DoModal();
+ }
+ else {
+ CString cstrMessage;
+ cstrMessage.Format(_T("是否退出用户 [%s]?"), userManager.getCurrentUser().c_str());
+ int ret = AfxMessageBox(_T(cstrMessage), MB_OKCANCEL | MB_ICONEXCLAMATION);
+ if (ret != IDOK) {
+ return 0;
+ }
+
+ logManager.log(SystemLogManager::LogType::Info, _T("退出登录!"));
+ userManager.logout();
+ }
+
+ UpdateLoginStatus();
+ */
+ }
+
+ return 0;
+}
--
Gitblit v1.9.3