中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

單文檔工具欄按鈕

發布時間:2020-06-25 14:35:49 來源:網絡 閱讀:856 作者:Chinayu2014 欄目:編程語言

剛開始學習MFC單文檔的使用,想在工具欄上添加一個按鈕。在那個空白按鈕上,畫上圖案,就會新增一個按鈕。然后利用類向導添加響應消息。在“命令”中找到按鈕的ID,添加COMMAND消息處理。這時,按鈕就會由灰色,變成可用狀態。編寫事件處理函數如:

void CMainFrame::OnFormview1()
{
	AfxMessageBox(_T("ok"));
	m_bBtn1 = FALSE;
}
//如果想禁用此按鈕,可以定義一個類成員變量,如下:
void CMainFrame::OnUpdateFormview1(CCmdUI *pCmdUI)
{
	pCmdUI->Enable(m_bBtn1);
}

注意:事件處理類的為CMainFrame,如果添加到其他類中,就不起作用了。

要想到點擊按鈕時,實現視圖切換。請先在資源中,添加一個FORMVIEW視圖窗口,并添加一個相應的類。繼承自CFormView類,如CMyView。

在CMainFrame類中,添加兩個成員變量,如下:

	//請包含兩個視圖類的.h文件
	CMyView   * m_pMyView;//新添加的視圖
	CMFCApplication1View  * m_pNormalView;//原來默認視圖

點擊工具欄上的按鈕,顯示新視圖,如下:

void CMainFrame::OnBtnStart()
{
	CMFCApplication1Doc * pDoc = (CMFCApplication1Doc*)GetActiveDocument();

	if (m_pMyView==0)
	{
		m_pNormalView = (CMFCApplication1View*)GetActiveView();
		m_pMyView = new CMyView;
		m_pMyView->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, rectDefault, this, 
		                 AFX_IDW_PANE_FIRST + 1, NULL);
	}
	pDoc->AddView(m_pMyView);

	m_pNormalView->SetDlgCtrlID(AFX_IDW_PANE_FIRST + 1);
	m_pMyView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);

	m_pMyView->ShowWindow(SW_SHOW);
	m_pNormalView->ShowWindow(SW_HIDE);

	SetActiveView(m_pMyView);

	pDoc->RemoveView(m_pNormalView);

	this->RecalcLayout();
}

因為CFormView類中的Create函數為protected類型,所以CMyView須重載此函數:
BOOL Create(LPCTSTR, LPCTSTR, DWORD,const RECT&, CWnd*, UINT, CCreateContext*);

BOOL CMyView::Create(LPCTSTR a, LPCTSTR b, DWORD c, const RECT&d, CWnd*e, 
                     UINT f, CCreateContext*g)
{
	return CFormView::Create(a, b, c, d, e, f, g);
}

如果,要再切換回原來的視圖,可以再添加一個按鈕,點擊事件處理函數,如下:

void CMainFrame::OnBtnShow()
{
	CMFCApplication1Doc * pDoc = (CMFCApplication1Doc*)GetActiveDocument();

	pDoc->AddView(m_pNormalView);

	m_pNormalView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
	m_pMyView->SetDlgCtrlID(AFX_IDW_PANE_FIRST+1);

	m_pMyView->ShowWindow(SW_HIDE);
	m_pNormalView->ShowWindow(SW_SHOW);

	SetActiveView(m_pNormalView);

	pDoc->RemoveView(m_pMyView);//文檔綁定可以視需要而定

	this->RecalcLayout();
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

璧山县| 万全县| 兴业县| 焦作市| 马尔康县| 鸡西市| 宝山区| 夏河县| 武陟县| 昔阳县| 渝北区| 道真| 金坛市| 遵义市| 酉阳| 阿拉善右旗| 全州县| 香格里拉县| 柘荣县| 兴国县| 驻马店市| 区。| 伊宁市| 儋州市| 化州市| 浠水县| 乌兰察布市| 上杭县| 曲沃县| 开远市| 敦化市| 太仓市| 元谋县| 高阳县| 黔西县| 卢湾区| 甘谷县| 浦东新区| 永年县| 改则县| 涞源县|