No.4ベストアンサー
- 回答日時:
参考までに。
http://support.microsoft.com/default.aspx?scid=k …
#機械翻訳なのでかなり怪しい日本語ですが。原文を読むことをお勧めします。
参考URL:http://support.microsoft.com/default.aspx?scid=k …
No.3
- 回答日時:
> 書き換えのタイミングが悪いのか
どのタイミングで行ってるんですか?
参考までに。
http://homepage2.nifty.com/DSS/VCPP/MFC/Menu/MDI …
参考URL:http://homepage2.nifty.com/DSS/VCPP/MFC/Menu/MDI …
この回答への補足
次のような構造です。
BOOL CMDIApp::InitInstance()
{
InitSmptinst();
InitFilepath();
中略
CMultiDocTemplate* pMailBoxTemplate;
pMailBoxTemplate = new CMultiDocTemplate(
IDR_MAILBOXTYPE,
RUNTIME_CLASS(CMailBoxDoc),
RUNTIME_CLASS(CMailBoxFrame), // custom MDI child frame
RUNTIME_CLASS(CMailBoxView));
AddDocTemplate(pMailBoxTemplate);
以下略
そして、スプリットウインドの形で
メールボックス
を表示させます。
次の関数の中です。
BOOL CMailBoxFrame::OnCreateClient(LPCREATESTRUCT lpcs,
CCreateContext* pContext)
{
// 1行, 2列のスプリッターを作成
if (!m_wndSplitter.CreateStatic(this,1,2))
中略
// すべて動作した場合、3 つの異なるビューを含む 2 つのスプリッター ウィンドウ
// ができます。
// set up Favorites menu
TCHAR sz[MAX_PATH];
TCHAR szPath[MAX_PATH];
HKEY hKey;
DWORD dwSize;
CMenu* pMenu;
// first get rid of bogus submenu items.
pMenu = GetMDIFrame()->GetMenu()->GetSubMenu(3);
while(pMenu->DeleteMenu(0, MF_BYPOSITION));
中略
BuildFavoritesMenu(szPath, 0, pMenu);
//return 0;
return TRUE;
}
この結果、最初の親のメニューが
書き換えられていることが判明しました。
確認は、
pMenu = GetMenu()->GetSubMenu(3);
を
pMenu = GetMenu()->GetSubMenu(4);
にすると、
親ウインドウの起動時にもメニューを変更するが
それは、3番目(最初は0番)のものにしてあります。
起動時に親ウインドウのメニューを見る。
3番目の項目の内容だけがお気に入りのものになる。
つぎに、メイルボックスを作り
閉じる。
すると、親ウインドのメニューの3番目と4番目ともに
お気に入りのものに変わってしまいます。
No.2
- 回答日時:
>pMenu = GetMenu()->GetSubMenu(3);
>と同じことをチャイルドウインドウの方から
>やりたいのですが、
GetMDIFrame()で親フレームウィンドウ取得するんじゃだめ?
ありがとうございます。
pMenu = GetMDIFrame()ー>GetMenu()->GetSubMenu(3);
としたら、
pMenu
は値が確定しました。
書き換えのタイミングが悪いのか
子ウインドウ用のメニューのFavaritesの
項目は変化していません。
もしかしたら、
親ウインドウの本来のメニューが書き換えられているかもしれません。
以上、現状の報告です。
ご指導くださり、ありがとうございます。
No.1
- 回答日時:
>チャイルドウインドの中で、
>CHtmlView を表示させ
>それが選ばれたときに、
>メニューを書き換えて
>お気に入りの内容を加えて表示させたいのですが
>上手くゆきません。
何が上手くいかないかが不明。
MDIで特定の子ウィンドウがアクティブになったときの
メニューを変えたいのであれば、ウィザードでMDIを
指定したときに、子ウィンドウの有無でメニューが
変わるところがそのもの。
お気に入りの内容を表示させたいのであれば、MFCIEのソースそのもの。
この回答への補足
いつもありがとうございます。
MFCIE では、
pMenu = GetMenu()->GetSubMenu(3);
while(pMenu->DeleteMenu(0, MF_BYPOSITION));
// find out from the registry where the favorites are located.
if(RegOpenKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders"), &hKey) != ERROR_SUCCESS)
{
TRACE0("Favorites folder not found\n");
return 0;
}
dwSize = sizeof(sz);
RegQueryValueEx(hKey, _T("Favorites"), NULL, NULL, (LPBYTE)sz, &dwSize);
ExpandEnvironmentStrings(sz, szPath, MAX_PATH);
RegCloseKey(hKey);
BuildFavoritesMenu(szPath, 0, pMenu);
return 0;
として、メニューを書き換えているのですが、
最初の
pMenu = GetMenu()->GetSubMenu(3);
と同じことをチャイルドウインドウの方から
やりたいのですが、
この書き換えができないのです。
すみませんが、GetMenu() の前に
何を書き加えたら良いのでしょうか?
教えていただきたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- その他(Microsoft Office) Excel2019と365、2021 2 2023/07/08 06:22
- CAD・DTP 「機能ブロック図」の描画用フリーソフトを教えてください 1 2022/09/23 16:12
- アプリ Android studio 初心者 Hello Android!しか表示されない 1 2023/08/01 08:47
- Excel(エクセル) Excel処理について、教えて下さい。 下記表は、サンプルです。(実際には千件以上あります) A列に 6 2023/03/16 18:21
- Visual Basic(VBA) エクセル VBA 条件によるセル点滅 お詳しい方 ご教授をお願いします。 Excelファイルにて 現 1 2022/11/03 15:53
- Excel(エクセル) エクセルで粘度計算表を作りたい 3 2023/02/28 10:02
- その他(Microsoft Office) Microsoft Edgeの「ニュースと関心事項」についてお聞きします。 3 2023/05/22 12:08
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- その他(プログラミング・Web制作) GASでガントチャートを作りたいです 1 2022/09/05 17:26
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
VBAで任意のウインドウのサイズ...
-
1クリックでモーダルを開いてか...
-
ウィンドウの2重起動を防止したい
-
response.redirect <<URL>> で...
-
window.openしたウィンドウのwi...
-
window.open( ) の第2引数
-
JavaScriptで指定Windowを最大...
-
親ウィンドウから子ウィンドウ...
-
同じURLのフォームが開いている...
-
ウェブサイトを見ていて左側に...
-
<EXCEL/VBA> OUTLOOKのウインド...
-
子ウィンドウから親ウィンドウ...
-
ポップアップと作業ウィンドウ...
-
サブウィンドウと、親ウィンド...
-
子ウィンドウを常に手前表示、...
-
子ウィンドウから親ウィンドウ...
-
画面を閉じる。「いいえ」の場...
-
秀丸エディタでHTMLタグテキス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
デスクトップ画面を4分割するには
-
VBAで任意のウインドウのサイズ...
-
VBの画面で、全ウィンドウを一...
-
ウィンドウの2重起動を防止したい
-
ウィンドウ名からウィンドウオ...
-
ポップアップと作業ウィンドウ...
-
子ウィンドウの存在確認
-
インタネットからPDFファイルだ...
-
<EXCEL/VBA> OUTLOOKのウインド...
-
子ウィンドウを常に手前表示、...
-
window.Openをモーダルにできま...
-
ブラウザ(IE)からエクスプロー...
-
JavaScriptで指定Windowを最大...
-
子→親ウインドウへデータを受け...
-
1クリックでモーダルを開いてか...
-
親ウィンドウから開いた子ウィ...
-
初心者javascript グーグルクロ...
-
孫ウインドウを閉じたら親をリ...
おすすめ情報