用SHOWWINDOW(SW_HIDE/SW_SHOW)。這是我的想法,妳試試吧。
來補充壹下。
簡單的顯示和隱藏日歷控件很好作。方法如下:
在MFC窗口上。放壹個日歷控件。並給其定義壹個控件變量。類型為CMonthCalCtrl m_timer;
然後,在窗口類的初始化函數裏。對日歷控件初始化。
BOOL CMFCTimerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_timer.ShowWindow(SW_HIDE);
return TRUE;
}
怕看著亂。我把其於的代碼拿掉。m_timer.ShowWindow(SW_HIDE);這句是我加的,是讓日歷控件初始為隱藏。妳在OnInitDialog函數裏不要刪除任何東西。直接加那句代碼就可以了。
放入窗口上壹個按鈕。ID不用設置,雙擊這個按鈕。創建壹個按鈕的單擊函數。
void CMFCTimerDlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_timer.ShowWindow(SW_HIDE);
//讓日歷控件隱藏。
}
加入ShowWindow(SW_HIDE);別忘了前邊的日歷控件變量。
然後,在加壹個按鈕,也是雙擊按鈕,創建單擊按鈕的函數。
void CMFCTimerDlg::OnOK()
{
// TODO: Add extra validation here
m_timer.ShowWindow(SW_SHOW);
// CDialog::OnOK();
}
我直接用的OK按鈕。如果像我壹樣用OK按鈕,壹定要把CDialog::OnOK();註釋掉。
取消按鈕就不用管了。放在那裏不用動。也不要刪除掉。這樣好退出。現在這個簡單的日歷顯示和隱藏就實現了。
復雜壹點的就是用ActiveX控件這個看樓主的樣子。實現起來可能會有點難。如果想了解壹下的話。HI我。
再補充:
如果妳自己寫好的日歷程序。那妳就把這個程序寫在壹個MFC窗口中,
然後方法有兩個:
第壹,把這個帶有日歷程序的窗口設置成主窗口的子窗口。
在WM_ONCREATE消息中。添加
子窗口對象.create(窗口ID,this);
子窗口對象.showwindow(sw_hide);
讓子窗口隱藏起來
第二種,就是用樓上說的,DoModal() 方法。
也是把程序寫在壹個窗口中。
以上兩種選壹種,然後,添加壹個按鈕,在按鈕的響應函數裏。註意這裏:
如果選擇第壹種方法:
就在這裏添加。子窗口對象.showwindow(sw_show);
如果是第二種方法。添加如下代碼:
子窗口對象.DoModal() ;