アプリケーションボタンを非表示にしたいのですが – プログラミング – Home

アプリケーションボタンを非表示にしたい...
 
通知
すべてクリア

[解決済] アプリケーションボタンを非表示にしたいのですが


コウ
 コウ
(@コウ)
ゲスト
結合: 23年前
投稿: 79
Topic starter  

いつもお世話になっております。

SDIで作成したアプリをタスクバーから消したいのですが、
どのように処理させればいいのかわかりません。

ダイアログベースで消す方法は、ネットで探してみつけました。
親を非表示にして子をメインとして使う方法なんですが、

これをSDIで行うには、SDIを新規で作成しなければならなくなり
SDIを新規で作成する方法がわかりません。

宜しくお願い
致します。


引用未解決
トピックタグ
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

WS_EX_TOOLWINDOWを追加する。

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.dwExStyle |= WS_EX_TOOLWINDOW;
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
return TRUE;
}


返信引用
コウ
 コウ
(@コウ)
ゲスト
結合: 23年前
投稿: 79
Topic starter  

たいちうさん>
ありがとうございます。出来ました。

ですが、この部分は何をしているかわかりません。
すみませんが、解説をお願い致します。

if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

基底クラスのPreCreateWindowを呼んでますね。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

一から説明するのは勘弁。
何が分からないのか絞ってくれれば説明できるかも。

C++の継承の知識は十分身に付けてね。


返信引用
コウ
 コウ
(@コウ)
ゲスト
結合: 23年前
投稿: 79
Topic starter  

επιστημηさん>
はい。ですがなぜに呼ぶ必要があるのでしょうか。

たいちうさん>
はい。上にも書きましたが
なぜにCFrameが出てきたのかがわからないんです。

継承についてですね。調べてみます。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

> なぜにCFrameが出てきたのかがわからないんです。
継承元だから。

> 継承についてですね。調べてみます。
調べた後で、再質問してほしかった。


返信引用
コウ
 コウ
(@コウ)
ゲスト
結合: 23年前
投稿: 79
Topic starter  

たいちうさん>
> 調べた後で、再質問してほしかった。
すみません。

調べてみたのですが
CMainFrameWndの継承したのがCFrameWndとなり
その継承元を記述しなければ
継承先のみとなってしまうからですね。

すみません うまく説明ができません。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

> CMainFrameWndの継承したのがCFrameWndとなり
> その継承元を記述しなければ
> 継承先のみとなってしまうからですね。

タイポが多いと、どこまで理解しているのか分かりにくくなります。
気をつけましょう。

CFrameWndを継承したものがCMainFrameね。
CFrameWndが継承元。一般的で、ライブラリ(MFC)の一部。
CMainFrameが継承先。カスタマイズするやつ。

PreCreateWindowは、その名の通りウィンドウを作る直前に呼ばれます。
この関数内では前処理をしてやる必要がありますが、デフォルトの前処理が
CFrameWnd::PreCreateWindow()に書かれています。
共通部分は継承元にあるということ。

今回は特別な前処理を追加しますので、それを1行追加しました。
追加する場所は勿論、CMainFrameのPreCreateWindow()。
この後、本来のデフォルトの前処理を呼ぶために、
CFrameWnd::PreCreateWindow()を呼びます。

この辺はかなり複雑な仕組みなので、これもかなり端折った説明です。
それなりに理解したいのならば、C++を身に付けることと、
WinAPIのみを使ったプログラミングの知識を身に付けることをお薦めします。


返信引用
コウ
 コウ
(@コウ)
ゲスト
結合: 23年前
投稿: 79
Topic starter  

たいちうさん>
説明して頂き
誠に、ありがとうございました。

>それなりに理解したいのならば、C++を身に付けることと、
>WinAPIのみを使ったプログラミングの知識を身に付けることをお薦めします。
しっかりと身に付けたいと思います。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

言葉が足りなかったけど、C++とWinAPIは、MFCの為の予備知識としてあげました。
C++とWinAPIを理解 != MFCを理解


返信引用
コウ
 コウ
(@コウ)
ゲスト
結合: 23年前
投稿: 79
Topic starter  

たいちうさん>
了解致しました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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