• ベストアンサー

SDKについて…新規ウィンドウ

今SDK(WIN-API)でプログラムを作成しているんですが、メインプログラム(WinMain.cpp)の中のOKボタン(CreateWindow{…})を押したら別の新規ウィンドウ(WinSub.cpp)を呼び出したいのですが、やり方がいまいち分かりません。どなたかご助言お願いします。 WinMain.cpp はメインプログラム WinSub.cppはサブプログラム

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.3

「閉じたら次の新しいダイアログを表示」ではなかったのですね? 質問文を読み違えていたようです。 > *コメントの場所に新規処理を載せたいのです。 最初のダイアログを開いたときと同じような処理を書けばよろしいかと。 ただ、ダイアログでWM_CREATEって来ましたっけ? WM_INITDIALOGかと思いましたが……。 # 次のダイアログの処理がWinSub.cppに書かれていて、 # WinMain.cppのダイアログプロシージャから呼び出すように書くとビルド時にエラーになる。 # というのであれば、「分割コンパイル」について調べてください。

skyforce
質問者

お礼

WM_INITDIALOGと分割コンパイルについて調べてみます。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

>はい、OKボタンを押したら新しいウィンドウを開くようにしたいんです。すいませんでした。 どういったコードかかれているのか判らないままですが…… 最初のダイアログボックスをDialogBox()APIで開いているのであれば、 最初のダイアログボックスを閉じる時のEndDialog()で指定した値が戻り値として受け取れます。 その値で判定して次のダイアログボックスをDialogBox()で開けばよろしいでしょう。 最初のダイアログボックスがCreateDialogで作成し、メッセージループを自分で組んでいたりする場合は、PostQuitMessage()などで抜けるでしょうから、そちらで判定可能かと。 ところで、WinMain.cppとWinSub.cppはどんな内容なんでしょう?

skyforce
質問者

補足

