GetActiveView

投稿日 by Iwao

いつも面倒と思う CView の取得.
https://dev.mish.work/wordpress/2022/05/20/drop-lnk-on-mdi-exe/
普通は,CDocument から CView を操作することはあまりないものと思う.
が,今回はテスト用のコードで CView での表示情報を更新したくなった.

	{
		CFrameWnd*	pFrameWnd    = (CFrameWnd*)AfxGetMainWnd() ;
		CFrameWnd*	pActiveFrame = pFrameWnd->GetActiveFrame() ;
		{
			CXxxView*	pView = (CXxxView*)pFrameWnd->GetActiveView() ;
			if (pActiveFrame != NULL) {
					pView = (CXxxView*)pActiveFrame->GetActiveView() ;
				}
			if (pView != NULL) {
				PartsA	sel_pa = *(pView->GetSelectP()) ;
				{
					PartsA	err_pa = ::xx_get_error_xx(...) ;
					sel_pa += err_pa ;
					}
				*(pView->GetSelectP()) = sel_pa ;
				}
			}
		UpdateAllViews(NULL) ;
		}

それを関数に.

CView*	Get_active_view	(void)
{
	CFrameWnd*	pFrameWnd    = (CFrameWnd*)AfxGetMainWnd() ;
	CFrameWnd*	pActiveFrame = pFrameWnd->GetActiveFrame() ;
	{
		CView*	pView = pFrameWnd->GetActiveView() ;
		if (pActiveFrame != NULL) {
				pView = pActiveFrame->GetActiveView() ;
				}
		return	pView ;
		}
	return	NULL ;
	}

Get_active_view

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  • カテゴリー: