初歩的な質問で恐縮なのですが、

MDIアプリケーションで起動時に空のウィンドウが開かないようにするにはどうすればよいのでしょうか?

目的
MDIで作ったデータ入力ソフトがありまして、それを閲覧専用に改造したいのです。
つまり、既存のファイルを開くだけでいいのに最初に空ファイルのウインドウが立ち上がるのがウザイということです。
もとのプロジェクトはVC++5.0で作られており(作成者がいなくなってしまった)、今はVC++6.0にコンバートして編集しています。

A 回答 (1件)

MFCで作ったものであれば、CxxApp::InitInstance()のProcessShellCommand()を呼んでる直前で


cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
を入れてやれば起動時にドキュメントが新規作成されなくなります。
詳しくはCCommandLineInfoクラスのヘルプを参照してください。

Win32APIで作られたものだったらわかりませんが、子ウィンドウが作られる所でブレークを張ってコールスタックを見ればある程度追えるんじゃないでしょうか。


例)
// DDE、file open など標準のシェル コマンドのコマンドラインを解析します。
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
// コマンドラインでディスパッチ コマンドを指定します。
if (!ProcessShellCommand(cmdInfo))
return FALSE;
    • good
    • 0
この回答へのお礼

ありがとうございます。
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
でうまくいきました。とても助かりました。
お盆休みでお礼が遅れてしまい申し訳ありませんでした。
m(_ _)m

お礼日時:2001/08/16 10:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qvc++6.0 と vc++2500

vc++6.0で

ifstream ifs("userkey.dat");
ifs.getline(oc_user1, 63);

となっていてコンパイルできていたのですが

2005にしたら
コンパイルできません
どうしたらコンパイルできますか

6.0と2005の違いを知るには何を読んだらいいでしょうか?

Aベストアンサー

std::ifstream ifs("userkey.dat");
ifs.getline(oc_user1, 63);

としてみてはいかがでしょうか。

QVC++5.0とVC++6.0の違いは?

何がどう変わったんでしょうか?
なんとなく使っているだけなのでぜんぜんわかりません。

簡単にんでいいんで思いつくことを書いてもらえるだけでもうれしいです。


よろしくお願いいたします。

Aベストアンサー

MFCのバージョンが違います。MFCのリファレンスを見れば6で増えた機能が分かります。

例えばブラウザを簡単に作れるCHtmlViewは6でないと使えません。

QVC++6.0からVC++.NETへの変遷について

VC++がようやく分かり出したこの頃ですが、今日本屋に立ち寄ったら、なっ なんとVC++の本がほとんど無くなり、代わりにVC++.NETとVC#ばかりになっていました。

C#はVC++とは違うと聞いていたのですが、読んでみるとVC++.NETもかなり違ってました。
(かなり違うという表現は、各人の状況により意見が異なると思いますが)

私のような本を見ながらコードを打って勉強している初心者にとって、VC++.NETの本ではVC++6.0を動かすことができません。

今から勉強する人や本を買って勉強しようとしている人あるいは、コンパイラを手に入れようとしている人はVC++.NETに移行してしまわざるを得ないのでしょうか?

すでにVC++6.0を十分活用出来ている人も、時代の流れでNETやC#を勉強していかなければならないのでしょうか?

つまり、単なるバージョンアップとは一線をなす変更がなされたということなのでしょうか?

良くご存知の方見解をお願いします。

Aベストアンサー

すぐにではありませんが、.NETに移行せざるを得なくなるでしょうね。
ただ、開発環境という面では、VS.NETにはC++が含まれており、C++の部分は
従来のC++も利用できるようになっていて、これはアンマネージC++と呼ばれています。
C++で.NETのコードを作成する時は、マネージC++という拡張仕様で記述します。
また、従来のコードと.NETフレームワーク用コードを混在させてアプリケーションを
開発することもできます。これは、相互運用という形で説明されています。

ということですので、C++で習得したものが無駄になることはありません。
たぶん、.NET環境の開発には、C++よりもC#やVB.NETを利用することが
多くなると思いますが、C++を理解していることはプラスにはなってもマイナスには
なりませんので、頑張って下さい。

