QuakeGod
2023-09-05 df03213660361b1c771f0a3f21b6ddaeaef7763a
提交 | 用户 | age
0ed438 1 
Q 2 // MainFrm.cpp: CMainFrame 类的实现
3 //
4
5 #include "pch.h"
6 #include "framework.h"
7 #include "MTerm1.h"
8 #include "MainFrm.h"
418cb3 9 #include "ChildFrm.h"
Q 10
11 #include "MTerm1Doc.h"
12 #include "MTerm1View.h"
13 #include "MTerm1CtrlView.h"
14 #include "MTerm1TestView.h"
15 #include "MTerm1ProgTxt.h"
16 #include <windows.h>
0ed438 17
Q 18 #ifdef _DEBUG
19 #define new DEBUG_NEW
20 #endif
21
22 // CMainFrame
23
24
418cb3 25 IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWndEx)
0ed438 26
Q 27 BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
28     ON_WM_CREATE()
418cb3 29     ON_COMMAND(ID_UPLOAD_FROM_PLC, &CMainFrame::OnUploadFromPlc)
Q 30     ON_COMMAND(ID_VIEW_FUNCKEY_BAR, &CMainFrame::OnViewFunckeyBar)
31     ON_UPDATE_COMMAND_UI(ID_VIEW_FUNCKEY_BAR, &CMainFrame::OnUpdateViewFunckeyBar)
32     ON_COMMAND(ID_VIEW_INPUT_BAR, &CMainFrame::OnViewInputBar)
33     ON_UPDATE_COMMAND_UI(ID_VIEW_INPUT_BAR, &CMainFrame::OnUpdateViewInputBar)
34     ON_COMMAND(ID_VIEW_NUMKEY_BAR, &CMainFrame::OnViewNumkeyBar)
35     ON_UPDATE_COMMAND_UI(ID_VIEW_NUMKEY_BAR, &CMainFrame::OnUpdateViewNumkeyBar)
36     ON_COMMAND(ID_VIEW_INPUTSEG_BAR, &CMainFrame::OnViewInputsegBar)
37     ON_UPDATE_COMMAND_UI(ID_VIEW_INPUTSEG_BAR, &CMainFrame::OnUpdateViewInputsegBar)
38     ON_COMMAND(ID_VIEW_COMMENTS_BAR, &CMainFrame::OnViewCommentsBar)
39     ON_UPDATE_COMMAND_UI(ID_VIEW_COMMENTS_BAR, &CMainFrame::OnUpdateViewCommentsBar)
df0321 40
418cb3 41 //    ON_COMMAND(ID_MENU_VIEW_LDS, &CMainFrame::OnMenuViewLds)
Q 42 //    ON_COMMAND(ID_MENU_VIEW_BLD, &CMainFrame::OnMenuViewBld)
43 //    ON_COMMAND(ID_MENU_VIEW_BNL, &CMainFrame::OnMenuViewBnl)
44
45 ON_COMMAND(ID_MENU_SHOW_LOG, &CMainFrame::OnMenuShowLog)
46 ON_COMMAND(ID_MENU_SHOW_DEV, &CMainFrame::OnMenuShowDev)
df0321 47 ON_COMMAND(ID_MENU_SHOWNAV, &CMainFrame::OnMenuShownav)
0ed438 48 END_MESSAGE_MAP()
Q 49
50 static UINT indicators[] =
51 {
52     ID_SEPARATOR,           // 状态行指示器
418cb3 53     ID_INDICATOR_SEL_TYPE,
0ed438 54     ID_INDICATOR_CAPS,
Q 55     ID_INDICATOR_NUM,
56     ID_INDICATOR_SCRL,
57 };
58
59 // CMainFrame 构造/析构
60
61 CMainFrame::CMainFrame() noexcept
62 {
63     // TODO: 在此添加成员初始化代码
64 }
65
66 CMainFrame::~CMainFrame()
67 {
68 }
69
418cb3 70 BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
Q 71 {
72     // TODO: 在此添加专用代码和/或调用基类
73 //    if (m_wndDlgBar_Func_Key.OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))  return     TRUE;
74
75     return CMDIFrameWndEx::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
76 }
77
0ed438 78 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
Q 79 {
80     if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1)
81         return -1;
418cb3 82 //    m_dlgMyLog.Create(m_dlgMyLog.IDD, GetParent());
Q 83 //    m_dlgMyLog.ShowWindow(SW_SHOW);
0ed438 84
418cb3 85 //    BOOL bNameValid;
0ed438 86
418cb3 87     // 创建类视图
Q 88     CString strNavView;
89 //    bNameValid = strNavView.LoadString(IDS_CLASS_VIEW);
90 //    ASSERT(bNameValid);
91 ///*
92     strNavView = _T("导航视图");
93     if (!m_wndNavView.Create(strNavView, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_NAVVIEW, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
0ed438 94     {
418cb3 95         TRACE0("未能创建“导航视图”窗口\n");
Q 96         return FALSE; // 未能创建
0ed438 97     }
418cb3 98     m_wndNavView.EnableDocking(CBRS_ALIGN_LEFT);
Q 99     DockPane(&m_wndNavView);
100     //DockControlBar(&m_wndNavView);
101 //*/
0ed438 102     if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
418cb3 103         !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
0ed438 104     {
Q 105         TRACE0("未能创建工具栏\n");
106         return -1;      // 未能创建
107     }
108
418cb3 109     /*   输入栏
Q 110     if (!m_wndTBar_InputShow.CreateEx(this, TBSTYLE_FLAT,
111         WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
112         CRect(1, 1, 1, 1), IDW_TOOL_BAR2) ||
113         !m_wndTBar_InputShow.LoadToolBar(IDR_TOOLBAR_INPUT_SHOW))
114     {
115         TRACE0("未能创建数字工具栏\n");
116         return -1;      // 未能创建
117     }
118     CRect rect1;
119     int index = m_wndTBar_InputShow.CommandToIndex(ID_BUTTON_INPUT_SHOW);
120     UINT nID,nStyle;
121     int iImage;
122     m_wndTBar_InputShow.GetButtonInfo(0, nID, nStyle, iImage);
123     m_wndTBar_InputShow.SetButtonInfo(index, ID_BUTTON_INPUT_SHOW, TBBS_SEPARATOR, 100);
124     m_wndTBar_InputShow.GetItemRect(index, &rect1);
125     rect1.left = 1;
126     rect1.top = 2;
127     rect1.right = rect1.left + 100;
128     rect1.bottom = rect1.top + 20;
129     //*/
130 /*
131     if (!m_InputShowEdit.Create(WS_CHILD | WS_VISIBLE | WS_BORDER, rect1, \
132         &m_wndTBar_InputShow, ID_BUTTON_INPUT_SHOW))
133     {
134         TRACE(_T("Failed to create CEdit\n"));
135         return FALSE;
136     }
0ed438 137
418cb3 138     if (!m_InputShowStatic.Create(_T("Test1"),WS_CHILD | WS_VISIBLE |WS_EX_CLIENTEDGE, rect1, \
Q 139         &m_wndTBar_InputShow, ID_BUTTON_INPUT_SHOW))
140     {
141         TRACE(_T("Failed to create CStaticEx\n"));
142         return FALSE;
143     }
144     m_InputShowStatic.SetBkColor(RGB(255, 255, 255));
145     m_InputShowStatic.SetTextColor(RGB(255, 128, 128));
146     m_InputShowStatic.SetTextSize(20);
147 //*/
148     //m_InputShowEdit.SetReadOnly(true);
149 /*
150     if (!m_wndTBar_Num_Key.CreateEx(this, TBSTYLE_FLAT, 
151         WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
152         CRect(1,1,1,1),IDW_TOOL_BAR2) ||
153         !m_wndTBar_Num_Key.LoadToolBar(IDR_TOOLBAR_NUM_KEY))
154     {
155         TRACE0("未能创建数字键工具栏\n");
156         return -1;      // 未能创建
157     }
158 //*/
0ed438 159
418cb3 160 /*
Q 161     if (!m_wndTBar_Edit_Key.CreateEx(this, TBSTYLE_FLAT,
162         WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
163         CRect(1, 1, 1, 1), IDR_TOOLBAR_EDIT_KEY) ||
164         !m_wndTBar_Edit_Key.LoadToolBar(IDR_TOOLBAR_EDIT_KEY))
165     {
166         TRACE0("未能创建编辑键工具栏\n");
167         return -1;      // 未能创建
168     }
169     //*/
170 /*
171     if (!m_wndToolBar_Func_Key.CreateEx(this, TBSTYLE_FLAT,
172         WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
173         CRect(1, 1, 1, 1), IDW_TOOL_BAR_FUNC_KEY) ||
174         !m_wndToolBar_Func_Key.LoadToolBar(IDR_TOOLBAR_FUNC_KEY2))
175     {
176         TRACE0("未能创建功能键工具栏\n");
177         return -1;      // 未能创建
178     }
179     //m_wndToolBar_Func_Key.SetTwoRowsWithSibling();
180 //*/
181 /*
182     if (!m_wndDlgBar_InputShow.Create(this, IDD_DIALOGBAR_INPUT_SHOW, WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
183         IDD_DIALOGBAR_INPUT_SHOW))
184     {
185         TRACE0("未能创建功能键2工具栏\n");
186         return -1;      // 未能创建
187     }
188 //*/
189     /*
190     if (!m_wndDlgBar_Func_Key.Create(this, IDD_DIALOGBAR_FUNC_KEYS,WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
191         IDD_DIALOGBAR_FUNC_KEYS))
192     {
193         TRACE0("未能创建功能键2工具栏\n");
194         return -1;      // 未能创建
195     }
196 //    ShowControlBar(&m_wndDlgBar_Func_Key, TRUE, TRUE);
197 //    m_wndDlgBar_Func_Key.MoveWindow(100, 100, 200, 200);
198     //*/
0ed438 199
Q 200     if (!m_wndStatusBar.Create(this))
201     {
202         TRACE0("未能创建状态栏\n");
203         return -1;      // 未能创建
204     }
205     m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
418cb3 206     m_wndStatusBar.SetPaneStyle(0, SBPS_STRETCH);
Q 207     //m_wndStatusBar.OnCtlColor();
208 ///*
209     if (!m_wndMyPaneLog.Create(_T("日志窗口"), this, CRect(0, 0, 200, 200), TRUE, 1235, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS
210         | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI))
211     {
212         TRACE0("未能创建“MyPaneLog窗口\n");
213         return FALSE;
214     }
215     m_wndMyPaneLog.EnableDocking(CBRS_ALIGN_ANY);
df0321 216 //*/
Q 217 // // 
218 ///*
219     
220     if (!m_wndMyPaneInputShow.Create(_T("输入窗口"), this, CRect(2, 2, 20, 20), TRUE, 1236, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS
221         | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI))
222     {
223         TRACE0("未能创建“MyPaneInputShow窗口\n");
224         return FALSE;
225     }
226     m_wndMyPaneInputShow.EnableDocking(CBRS_ALIGN_BOTTOM);
0ed438 227
418cb3 228 //*/
Q 229 //    m_dlgMyLog.Create(m_dlgMyLog.IDD, this);
230 //    m_dlgMyLog.ModifyStyle(0, WS_POPUPWINDOW);
231 //    m_dlgMyLog.ShowWindow(SW_SHOW);
232
233     // TODO: 如果不需要可停靠工具栏,则删除这三行
0ed438 234     m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
Q 235     EnableDocking(CBRS_ALIGN_ANY);
236     DockPane(&m_wndToolBar);
418cb3 237 //    DockControlBar(&m_wndToolBar);
Q 238
239 //    EnableDocking(CBRS_ALIGN_ANY);
0ed438 240
Q 241
242
418cb3 243 //    CDockablePane* pTabbedBar = nullptr;
Q 244 //    m_wndNavView.AttachToTabWnd(&m_wndFileView, DM_SHOW, TRUE, &pTabbedBar);
0ed438 245
Q 246
418cb3 247 ///*
Q 248 //    m_wndDlgBar_InputShow.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
249 //    m_wndTBar_Num_Key.EnableDocking(CBRS_ALIGN_ANY);
250 //    m_wndTBar_Edit_Key.EnableDocking(CBRS_ALIGN_ANY);
251 //    m_wndToolBar_Func_Key.EnableDocking(CBRS_ALIGN_ANY);
252 //    m_wndDlgBar_Func_Key.EnableDocking(CBRS_ALIGN_TOP| CBRS_ALIGN_BOTTOM);
0ed438 253
418cb3 254 //    EnableDocking(CBRS_ALIGN_ANY);
0ed438 255
418cb3 256 //    DockPane(&m_wndToolBar);
0ed438 257
418cb3 258 //    DockControlBar(&m_wndDlgBar_InputShow);
Q 259 //    DockControlBar(&m_wndTBar_Num_Key);
260 //    DockControlBar(&m_wndTBar_Edit_Key);
261 //    DockPane(&m_wndToolBar_Func_Key);
262 //    DockPane(&m_wndDlgBar_Func_Key);
263 //    DockControlBar(&m_wndDlgBar_Func_Key);
df0321 264     DockPane(&m_wndMyPaneInputShow);
418cb3 265     DockPane(&m_wndNavView);
Q 266     DockPane(&m_wndMyPaneLog);
0ed438 267
df0321 268 //    m_wndMyPaneInputShow.m_pMyFormInputShow->SetBtnDisplayESC(1);
0ed438 269
418cb3 270 //*/
0ed438 271     return 0;
Q 272 }
418cb3 273
0ed438 274
Q 275 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
276 {
277     if( !CMDIFrameWndEx::PreCreateWindow(cs) )
278         return FALSE;
279     // TODO: 在此处通过修改
280     //  CREATESTRUCT cs 来修改窗口类或样式
281
282     return TRUE;
283 }
284
285 // CMainFrame 诊断
286
287 #ifdef _DEBUG
288 void CMainFrame::AssertValid() const
289 {
290     CMDIFrameWndEx::AssertValid();
291 }
292
293 void CMainFrame::Dump(CDumpContext& dc) const
294 {
295     CMDIFrameWndEx::Dump(dc);
296 }
297 #endif //_DEBUG
298
299
300 // CMainFrame 消息处理程序
301
302
303
418cb3 304 void CMainFrame::OnUploadFromPlc()
0ed438 305 {
418cb3 306     // TODO: 在此添加命令处理程序代码
Q 307     SysLog(_T("Upload from PLC, (From mainframe)"));
308     CWinAppEx* pApp = &theApp;
309     
310     POSITION curTemplatePos = theApp.m_pDocManager->GetFirstDocTemplatePosition();
311     if (curTemplatePos != NULL)
0ed438 312     {
418cb3 313         CDocTemplate* curTemplate = theApp.m_pDocManager->GetNextDocTemplate(curTemplatePos);
Q 314         CMTerm1Doc* pDoc = (CMTerm1Doc* ) curTemplate->OpenDocumentFile(NULL);
315         if (pDoc)     pDoc->OnUploadFromPlc();
0ed438 316     }
Q 317
318 }
319
418cb3 320 void CMainFrame::OnMenuShowLog()
0ed438 321 {
418cb3 322     // TODO: 在此添加命令处理程序代码
Q 323     m_wndMyPaneLog.ShowWindow(SW_SHOW);
324 //    m_wndNavView.ShowWindow(SW_SHOW);
325 }
0ed438 326
Q 327
418cb3 328 void CMainFrame::OnViewFunckeyBar()
Q 329 {
330     // TODO: 在此添加命令处理程序代码
331     CString s1;
332     s1.Format(_T("显示功能键栏"));
333     SysLog(s1);
334 //    m_wndDlgBar_Func_Key.ShowWindow(SW_HIDE);
335 //    m_wndDlgBar_Func_Key.ShowWindow(SW_SHOW);
336 //    ShowControlBar(&m_wndDlgBar_Func_Key, TRUE, FALSE);
337     
338 }
339
340
341 void CMainFrame::OnUpdateViewFunckeyBar(CCmdUI *pCmdUI)
342 {
343     // TODO: 在此添加命令更新用户界面处理程序代码
344
345 }
346
347
348 void CMainFrame::OnViewInputBar()
349 {
350     // TODO: 在此添加命令处理程序代码
351 }
352
353
354 void CMainFrame::OnUpdateViewInputBar(CCmdUI *pCmdUI)
355 {
356     // TODO: 在此添加命令更新用户界面处理程序代码
357 }
358
359
360 void CMainFrame::OnViewNumkeyBar()
361 {
362     // TODO: 在此添加命令处理程序代码
363     CString s1;
364     s1.Format(_T("显示数字键栏"));
365     SysLog(s1);
366 //    m_wndTBar_Num_Key.ShowWindow(SW_HIDE);
367 //    m_wndTBar_Num_Key.ShowWindow(SW_SHOW);
368
369 }
370
371
372 void CMainFrame::OnUpdateViewNumkeyBar(CCmdUI *pCmdUI)
373 {
374     // TODO: 在此添加命令更新用户界面处理程序代码
375 }
376
377
378 void CMainFrame::OnViewInputsegBar()
379 {
380     // TODO: 在此添加命令处理程序代码
381 }
382
383
384 void CMainFrame::OnUpdateViewInputsegBar(CCmdUI *pCmdUI)
385 {
386     // TODO: 在此添加命令更新用户界面处理程序代码
387 }
388
389
390 void CMainFrame::OnViewCommentsBar()
391 {
392     // TODO: 在此添加命令处理程序代码
393 }
394
395
396 void CMainFrame::OnUpdateViewCommentsBar(CCmdUI *pCmdUI)
397 {
398     // TODO: 在此添加命令更新用户界面处理程序代码
399 }
400 /*
401 CView * FindView(CDocument * pDoc, CRuntimeClass * pClass)
402 {
403     CView* pView = NULL;
404     POSITION pos = pDoc->GetFirstViewPosition();
405     while (pos != NULL)
0ed438 406     {
418cb3 407         pView = pDoc->GetNextView(pos);
Q 408         if (pView->IsKindOf(pClass))
409             break;
410     }
411     if (!pView->IsKindOf(pClass))
412     {
413         //AfxMessageBox("Connt Locate the View.");
414         return NULL;
415     }
416     return pView;
417 }
418 */
0ed438 419
418cb3 420 int CMainFrame::GetInputInfo(int inputInfo)
Q 421 {
422     // TODO: 在此处添加实现代码.
423     CString        m_InputInfo;
0ed438 424
418cb3 425     CString s1;
Q 426     s1.Format(_T("From MainFrame , input %s"), m_InputInfo);
427     SysLog(s1);
0ed438 428
df0321 429     //    m_wndDlgBar_InputShow.SetDisplay(inputInfo);
Q 430
431     return 0;
432 }
433
434 int CMainFrame::SetDisplayInfo(int Info)
435 {
436     // TODO: 在此处添加实现代码.
437     CString        m_InputInfo;
438
439     CString s1;
440     s1.Format(_T("From MainFrame , SetDisplayInfo %x"), Info);
441     SysLog(s1);
442
443     //    m_wndDlgBar_InputShow.SetDisplay(inputInfo);
444     m_wndMyPaneInputShow.m_pMyFormInputShow->SetDisplay(Info);
445     return 0;
446 }
447
448 int CMainFrame::SetCellInfo(int info)
449 {
450     // TODO: 在此处添加实现代码.
451     CString        m_InputInfo;
452
453     CString s1;
454     s1.Format(_T("From MainFrame , SetCellInfo %x"), info);
455     SysLog(s1);
456
418cb3 457 //    m_wndDlgBar_InputShow.SetDisplay(inputInfo);
0ed438 458
418cb3 459     return 0;
Q 460 }
0ed438 461
df0321 462 int CMainFrame::GetInputCell(tagInputCell inputCell)
418cb3 463 {
0ed438 464
df0321 465     //    localInputCell = inputCell;
418cb3 466     return 0;
0ed438 467 }
Q 468
418cb3 469 void CMainFrame::OnMenuShowDev()
0ed438 470 {
418cb3 471     // TODO: 在此添加命令处理程序代码
Q 472
0ed438 473 }
df0321 474
Q 475 void CMainFrame::OnMenuShownav()
476 {
477     // TODO: 在此添加命令处理程序代码
478     m_wndNavView.ShowWindow(SW_SHOW);
479 }