• ベストアンサー

C言語 ダイアログボックスのアイコン

ダイアログボックスに、メッセージボックスではMB_ICONQUESTIONと指定すれば表示できたアイコンを表示したいと思うのですが、どうすればいいですか? 求めるものがはい、いいえの2通りならメッセージボックスで作ればよかったのですが分岐が複数に及ぶのでダイアログボックスにしなくてはならなくなりました。しかし、やっぱりアイコンがないと味気ないのでつけようと思ったんですが方法がわからなくて質問しました。 環境はWin7、Bccです。 回答よろしくお願いします。

noname#153104
noname#153104

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

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

何故このカテゴリなのか疑問ですが… >環境はWin7、Bccです。 とのことなので、Win32APIは使えるでしょう。 http://msdn.microsoft.com/ja-jp/library/cc364833.aspx LoadIcon(NULL, IDI_QUESTION) または… http://msdn.microsoft.com/ja-jp/library/cc364835.aspx LoadImage(0, OIC_QUES, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE|LR_SHARED) 辺りで読み込んで、 WM_SETICONかDrawIconで描画…でしょうか。 # 予めアイコンをリソースに設定しておいて、WM_SETICONする方が楽…でしょうかね。1回で済むし。

noname#153104
質問者

お礼

ありがとうございます。さっそくそのようにしてみます!!

noname#153104
質問者

補足

すみませんでした。このカテゴリーではなくてC/C++ですね。 こちらはそう指定したつもりだったのですが…