.NET関連のサイトを2つご紹介しておきます。ご参考に。
http://www.microsoft.com/japan/msdn/library/default.asp
http://www.atmarkit.co.jp/fdotnet/index.html

すぐにではありませんが、.NETに移行せざるを得なくなるでしょうね。
ただ、開発環境という面では、VS.NETにはC++が含まれており、C++の部分は
従来のC++も利用できるようになっていて、これはアンマネージC++と呼ばれています。
C++で.NETのコードを作成する時は、マネージC++という拡張仕様で記述します。
また、従来のコードと.NETフレームワーク用コードを混在させてアプリケーションを
開発することもできます。これは、相互運用という形で説明されています。

ということですので、C++で習得したもの...続きを読む

QVC++6.0からVC++.NET2005へ移植

VC++6.0で作成したプログラムをVC++.NET2005に移植しました。
ビルドを行うと『fatal error LNK1104:ファイル'mfc42.lib'を開くことができません。』のエラーが出てしまいます。
ソリューションのプロパティを見てもどこで「mfc42.lib」の参照を定義しているのか分かりません。
どこで「mfc42.lib」の参照を定義しているのか教えてください。また、対策を教えてください。

Aベストアンサー

VC++.NET2005のエディションをお教えください。
Express Editionでは、リソースエディタがない、
ATL, MFCが使えないなどの制限がいくつか存在します。

また、VC2005などでは.NET Frameworkの開発が前提となっており
WIN32APIを使用する場合などについては、Platform SDKを
インストールする必要があります。

QVC++とVC++.NETその違いと最初に始めるならどっち?

学校でC言語の授業がスタートします。
別の言語のプログラムなら結構やりましたがC並びにVBは初めて(結構ワクワクしてます)

そして、この授業受ける人にVS6.0が教材として配布されたのですが(すでに家の部屋の片隅にありました(^^;)

他に必要な機材あるとの事でパソコン屋さんにいったついでに例のソフトあるのか見に言ってみました。
そしたらVS6.0がないΣ(゜Д゜;)
そのかわり、VS.NETがありました。「.NET?」首をかしげて店員さんに聞きます「.NETってなんですか?」でも「ちょっとそこまでは…」と首かしげて冷や汗だしてました。(当たり前ですよね)

じゃぁ「.NET」ってなぁにとなりますよね。うーんいったいなんだろう?何もしらない私はもちろんわかりません。

でも、「最新版だからいいのは確かだよね^^;」と思います。学校ではVS6.0使いますが、私は他の友達よりいい作品をたくさん家でつくって「エッヘン<( ̄^ ̄)>」となりたいです。(これは技術の向上にも役立ち一石二鳥ですからね。)

じゃあ質問です。

・VC++(又はVS6.0)とVC++.NET(又はVS.NET)その違いはなぁに?

・最初からVC++.NET(又はVS.NET)で初めていいのですか?

非常に悩む部分です。もうすぐC言語の授業があじまります。また授業で習ったことを生かして自分の趣味とお友達作りにも役立てたいなぁと思ってます。

どうか相談おねがいします。

学校でC言語の授業がスタートします。
別の言語のプログラムなら結構やりましたがC並びにVBは初めて(結構ワクワクしてます)

そして、この授業受ける人にVS6.0が教材として配布されたのですが(すでに家の部屋の片隅にありました(^^;)

他に必要な機材あるとの事でパソコン屋さんにいったついでに例のソフトあるのか見に言ってみました。
そしたらVS6.0がないΣ(゜Д゜;)
そのかわり、VS.NETがありました。「.NET?」首をかしげて店員さんに聞きます「.NETってなんですか?」でも「ちょっとそこま...続きを読む

Aベストアンサー

そもそもVS6はとっくの昔に販売終了しています。
新規購入なら自動的に.NETとなります。

#> この授業受ける人にVS6.0が教材として配布されたのですが
# いいのかそんなことして? > せんせえ


問題ありません。少なくとも数年前までは、学校にはこういったライセンス形態がありました。


それとVisual Studio 2003ってそんなに高いですか?
学生専用版は確かアマゾンで3800円でしたが。プログラムをするなら、あれはどう見ても買い得だと思います。

参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/B0002ERS18/249-3944748-4369905


人気Q&Aランキング

おすすめ情報