source: trunk/MainFrm.cpp @ 11

Last change on this file since 11 was 10, checked in by marrucho, 11 years ago

xsuc ecriture et lecture

File size: 5.2 KB
Line 
1// MainFrm.cpp : implementation of the CMainFrame class
2//
3
4#include "stdafx.h"
5#include "Modbucfg.h"
6
7#include "MainFrm.h"
8
9#include "Globals.h"
10
11#include "CommParameters.h"
12
13#include "DlgConnections.h"
14#include "Splash.h"
15
16#ifdef _DEBUG
17#define new DEBUG_NEW
18#undef THIS_FILE
19static char THIS_FILE[] = __FILE__;
20#endif
21
22/////////////////////////////////////////////////////////////////////////////
23// CMainFrame
24
25// Message ID used for tray notifications
26#define WM_MY_TRAY_NOTIFICATION WM_USER+0
27
28
29IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
30
31BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
32        ON_MESSAGE(WM_MY_TRAY_NOTIFICATION, OnTrayNotification)
33        //{{AFX_MSG_MAP(CMainFrame)
34        ON_WM_CREATE()
35        ON_COMMAND(ID_OPTIONS_CONNECTIONS, OnOptionsConnections)
36        ON_COMMAND(ID_TRAY_MAIN, OnTrayMain)
37        ON_COMMAND(ID_TRAY_CONNECTIONS, OnTrayConnections)
38        ON_WM_SHOWWINDOW()
39        ON_WM_CLOSE()
40        ON_COMMAND(ID_TRAY_EXIT, OnTrayExit)
41        ON_WM_SIZE()
42        ON_COMMAND(ID_OPTIONS_REGISTERTYPELIBRARY, OnOptionsRegistertypeLibrary)
43        //}}AFX_MSG_MAP
44END_MESSAGE_MAP()
45
46static UINT indicators[] =
47{
48        ID_SEPARATOR,           // status line indicator
49        ID_INDICATOR_CAPS,
50        ID_INDICATOR_NUM,
51        ID_INDICATOR_SCRL,
52};
53
54/////////////////////////////////////////////////////////////////////////////
55// CMainFrame construction/destruction
56
57CMainFrame::CMainFrame(): m_trayIcon(IDR_TRAY_ICON)
58{
59        m_bTeminate=FALSE;
60        m_bConfiguringConnections=FALSE;
61       
62}
63
64CMainFrame::~CMainFrame()
65{
66}
67
68int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
69{
70        if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
71                return -1;
72       
73        if (!m_wndToolBar.Create(this) ||
74                !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
75        {
76                TRACE0("Failed to create toolbar\n");
77                return -1;      // fail to create
78        }
79
80        if (!m_wndStatusBar.Create(this) ||
81                !m_wndStatusBar.SetIndicators(indicators,
82                  sizeof(indicators)/sizeof(UINT)))
83        {
84                TRACE0("Failed to create status bar\n");
85                return -1;      // fail to create
86        }
87
88        // TODO: Remove this if you don't want tool tips or a resizeable toolbar
89        m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
90                CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
91
92        // TODO: Delete these three lines if you don't want the toolbar to
93        //  be dockable
94        m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
95        EnableDocking(CBRS_ALIGN_ANY);
96        DockControlBar(&m_wndToolBar);
97
98        // CG: The following line was added by the Splash Screen component.
99        CSplashWnd::ShowSplashScreen(this);
100
101        // Set up tray icon
102        m_trayIcon.SetNotificationWnd(this, WM_MY_TRAY_NOTIFICATION);
103        m_trayIcon.SetIcon(NULL);
104        m_bTeminate=FALSE;
105
106        return 0;
107}
108
109BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
110{
111        // TODO: Modify the Window class or styles here by modifying
112        //  the CREATESTRUCT cs
113
114        return CMDIFrameWnd::PreCreateWindow(cs);
115}
116
117/////////////////////////////////////////////////////////////////////////////
118// CMainFrame diagnostics
119
120#ifdef _DEBUG
121void CMainFrame::AssertValid() const
122{
123        CMDIFrameWnd::AssertValid();
124}
125
126void CMainFrame::Dump(CDumpContext& dc) const
127{
128        CMDIFrameWnd::Dump(dc);
129}
130
131#endif //_DEBUG
132
133/////////////////////////////////////////////////////////////////////////////
134// CMainFrame message handlers
135
136
137void CMainFrame::OnOptionsConnections() 
138{
139        CMDIChildWnd* pChildWnd=MDIGetActive();
140        CDlgConnections dlgConnections;
141       
142        if (pChildWnd!=NULL){
143                ShowWindow(SW_SHOWNORMAL);
144                AfxMessageBox("Close All documents before configuring connections");
145                return;
146        }
147       
148        m_bConfiguringConnections=TRUE;
149        dlgConnections.DoModal();
150        m_bConfiguringConnections=FALSE;       
151}
152
153// Handle notification from tray icon: display a message.
154//
155LRESULT CMainFrame::OnTrayNotification(WPARAM uID, LPARAM lEvent)
156{
157
158        // let tray icon do default stuff
159        return m_trayIcon.OnTrayNotification(uID, lEvent);
160}
161
162
163void CMainFrame::OnTrayMain() 
164{
165        // The main window has been initialized, so show and update it.
166        ShowWindow(SW_SHOWNORMAL);
167       
168}
169
170void CMainFrame::OnTrayConnections() 
171{
172
173        if (m_bConfiguringConnections) {
174                return;
175        }
176
177        OnOptionsConnections();
178
179       
180}
181
182void CMainFrame::OnShowWindow(BOOL bShow, UINT nStatus) 
183{
184        CMDIFrameWnd::OnShowWindow(bShow, nStatus);
185       
186        // TODO: Add your message handler code here
187       
188}
189
190void CMainFrame::OnClose() 
191{
192        // TODO: Add your message handler code here and/or call default
193        //ShowWindow(SW_HIDE);
194        CMDIFrameWnd::OnClose();
195}
196
197void CMainFrame::OnTrayExit() 
198{
199        // TODO: Add your command handler code here
200        CMDIFrameWnd::OnClose();
201       
202}
203
204void CMainFrame::OnSize(UINT nType, int cx, int cy) 
205{
206       
207       
208        CMDIFrameWnd::OnSize(nType, cx, cy);
209
210        if (SIZE_MINIMIZED==nType) {
211                ShowWindow(SW_HIDE);
212                m_trayIcon.SetIcon(IDR_TRAY_ICON);
213        }
214        else {
215                m_trayIcon.SetIcon(NULL);
216        }
217       
218       
219               
220}
221
222void CMainFrame::OnOptionsRegistertypeLibrary() 
223{
224
225 CString sFilter;
226       
227
228 sFilter="Library Files (*.tlb)|*.tlb|All Files (*.*)|*.*||";
229
230 CFileDialog  fileLib( TRUE, 
231                           NULL, 
232                                           NULL, 
233                                           OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
234                                           sFilter, 
235                                           (CWnd*)this);
236
237
238 if (IDOK==fileLib.DoModal()) {
239               
240         if (!RegTypeLib(fileLib.GetPathName())) {
241
242          AfxMessageBox("Library registred failed");
243         }
244         else {
245                 AfxMessageBox("Library registred");
246         }
247 
248 }
249
250
251}
Note: See TracBrowser for help on using the repository browser.