| ■ ビューの更新を行う関数 |
| ビュー(ウィンドウ)全体を更新(再描画)させたい場合は、 Invalidate( ); または、Invalildate( TRUE); を使う。引数がない場合は、クライアント領域を塗りつぶす。 塗りつぶしを行わない場合は、 Invalidate( FALSE); を使う。 また、ある矩形の領域だけを更新したい場合は、領域をCRectで指示し InvalidateRect( &crect, TRUE ); を使う。 第2引数は、Invalidateの引数と同じである。 |
| ■ ウィンドウを中央に表示 |
| ウィンドウを表示するときに、何も指定しないとシステムが位置を決定するが、これを中央に指定したい場合は、 CWnd::CenterWindow( CWnd* pAlternateOwner = NULL ); を使用する。 引数は、省略すると表示するウィンドウの親ウィンドウに相対して中央に表示される。親がない場合はデスクトップ中央になる。 |
| ■ ツールバーの表示状態.の取得 |
| 現在、指定したツールバーの表示状態を知るためには、以下のように行う。 WINDOWPLACEMENT wp; m_wndToolbar1.GetWindowPlacement( &wp); if ( wp.showCmd == SW_SHOWNORMAL) または、簡潔に if ( m_wndToolbar1.IsWindowVisible()) |
| ■ 最上段のメニュー追加 |
| プログラム上から、最上段のメニューを追加するには、以下のように行う。 HMENUhMenu = m_pEditorMenu->GetSubMenu(0)->m_hMenu; m_pMainMenu->InsertMenu( 1, nFlags, (UINT)hMenu, "編集(&D)"); |
| ■ MDIをSDIに変える作業 |
| 一度作成してしまったMDIタイプのアプリケーションを、SDIに変えるには以下の作業を行う。 1) xxxApp.cpp 以下の2行を消す。 ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) CSingleDocTemplateに変換。 宣言された変数も直す。 以下の4行を消す。 CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) return FALSE; m_pMainWnd = pMainFrame; 2) Mainfrm.cpp, Mainfrm.h DECLARE_DYNAMICを DECLARE_DYNCREATEに直す。 その他 MDIxxを SDIxxに直す。 |
| ■ 追加したツールバーの表示切替 |
| 自分で追加したツールバーの表示を切り替えるには、通常にツールバーを作成した後以下の処理を追加する CMainFrame内に追加したツールバーをm_wndToolbar1とすると、 @ メニューに、追加したツールバーの表示切替の項目を追加する 例 ツールバー1の表示切替え(&D) このメニューのIDを ID_VIEW_TOOLBAR1とする。(プロパティはデフォルトのまま) A ツールバーの作成コマンドを以下のように変更する。 if ( !m_wndToolbar1.CreateEx( this, TB_CSTYLE, TB_STYLE, CRect(0,0,0,0), ID_VIEW_TOOLBAR1)B CFrameWndの内部関数を使うため、手動で以下の行を追加 ON_COMMAND_EX(ID_VIEW_TOOLBAR1, OnBarCheck)
ON_UPDATE_COMMAND_UI(ID_VIEW_TOOLBAR1, OnUpdateControlBarMenu)
実行し、@で追加したメニューで表示を切り替えられる。 |