関連するQ&A

  • C言語 ダイアログボックスについて

    C言語でダイアログボックスを作っています。 閉じるボタンを押しても、ウィンドウが閉じないようにするには、どうしたらいいですか? ちなみに、閉じるボタンを表示しなくするのではなく、閉じるボタンは押せるのですがおしても無反応(操作を設定していないボタンみたいな)にすることはできませんか? 閉じるときに、ウィンドウだったらWM_CLOSEが送られてきますよね、それのダイアログ版というかがあれば閉じる作業をする前にreturnしてしまえばいいのですが・・・もしあったら教えてください。 コンパイラはBccです。

  • ダイアログボックスのアイコンについて

    zipファイル等をダウンロードする際に表示される 「開く」「保存」「キャンセル」と出る ダイアログボックスなのですが このダイアログボックスの左上に表示されてるアイコンを 変える事はできるのでしょうか? いろいろ調べて見たのですが分かりませんでした よろしくお願いします

  • C言語 ダイアログボックス

    C言語で、ダイアログボックスを表示した後、そのメッセージの内容を読み上げるようなプログラムを作っています。 そのためには.wavファイルを作ってPlaySoundですればいいのではと思ったのですが、自動で再生させるためにWM_INITDIALOG内で再生処理をさせるとダイアログが影も形も見当たらない状態で音声が再生されます。そこで、Showwindow関数を呼び出せばダイアログが表示されるのかなと思ってやってみても、ウィンドウの枠は出るのですがスタティックテキストが出ません。 あくまで、ボタンをおしたら音声を流すのではなく、ダイアログが表示されてから自動で音声を流す方法はないのでしょうか、あれば回答よろしくお願いします。サンプルソースなどあればありがたいです。

  • ダイアログボックスのタスクバーアイコンを表示するには

    BCC32で、C言語によりWin32 APIを用いたプログラムを勉強しております。 DialogBox()を使用すれば、ウィンドウ上に配置した各種コントロールのキーボード操作をWindowsに任せられて楽なので、メインウィンドウを非表示にして、ダイアログボックスによるアプリケーションを作っています。 ただし、この場合、タスクバーにアイコンが表示されません。 DialogBox() で作成したウィンドウについて、タスクバーにアイコンを表示させることは可能でしょうか? また、どのようにすれば良いでしょうか?

  • ダイアログBOXを開くアイコンの名

    市民サークルでパソコンの講師をすることがあります。PC関連資格=ITパスポート。 Office2010のエクセル・ワードでは、タブ毎にリボンがあります。そのリボンを複数のカテゴリーで分けていますが、その分けられたカテゴリー表示の下部に、ダイアログBOXを表示するための; 「小さな(5mm角くらい)の四角の中に、斜め右下方向の矢印を含んだアイコン(何となく薄い表示)」 があります。 手許の学習書では、イラスト、説明文中にも呼称は見当たりません。これを正式には何と呼ぶのでしょう? 自作=「ダイアログ・ボタン」^^;

  • C言語によるダイアログ操作について

    ダイアログボックスを表示するときに C言語からサイズの指定をしたいのですが 出来ません C++ではなくて(MFCを使用しない) C言語のソースから指定する方法を 教えてください。急ぎです!!

  • ダイアログボックスの表示が。

    Win95です。2点お願いします。 ・いくつかのダイアログボックスが、大きなフォントで表示される ようになってしまいました。おかしな表示になるのは、「印刷」や、 IEの「インターネットオプション」などです。 特に、IEはセキュリティーの変更ができなくて困ってます。 ・「画面のプロパティ」→「デザイン」でアイコンのサイズを変更 したところ、デスクトップアイコンが、にじんで表示されるように なってしまいました。元のサイズに戻しても直りません。 初歩的な質問で済みませんが、宜しくお願いします。

  • ダイアログボックス?メッセージボックスですか?

    用語がわからないので教えてください。 vbaで Sub インプット() InputBox ("インプットです") End Sub で表示されるボックスは ダイアログボックスですか? メッセージボックスですか?

  • ダイアログボックスについて。

    ダイアログボックスについての質問です。 開発環境はVisual C++ 2005.netでありSDKを利用しています。 ダイアログボックスにPicture Controlを貼り付け、Combo Boxの内容が変わるたびにそのPicture Controlに画像を表示するようなプログラムを作りたいと考えています。 自分が考える手順としてはまずPicture Controlについてサブクラス化を行い、親のダイアログボックスが表示されると同時にPicture ControlのプロシージャでWM_CREATEメッセージを受け取り描画を行う。 そして親のダイアログボックスに貼り付けたCombo Boxの内容が変更された場合に、Picture ControlのウィンドウハンドルにむけてWM_PAINTメッセージを送信する。 こんな手順で行いたいのですが、少し不安な部分が出てきました。 Combo Boxの内容が変更され、Picture Controlのウィンドウハンドルに向けてWM_PAINTメッセージを送信し、Picture ControlプロシージャではWM_PAINTメッセージがきたとき画像の描画を行う場合、このプロシージャではどの画像を描画してよいか不明です。 そのため何番の画像の表示命令が来たのかを示すために、親のダイアログボックスに貼り付けたCombo Boxが変更された場合、Picture Controlに向けてWM_PAINTメッセージと表示画像番号をパラメータとして送信したいのです。 もちろんグローバル変数を用意すれば簡単なのですが、できるだけ使用しないように記述をしたいのです。そこで考えたのが、 SendMessage(GetDlgItem(hDlgWnd, IDC_PICTURE), WM_PAINT, 0, MAKELPARAM(0, number)); このようにnumberをLPARAMの下位ワードとして送信しようと考えました。 このメッセージ送信を行い、Picture ControlプロシージャでWM_PAINTメッセージが到着したとき、LOWORD(lparam)からnumberを取り出す。 実現したい目的のため、このような方法を考えましたが、エラーなく実行できるでしょうか? もしあやしい部分が見つかった場合はアドバイスをお願いします。そしてこの方法よりも簡単に処理できる方法があれば教えていただきたいです。 自分としてはサブクラス化は面倒なので、Picture Controlをオーナードローとして扱う方法も考えましたが、うまく動きませんでしたTT

  • 警告のダイアログボックス

    インターネットをしていて何らかの警告がある時にダイアログボックスが出てきますが、「以後このダイアログを表示しない」という意味のチェックボックスがありますね。 これにチェックを入れると表示されなくなりますが、チェックを入れた後に表示を復活させる方法をご存じの方がいらっしゃれば教えていただけませんでしょうか? かなり初心者なので何の情報を書いたらいいのか分からないのですが、とりあえず、使っているのはwin98、IE5.0です。 どうかよろしくお願いいたします!!

専門家に質問してみよう