TNB Library
公開メンバ関数 | 全メンバ一覧
CCeMenuBar クラス

メニューバークラス(CE専用) [詳解]

#include <TnbCeMenuBar.h>

+ CCeMenuBar の継承関係図

公開メンバ関数

 CCeMenuBar (void)
 コンストラクタ [詳解]
 
bool Create (HWND hWnd, UINT barId, UINT menuId)
 [作成] メニューバー作成. [詳解]
 
void Destory (void)
 [破棄] メニュー破棄. [詳解]
 
bool EnableTopItem (INDEX index, bool isEnable)
 [設定] トップメニュー有効無効. [詳解]
 
HWND GetMenuWndHandle (void) const
 [取得] メニューバーハンドル [詳解]
 
size_t GetTopItemCount (void) const
 [取得] トップメニューアイテム数 [詳解]
 
DWORD GetTopItemState (INDEX index) const
 [取得] トップメニュー状態取得. [詳解]
 
HMENU GetTopMenu (void) const
 [取得] メニューハンドル取得 [詳解]
 
bool IsBarVisible (void) const
 [確認] 表示確認 [詳解]
 
void OnActivate (UINT nState)
 [処理] アクティブ化処理. [詳解]
 
bool SetTopItemState (INDEX index, DWORD state)
 [設定] トップメニュー状態設定. [詳解]
 
bool SetTopItemString (INDEX index, LPCTSTR lpszText)
 [設定] トップメニュー文字列設定. [詳解]
 
bool ShowBar (bool isShow, bool withParent=true)
 [操作] 表示非表示. [詳解]
 

詳解

メニューバークラス(CE専用)

このクラスは、 CE特有のメニューバーの実装をサポートするものです。
リソースエディタでトップ2つのメニューを用意しておき、本クラスの Create すると、
トップメニューが、メニューバーのトップになり、以下、サブメニューになります。
後は、普通のメニューと同じです。
覚え書き
リソースのメニューのトップは、チェックあり、Gray、Disable は禁止とする。
全画面アプリについて→ http://support.microsoft.com/kb/266244/ja
使用例
・プロジェクトの rc2 ファイルに以下を追加する。
// ↓999 でなくてもいい。 ここの値を Create() のバーのPUREリソースIDに適用すること。
999 RCDATA MOVEABLE PURE
BEGIN
0, 0
・ダイアログのクラスにインスタンスを持たせ、OnInitDialog() で Createする。
BOOL CFooDlg::OnInitDialog()
{
CDialog::OnInitDialog();
;
m_menuBar.Create(GetSafeHwnd(), 999, IDR_MENU_MAIN);
//↑ 999は rc2の値と同じ。IDR_MENU_MAIN はメニュのリソースID。
・WM_ACTIVATE のハンドラ OnActivate() に、以下のように追加する。
void CFooDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CDialog::OnActivate(nState, pWndOther, bMinimized);
m_menuBar.OnActivate(nState); 
}
ウィンドウ管理.
必要ファイル
TnbCeMenuBar.h
日付
08/07/25 新規作成
08/11/17 タスクバーもあわせて Show/Hide 出来るように変更。
10/08/17 OnActivate() を追加。

TnbCeMenuBar.h79 行目に定義があります。

構築子と解体子

◆ CCeMenuBar()

CCeMenuBar ( void  )

コンストラクタ

TnbCeMenuBar.h84 行目に定義があります。

関数詳解

◆ Create()

bool Create ( HWND  hWnd,
UINT  barId,
UINT  menuId 
)

[作成] メニューバー作成.

引数
hWnd親ウィンドウハンドル.
barIdバーのPUREリソースID
menuIdMENUのリソースID
戻り値
true成功。
false失敗。

TnbCeMenuBar.h121 行目に定義があります。

◆ Destory()

void Destory ( void  )

[破棄] メニュー破棄.

TnbCeMenuBar.h102 行目に定義があります。

◆ EnableTopItem()

bool EnableTopItem ( INDEX  index,
bool  isEnable 
)

[設定] トップメニュー有効無効.

引数
indexトップメニュのインデックス。
isEnabletrue なら有効、 false なら無効にします。
戻り値
true成功。
false失敗。 Createされていない場合、失敗します。

TnbCeMenuBar.h221 行目に定義があります。

◆ GetMenuWndHandle()

HWND GetMenuWndHandle ( void  ) const

[取得] メニューバーハンドル

戻り値
NULL作成されていません。
NULL以外メニューバーハンドル

TnbCeMenuBar.h94 行目に定義があります。

◆ GetTopItemCount()

size_t GetTopItemCount ( void  ) const

[取得] トップメニューアイテム数

戻り値
アイテム数

TnbCeMenuBar.h199 行目に定義があります。

◆ GetTopItemState()

DWORD GetTopItemState ( INDEX  index) const

[取得] トップメニュー状態取得.

引数
indexトップメニュのインデックス。
戻り値
DWORD_MAX失敗.
上記以外成功。数値は TBSTATE_ENABLED など。

TnbCeMenuBar.h268 行目に定義があります。

◆ GetTopMenu()

HMENU GetTopMenu ( void  ) const

[取得] メニューハンドル取得

戻り値
NULLエラー
NULL以外メニューハンドル

TnbCeMenuBar.h209 行目に定義があります。

◆ IsBarVisible()

bool IsBarVisible ( void  ) const

[確認] 表示確認

覚え書き
タスクバー、メニューバーの表示確認です。
戻り値
true表示状態
false非表示

TnbCeMenuBar.h133 行目に定義があります。

◆ OnActivate()

void OnActivate ( UINT  nState)

[処理] アクティブ化処理.

覚え書き
本インスタンスを持っているウィンドウが WM_ACTIVATE を受けた時に、 本メソッドをコールするようにしてください。
引数
nStateアクティブ/非アクティブ状態値.

TnbCeMenuBar.h287 行目に定義があります。

◆ SetTopItemState()

bool SetTopItemState ( INDEX  index,
DWORD  state 
)

[設定] トップメニュー状態設定.

引数
indexトップメニュのインデックス。
stateステータス。 TBSTATE_ENABLED など
戻り値
true成功。
false失敗。 Createされていない場合、失敗します。

TnbCeMenuBar.h252 行目に定義があります。

◆ SetTopItemString()

bool SetTopItemString ( INDEX  index,
LPCTSTR  lpszText 
)

[設定] トップメニュー文字列設定.

引数
indexトップメニュのインデックス。
lpszText文字列
戻り値
true成功。
false失敗。 Createされていない場合、失敗します。

TnbCeMenuBar.h233 行目に定義があります。

◆ ShowBar()

bool ShowBar ( bool  isShow,
bool  withParent = true 
)

[操作] 表示非表示.

覚え書き
作成時、タスクバー、メニューバーは SHOW状態です。
引数
isShowtrue ならタスクバー、メニューバーを SHOW状態に(見えるように)します。 false なら HIDE状態にします。
withParent省略するか ture なら、タスクバー、メニューバーの表示状態に応じて、 親のウィンドウサイズも最大になるように変化させます。
false なら親ウィンドウは操作しません。
戻り値
true成功。
false失敗。 Createされていない場合、失敗します。

TnbCeMenuBar.h149 行目に定義があります。