ソースの一部を載せます。下のソースはOKボタンの設置処理です。 switch (msg) { case WM_CREATE: hBth = CreateWindow("BUTTON","OK",         WS_VISIBLE | WS_CHILD,20,80,60,25,         hWnd,(HMENU)ID_BUTTON1,hInstance,NULL);                : この下は、OKボタンを押されたときの処理です。      case WM_COMMAND:         switch(LOWORD(wParam)){           case ID_BUTTON1:         /* 新規ウィンドウの処理 */      case WM_DESTROY:     PostQuitMessage(0);     break;               : *コメントの場所に新規処理を載せたいのです。 始めたばかりなのでうまく説明できませんがお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

具体的になにがしたいのか判りません。 ダイアログスタイルのプログラムで、OKボタンを押したら新しいウィンドウを開きたいということでしょうか?? WinMain.cpp/WinSub.cppがどのようになっているのか判らないのでなんとも言いようがないです。 ある程度の内容は掲示された方がよろしいかと思います。

skyforce
質問者

補足

>ダイアログスタイルのプログラムで、OKボタンを押したら新しいウィンドウを開きたいということでしょうか?? はい、OKボタンを押したら新しいウィンドウを開くようにしたいんです。すいませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Windows SDK for Windows VistaのDL

    Windows SDK for Windows VistaのDL Windowsプログラムで新たにSDKをDLしなくてはならなくなったのですが どこからDLすればいいのでしょうか? Windows SDKの日本語版をインストールしたいのですが、なかなか辿りつけません。 どこかにDLできるURLがあるはずなんですが、どこにあるのでしょうか? プログラムをビルドすると 「Show.CPP」と「Image.CPP」と「Music.CPP」がないとエラーメッセージが出る (.h系も)ので上記のSDKをDLすることになりました。 開発環境はVS2003.NETです。(OS XP 32bit)

  • SDKでのWinmain同時起動について

    windows SDKの話なんですが、二つのプロジェクトまたは同じプロジェクト内の二つのWinmain関数を起動することはできるのでしょうか? たとえばプロジェクトAとプロジェクトBがあり、プロジェクトAのWinmainから始まったプログラムがダイアログを作成しているとして そのダイアログのボタンを押すと、プロジェクトBのWinmain関数から始まったプログラムを起動するみたいなことなんてできるのでしょうか? 言葉たらずで申し訳ありませんが回答よろしくお願いします。 ちなみにVisual C++6.0を使用しています。

  • windows APIとwindows SDK

    windows APIとwindows SDKって、なにか関係とかありますか?? それとも、この2つはまったく別もんですか??

  • SDKを使ったプログラミングについて

    現在Visual C++ 2005を使ってアプリケーションを作成しようとしています。 すでにWin32APIアプリケーションがあり、それにSDKを使って機能追加をしようとしています。 しかしそのSDKがMFCで書かれているためにどのように機能を呼び出すのかわかりません。 (SDK付属の説明書を読んでも全然わかりませんでした) SDKのヘッダーファイルのインクルードはできるのですがその先機能の呼び出しができません。 すごく抽象的なのですがSDKを使ったプログラミングについてわかりやすく解説しているWEBサイトなどはありませんか? また、MFCをWin32に移植する、などといった方法を解説しているところでも構いません。 ちなみにプログラミングスキルは初心者というよりは素人です。 よろしくお願いします。

  • VC++2008でAPI関数とプログラムの連動

    現在“fopenでtxtファイルを開き内容を参照して特定の文字列があればメッセージボックスを表示する”というプログラムを作ろうとしているのですが、 API関数でメッセージボックスを表示させる.cppファイルを「Win32プロジェクト」でつくり、 それとは別にfopenでtxtファイルを開く.cppファイルを「Win32 コンソールアプリケーション」で作ったのですが、 この二つのプログラムを連動させて動かすことは可能なのでしょうか? それぞれ別のプロジェクトで作ったのはそうしないと _WinMain@16 が関数 ___tmainCRTStartup で参照されました。 というエラーが発生してしまうためです。 API関数を使う方では最初にWinMainを定義?し、fopenを使用している方ではint main()を定義しているのですが、そこでエラーが起きてしまっているようなのですが…

  • 用語の違い教えてください

    win32apiというのはプログラム言語なのでしょうか?(C言語とかと同格なのか?) あとwin32api と SDK の用語の違いを教えていただけないでしょうか? WIN32APIにより作ったプログラムがSDK(マルチウィンドウではないときに限る)という意味ですか?

  • アクティブウィンドウと非アクティブウィンドウを作るには??

    メインとなる画面にボタンを作り、ボタンを押すと別のウィンドウが開くようなプログラムを作成したいのですがどうしたらいいのでしょうか?  新しい画面が開かれているときは、メインの画面をクリックしてもそちらは操作出来ないようにしたいのです。 何を使ったらいいかなど詳しく教えてください。 宜しくお願いします!!

    • ベストアンサー
    • Java
  • DirectX9.0SDK(2005August)でのcppファイルの追加について・・・

    こんばんは、このたびはDirectX9.0のSDK(2005August)をインストールし、早速開発しています。 そこで分からないことがあるので質問させていただきます。 大きなプログラムを作るときって、機能ごとにファイルに分けますよね。で、プログラムを分けるときって、~.cppと~.hをセットみたいに作りますよね? 普段はこれでプログラムの分割もできるのですが 今回、SDKについているCommonフォルダ内のファイルを使ったサンプルに、自分で作ったプログラムを追加していった結果、コンパイル時にcppファイルで必ず「プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。」というエラーが発生してしまいます。(なぜかメイン関数のあるcppファイルではそのエラーは出ないのですが・・・) この原因と解決法について、どなたかご存知でしたら回答をお願いいたしますm(_ _)m 分かりづらい質問ですみません^^;

  • Windowsプログラミングについて。

    プログラム初心者です。現在Win32APIを用いて、簡単なプログラムを作成中です。質問させてください! 今、現在私の作っているアプリケーションのウインドウ上にあるボタンを押すと(例 case IDC_BUTTON1の時、) (1)そのボタンを押してから10秒ほどたったあとに、 あるMessageBoxを表示させたいと考えております。 ↑の(1)のところをどうプログラムで書けばいいのかわかりません。 アドバイスよろしくお願い致します!!

  • VC++でウィンドウを作る場合・・・

    えっと、VC++初心者です。 VC++でウィンドウを作るのに色んな方法があるようですが、 WIN32APIの Create関数(CreateEX関数含む)と CreateWindow関数(CreateWindowEX関数含む)の 使い分けの違いがよく分かりません。 どういったときにどちらを使うのがよいのでしょうか? どうぞ宜しくお願いします。