
VC++2005、MFCにてプログラムを作成しています。
サイズ変更枠のダイアログには、デフォルトでタイトルバーの左端に、
小さいウィンドウのようなアイコンが表示されますが、
クローズボックスは表示したままで、アイコンだけを消したいのです。
(よってプロパティのSystemMenuの値はTrueで固定)
自分で調べた方法で、
1.m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); を消す。
2.OnInitDialog()中で次の2行を消す。
SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
SetIcon(m_hIcon, FALSE); // 小さいアイコンを設定
とありますが、どちらも不可能でした。
※IDR_MAINFRAMEがソースに存在しない、OnIni内にSetIconが存在しない等
GetWindowStyle()を利用すれば実現できるとも聞いたのですが、
使い方が分からず、手が出せない状況です。
もし実現させる方法をご存知の方おられましたら、ご教示お願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは。
以下は、MFC使用&ダイアログベースでのWinアプリ作成時(デフォルト構成から
あまり変更を加えていない場合)の話としてのコメントです。
※見当外れだった場合はすみません。
まず、ダイアログクラスの OnInitDialog() 内に、
SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
SetIcon(m_hIcon, FALSE); // 小さいアイコンを設定
のような記述がなく、かつ「アプリ実行時のタイトルバーにアイコンが表示されている」
ということは、システムのデフォルトのアイコンが表示されているのかもしれません。
それと、リソースエディタでのダイアログのプロパティ設定にて、
[境界線] の設定を 「サイズ変更枠」
に設定されているのではないでしょうか?
あくまで一例ですが、以下のような設定でアイコンを非表示にできるかもしれません。
※上手くいかなかった場合はすみません。
※当方は「VC++2005」を使ったことがないので、設定の画面、項目名などが異なって
いるかもしれません。 その際は、同等な機能・項目などに置き換えて下さい。
(もう過去の遺物ですが、当方は未だに「Visual C++ 5.0」を使用しています。(^_^;) )
==============================
■リソースエディタ上でのダイアログのプロパティ設定
スタイル : ポップアップ、または、オーバーラップ
境界線 : ダイアログ枠
※ここでは「サイズ変更枠」には設定しない。
タイトルバー : チェックマークをON
※スタイル設定をポップアップにした場合。
システムメニュー : チェックマークをON
■ダイアログクラスの OnInitDialog() への変更・追加
下記の例のように、ウインドウスタイル、システムメニューの設定を変更・追加してみて下さい。
this->ModifyStyle(0, WS_THICKFRAME); //←スタイルに「サイズ変更枠」を追加
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{ //↓システムメニューに「サイズ変更」を追加
pSysMenu->AppendMenu(MF_STRING, SC_SIZE, "サイズ変更(&S)");
}
あと、もし下記2行のような記述があった場合は、コメントアウトさせるか、削除して下さい。
SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
SetIcon(m_hIcon, FALSE); // 小さいアイコンを設定
【補足】
1)作成したアプリ実行時に、タイトルバー上で右クリックするとシステムメニューが表示されると
思います。
2)参考までに、上記の設定を行ったサンプルアプリでの、ダイアログプロパティの設定画面例と、
アプリ実行画面のキャプチャ画像を添付してみました。
==============================
なお、上記の設定例は下記サイトを参考にさせて頂きました。
■参考サイト
ダイアログの左端のアイコンを非表示にするには?
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng. …
ダイアログのシステムメニューで、アイコンはつけないで×「閉じる」ボタンだけつけるには?
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng. …
CreateWindowで作成したウィンドウに、アイコンはつけないで×「閉じる」ボタンだけつけるには?
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng. …
以上です。参考になれば幸いです。

ご回答ありがとうございます。
VC++2005にて上記方法を試してみた結果、
期待通りの動作をさせることが出来ました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
SetWindowLong()でタイトルバー左端のアイコンを消す
C言語・C++・C#
-
リストビューの選択状態を取得するメッセージはありますか?
C言語・C++・C#
-
リストコントロールのデータの変更を検知したい
C言語・C++・C#
-
-
4
リストコントロール(MFC or API)の最後尾にアイテムを追加するには?
C言語・C++・C#
-
5
画面を強制的に再描画させる方法
C言語・C++・C#
-
6
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
7
ダイアログボックスのボタンコントロールのフォーカスについて
C言語・C++・C#
-
8
リストコンロールの一行だけを太文字に(VC++)
C言語・C++・C#
-
9
エディットコントロールのイベントハンドラ
Microsoft ASP
-
10
MFCでOnPaintのタイミング
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変更されたブックマークのUR...
-
ファイル名の文字色の変更は出...
-
ユーザー名の変更方法は?
-
ステータスバーの文字の大きさ...
-
文字サイズの変更 Android のタ...
-
このサイトで、「新着」の質問...
-
win10でウィンドウサイズ変更の...
-
パソコンのメールアドレスの変更
-
動画やフラッシュのページを開...
-
Video DownloadHelperについて
-
管理者権限以外でIP設定を変更...
-
拡張子表示をオフにしたまま拡...
-
【VC++6.0(MFC)】スタックメモ...
-
LibreOfficeのCalcに関する質問...
-
word2016のオプションの設定が...
-
Windows XPでプロキシの設定を...
-
サブネットマスクの変更
-
自宅で仮想サーバを立てたい
-
Microsoftアカウント1つを2台...
-
windows11にて管理者アカウント...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名の文字色の変更は出...
-
変更されたブックマークのUR...
-
Windows11PCでMACアドレスの変...
-
ステータスバーの文字の大きさ...
-
管理者権限以外でIP設定を変更...
-
CD-Rのボリュームラベルの変更...
-
マウスのカーソルの一括変更
-
word2016のオプションの設定が...
-
IISのWebサーバ自体のI...
-
PCのレジストリエディタ内の項...
-
「Windows 10」で「エッジ」を開...
-
集合型のポスト?あれの暗証番...
-
「コンピュータ名」の設定について
-
windows10でのアプリの表示がお...
-
メールの背景色と文字色の変更
-
Googleアカウント 個人情報の設...
-
LibreOfficeのCalcに関する質問...
-
IPアドレス変更後の再起動
-
エクセルのコメント
-
ACCESSタイムスタンプに...
おすすめ情報