1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
| ....
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(0);// en mettant cette caractéristique à zéro : empeche la boîte de s'accrocher
//CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar); // permet de défixer la barre
///////////////////////////////////////////////////////////////////////////////////////////
// création de la boîte flottante 1
if (CreateDlgBarTest() != 0)
return -1 ;
// création de la boîte flottante 2
if (Create2ndDglBar() != 0)
return -1 ;
return 0;
}
....
/////////////////////////////////////////////////////////////////////////////
// gestion du menu VIEW pour afficher/enlever les boîtes flottantes
//----------------------------------------------
// gestion de la boîte ID_DLGBAR (m_dlgBarTest)
//----------------------------------------------
void CMainFrame::OnViewDlgbar()
{
// TODO: Add your command handler code here
if (m_dlgBarTest != NULL)
{
if (m_dlgBarTest->IsWindowVisible() != TRUE)
{
//la boîte a été fermée avec l'icône
// boîte flottante visible
DestroyDlgBarTest() ;
if (CreateDlgBarTest() != 0)
MessageBox("Impossible d'ouvrir la boîte flottante",NULL, MB_ICONERROR) ;
}
else
{
// boîte flottante cachée
DestroyDlgBarTest() ;
}
}
else
{
// boîte flottante visible
if (CreateDlgBarTest() != 0)
MessageBox("Impossible d'ouvrir la boîte flottante",NULL, MB_ICONERROR) ;
}
}
void CMainFrame::OnUpdateViewDlgbar(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(NULL != m_dlgBarTest ? 1:0) ;
if (m_dlgBarTest != NULL)
pCmdUI->SetCheck(FALSE != m_dlgBarTest->IsWindowVisible() ? 1:0) ;
}
//----------------------------------------------
// gestion de la boîte ID_DLGBAR_2ND (m_2ndDlgBar)
//----------------------------------------------
void CMainFrame::OnViewDlgbar2nd()
{
// TODO: Add your command handler code here
if (m_2ndDlgBar != NULL)
{
if (m_2ndDlgBar->IsWindowVisible() != TRUE)
{
//la boîte a été fermée avec l'icône
// boîte flottante visible
Destroy2ndDglBar() ;
if (Create2ndDglBar() != 0)
MessageBox("Impossible d'ouvrir la boîte flottante",NULL, MB_ICONERROR) ;
}
else
{
// boîte flottante cachée
Destroy2ndDglBar() ;
}
}
else
{
// boîte flottante visible
if (Create2ndDglBar() != 0)
MessageBox("Impossible d'ouvrir la boîte flottante",NULL, MB_ICONERROR) ;
}
}
void CMainFrame::OnUpdateViewDlgbar2nd(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_2ndDlgBar == NULL)
pCmdUI->SetCheck(0) ;
else
pCmdUI->SetCheck(FALSE != m_2ndDlgBar->IsWindowVisible() ? 1:0) ;
}
////////////////////////////////////////////////////////////////////////////////////
// création/destruction de la boîte de dialogue flottante de test
//----------------------------------------------
// création de la boîte ID_DLGBAR (m_dlgBarTest)
//----------------------------------------------
int CMainFrame::CreateDlgBarTest()
{
m_dlgBarTest = new CTestMDI_DlgBar ;
if (!m_dlgBarTest->Create(this, IDD_DLGBAR,
// collée à droite
CBRS_RIGHT | CBRS_GRIPPER |CBRS_TOOLTIPS | CBRS_FLYBY,//CBRS_HIDE_INPLACE,
IDD_DLGBAR))
{
TRACE0("Failed to create dialog bar m_wndDlgBar\n");
return -1; // fail to create
}
// caractéristiques : se colle sur tous les bords de la fenêtre
m_dlgBarTest->EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(m_dlgBarTest);
CPoint point ; // placée en flottante à 200,200 du coin en haut à gauche de l'écran
point.x = 200 ;
point.y = 200 ;
FloatControlBar(m_dlgBarTest,point);
return 0 ;
}
//----------------------------------------------
// destruction de la boîte ID_DLGBAR (m_dlgBarTest)
//----------------------------------------------
void CMainFrame::DestroyDlgBarTest()
{
m_dlgBarTest->DestroyWindow() ; // détruit en mémoire
m_dlgBarTest = NULL ;
}
//------------------------------------------------------------------------------
//----------------------------------------------
// création de la boîte ID_DLGBAR (m_2ndDlgBar)
//----------------------------------------------
int CMainFrame::Create2ndDglBar()
{
m_2ndDlgBar = new C2ndDlgBar ;
if (!m_2ndDlgBar->Create(this, IDD_DLGBAR_2ND,
// collée à droite
CBRS_BOTTOM | CBRS_GRIPPER |CBRS_TOOLTIPS | CBRS_FLYBY,//CBRS_HIDE_INPLACE,
IDD_DLGBAR_2ND))
{
TRACE0("Failed to create dialog bar m_wndDlgBar\n");
return -1; // fail to create
}
// caractéristiques : se colle sur tous les bords de la fenêtre
m_2ndDlgBar->EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(m_2ndDlgBar);
return 0 ;
}
//----------------------------------------------
// destruction de la boîte ID_DLGBAR (m_2ndDlgBar)
//----------------------------------------------
void CMainFrame::Destroy2ndDglBar()
{
m_2ndDlgBar->DestroyWindow() ; // détruit en mémoire
m_2ndDlgBar = NULL ;
} |
Partager