MessageBoxを使用するには?

解決


ほるもん  2006-03-20 13:09:10  No: 60981  IP: 192.*.*.*

こんにちは。
現在の環境ですが、XP、VC++.NET2003(MFC)にてPGを作っています。

MessageBoxの質問なのですが、
クラスの追加でXXX.cpp、XXX.hを追加し、
XXX.cppに
MessageBox("エラー表示","ヘッダ名",MB_ICONSTOP);を記述したのですが、

'MessageBoxA' : 関数に 3 個の引数を指定できません。'
となってしまします。
MFC側(初めにできるXXX.cpp、XXX.h)では記述しても
エラーが出ないのですが・・・・・。

・クラスを追加した理由はメッセージ系を纏めたかったからです。
・AfxMessageBoxで記述しないのはダイアログのヘッダに、
  プロジェクト名ではなく、ヘッダ名を表示したいからです。

ご存知の方、教えてください。
宜しくお願い致します。

編集 削除
みい  2006-03-20 13:33:34  No: 60982  IP: 192.*.*.*

「クラスの追加」で何のクラスを追加したのでしょうか。
MessageBoxメソッド(引数3個)はCWndのメンバだから
基本クラスがCWndのクラスでないと駄目ですよ。
APIのMessageBox(引数4個)でオーナーにNULL指定でどうでしょう。

編集 削除
Blue  2006-03-20 13:35:00  No: 60983  IP: 192.*.*.*

WinAPIのMessageBoxは

int MessageBox(
  HWND hWnd,          // オーナーウィンドウのハンドル
  LPCTSTR lpText,     // メッセージボックス内のテキスト
  LPCTSTR lpCaption,  // メッセージボックスのタイトル
  UINT uType          // メッセージボックスのスタイル
);

で、

CWndクラスのメンバ関数の MessageBox は

int MessageBox(
  LPCTSTR lpszText,
  LPCTSTR lpszCaption = NULL, 
  UINT nType = MB_OK );

ダイアログクラス内で MessageBox とすると、親クラスの CWnd::MessageBox が呼ばれますが、
自作クラスの場合は、親クラスがないので、WinAPIのMessageBoxが呼ばれます。

編集 削除
ほるもん  2006-03-20 13:59:38  No: 60984  IP: 192.*.*.*

早急な回答ありがとうございます。
クラスの追加ですが、一般を選択し追加したので自作クラスでした。
説明が足りず、すいません。

教えて頂いた通り、WinAPIのMessageBoxの引数4個の指定で、
うまくいきました。  
(恥ずかしい話、半日悩んでました。。。。。)

みいさん、Blueさん 
本当にありがとうございました。

編集 削除