メニューを使用不可にしたい – プログラミング – Home

メニューを使用不可にしたい
 
通知
すべてクリア

[解決済] メニューを使用不可にしたい


てんてく
 てんてく
(@てんてく)
ゲスト
結合: 20年前
投稿: 92
Topic starter  

環境WinXP, VC++6.0(MFC)

MDIを使用しアプリケーションを作成しています。
起動時にデフォルトのViewを最大化+メニューを使用不可にしたくて

BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext*
pContext)
{
CMenu* p = GetSystemMenu(FALSE);
for(int i=0; i<p->GetMenuItemCount(); i++)
{
p->EnableMenuItem(p->GetMenuItemID(i), MF_BYCOMMAND | MF_DISABLED);
}
DrawMenuBar();
ShowWindow(SW_SHOWMAXIMIZED);//最大化できない
}
こんなコーディングをしたのですがクローズのボタンしか使用不可に出来ません。
また、最大化もできません。
なにかアドバイスをいただければ幸いです。


引用未解決
トピックタグ
てんてく
 てんてく
(@てんてく)
ゲスト
結合: 20年前
投稿: 92
Topic starter  

追記です。
ShowWindow(SW_SHOWMAXIMIZED);//最大化できない
のほうはタイミングを変えれば最大化できるので
(たとえば、1Sタイマを仕掛けてそこで最大化してみるとか)
起動時に最大化するにあたりふさわしいタイミングを教えていただけると嬉しいです。


返信引用
chamaro
 chamaro
(@chamaro)
ゲスト
結合: 17年前
投稿: 19
 

CWnd::PreCreateWindow
CREATESTRUCT構造体styleについて調べれば幸せになれるかもしれません。


返信引用
てんてく
 てんてく
(@てんてく)
ゲスト
結合: 20年前
投稿: 92
Topic starter  

chamaroさん、回答ありがとうございます。
PreCreateWindowでメニューのほうを表示しないことで使用不可に
出来たのですがWS_MAXIMIZEを指定しても最大化できませんでした。
なにかおかしい・・・?


返信引用
..S
 ..S
(@..S)
ゲスト
結合: 17年前
投稿: 1
 

ShowWindow(SW_SHOWMAXIMIZED);//最大化できない
の後に
UpdateWindow();
を追加してみては?


返信引用
NOR
 NOR
(@NOR)
ゲスト
結合: 23年前
投稿: 128
 

> PreCreateWindowでメニューのほうを表示しないことで使用不可に
> 出来たのですがWS_MAXIMIZEを指定しても最大化できませんでした。

昔同じことをやったときには、
cs.style |= WS_VISIBLE | WS_MAXIMIZE;
というように、WS_VISIBLEも入れないと最大化しなかったです。


返信引用
てんてく
 てんてく
(@てんてく)
ゲスト
結合: 20年前
投稿: 92
Topic starter  

..Sさん
NORさん
回答ありがとうございます。試してみたところスタイル上適応されているようですが
最大化の表示は出来ませんでした。起動後にMainFrameのサイズを変更した時に
最大化表示されるようです。
また、ViewのInitialUpdateで
ShowWindow(SW_SHOWMAXIMIZED);
UpdateWindow();
と書いてみたけど同様でした。


返信引用
てんてく
 てんてく
(@てんてく)
ゲスト
結合: 20年前
投稿: 92
Topic starter  

お手数掛けました。
void CFFFFFView::OnInitialUpdate()
{
//ResizeParentToFit(); // comment
}

ResizeParentToFitを消したら最大化できました。
回答くださった皆様、ありがとうございました!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました