AfxMessegeBox

[戻る]
もも 2002/09/11(水) 06:58:01
AfxMessegeBoxに外部変数を表示させることは
できないのでしょうか?
printfの%dみたいに。。

wood 2002/09/11(水) 07:15:56
>int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );
>引数
>lpszText
>メッセージ ボックスに表示されるメッセージを持つ CString オブジェクトまたは 
>NULL で終わる文字列へのポインタ。

MSDN一部引用

ご質問の意味不明なのですが、ヘルプ見てますか

wood 2002/09/11(水) 07:18:26
追加
>printfの%dみたいに。。
は
CStringのFormatを参照しましょう

アイススケーター 2002/09/11(水) 07:51:44
    char    sBuf[16];

    sprintf( sBuf, "%d", i);
    AfxMessageBox(sBuf);

ではだめなんですか

2002/09/13(金) 11:22:06
昔作っていつもこれ使ってます、ご参考になれば、
//  今見ると馬鹿なことやってるな、とか自分でも思うところがありますが・・・

void MessageBoxF( const char* format, ... )
{
    static vector<char> tmp(1000);

    va_list args, source;
    va_start(args, format);
    source = args;
    
    try{
        while(1){
            args = source;
            
            if( _vsnprintf( &tmp[0], tmp.size(), format, args ) == -1 ){
                tmp.resize( tmp.size() * 2 );
            }else{
                break;
            }
        }
        
    }catch(...){
        tmp.resize(1000);
        strcpy( &tmp[0], string("MessageBoxF 失敗").c_str());
        vector<char>(tmp).swap(tmp);
    }

    tmp.push_back('\0');
    AfxMessageBox( &tmp[0] );

    va_end(args);
}

渡り鳥 2002/09/13(金) 14:09:15
簡単にやるなら

     int a;
     CString b;

     b.Format("%d",a);

     AfxMessageBox(b);

これでできますよA^^;)

2002/09/13(金) 16:06:58
いや、いちいちテンポラリのCStringでスコープ汚すのが嫌だったのと、
自分の勉強のために作ったので・・・
いつも見えるとこにおいておいてあるので、デバック中とかほとんど何も考えずに

MessageBoxF("%d",foo);

とか書いてる。

渡り鳥 2002/09/13(金) 16:24:37
なるほど!
ぱっと見難しそうだったんでほとんど見てませんでしたA^^;)
確かに一度作ってしまえばこういった方法のが楽かもしれませんね.
参考になりましたm(_ _)m

古いスレッドには追加発言できません。