Francoo
22-01-2007, 10:57
Salve a tutti..
sto sviluppando un'applicazione con visual C++ 2005, un progetto SDI.
Mi servirebbe di visualizzare una finestra di dialogo (tipo un pannello laterale) solo quando seleziono uno voce di menu. Mi spiego meglio... ho una vista.. quando seleziono la voce di Menu : "visuaizza dialogo", sulla sinistra mi appare la finestra di dialogo e la vista si ristringe.
Ho provato derivando la classe della finestra di dialogo da CDialog... Faccio partire la finestra in modo non modale (creata con attributo Child) e l'attacco alla finestra..
Il problema č che riesco a ridimensionarela finestra di vista.. ma se ridimensiono la finestra non si vede pių la finestra di dialogo e la finestra di vista torna a tutto schermo..
In pratica la finestra di dialogo resta sotto quella di vista...
Ecco il codice per richiamare la finestra:
int m_DialogID=IDD_ALLINEA_DLG;
m_Dialog=new CAllineaDlg();
m_Dialog->Create(m_DialogID,0);
CRect l_rectWnd;
CRect l_rectClient;
CSize sizeChange;
this->GetWindowRect(&l_rectClient);
m_Dialog->GetWindowRect(&l_rectWnd);
ScreenToClient(&l_rectWnd);
ScreenToClient(&l_rectClient);
//dimensioni da modificare
sizeChange.cy = l_rectClient.Height();
l_rectWnd.bottom = sizeChange.cy;
sizeChange.cx = l_rectWnd.Width();
l_rectClient.left += sizeChange.cx;
l_rectWnd.top += 82;
l_rectWnd.bottom += 37;
l_rectClient.top += 41;
l_rectClient.bottom += 40;
////aggiorno la finestra di dialogo
m_Dialog->MoveWindow(&l_rectWnd);
m_Dialog->ShowWindow(SW_SHOW);
////aggiorno la finestra di vista
this->MoveWindow(&l_rectClient);
this->ShowWindow(SW_SHOW);
this->RedrawWindow();
Dovrei aggiungere qualcosa nel metodo OnSize??
Oppure per fare una cosa del genere dovrei derivare la classe della finestra da CFormView e fare con splitterWindow?
Non si puo fare in questo modo? :mc: :mc:
Grazie in anticipo...
sto sviluppando un'applicazione con visual C++ 2005, un progetto SDI.
Mi servirebbe di visualizzare una finestra di dialogo (tipo un pannello laterale) solo quando seleziono uno voce di menu. Mi spiego meglio... ho una vista.. quando seleziono la voce di Menu : "visuaizza dialogo", sulla sinistra mi appare la finestra di dialogo e la vista si ristringe.
Ho provato derivando la classe della finestra di dialogo da CDialog... Faccio partire la finestra in modo non modale (creata con attributo Child) e l'attacco alla finestra..
Il problema č che riesco a ridimensionarela finestra di vista.. ma se ridimensiono la finestra non si vede pių la finestra di dialogo e la finestra di vista torna a tutto schermo..
In pratica la finestra di dialogo resta sotto quella di vista...
Ecco il codice per richiamare la finestra:
int m_DialogID=IDD_ALLINEA_DLG;
m_Dialog=new CAllineaDlg();
m_Dialog->Create(m_DialogID,0);
CRect l_rectWnd;
CRect l_rectClient;
CSize sizeChange;
this->GetWindowRect(&l_rectClient);
m_Dialog->GetWindowRect(&l_rectWnd);
ScreenToClient(&l_rectWnd);
ScreenToClient(&l_rectClient);
//dimensioni da modificare
sizeChange.cy = l_rectClient.Height();
l_rectWnd.bottom = sizeChange.cy;
sizeChange.cx = l_rectWnd.Width();
l_rectClient.left += sizeChange.cx;
l_rectWnd.top += 82;
l_rectWnd.bottom += 37;
l_rectClient.top += 41;
l_rectClient.bottom += 40;
////aggiorno la finestra di dialogo
m_Dialog->MoveWindow(&l_rectWnd);
m_Dialog->ShowWindow(SW_SHOW);
////aggiorno la finestra di vista
this->MoveWindow(&l_rectClient);
this->ShowWindow(SW_SHOW);
this->RedrawWindow();
Dovrei aggiungere qualcosa nel metodo OnSize??
Oppure per fare una cosa del genere dovrei derivare la classe della finestra da CFormView e fare con splitterWindow?
Non si puo fare in questo modo? :mc: :mc:
Grazie in anticipo...