AfxMessegeBox – プログラミング – Home

通知
すべてクリア

AfxMessegeBox


もも
 もも
(@もも)
ゲスト
結合: 24年前
投稿: 36
Topic starter  

AfxMessegeBoxに外部変数を表示させることは
できないのでしょうか?
printfの%dみたいに。。


引用解決済
トピックタグ
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

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

MSDN一部引用

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


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

追加
>printfの%dみたいに。。

CStringのFormatを参照しましょう


返信引用
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

char sBuf[16];

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

ではだめなんですか


返信引用
ん
 ん
(@ん)
ゲスト
結合: 24年前
投稿: 106
 

昔作っていつもこれ使ってます、ご参考になれば、
//  今見ると馬鹿なことやってるな、とか自分でも思うところがありますが・・・

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);
}


返信引用
渡り鳥
 渡り鳥
(@渡り鳥)
ゲスト
結合: 23年前
投稿: 14
 

簡単にやるなら

int a;
CString b;

b.Format(%d,a);

AfxMessageBox(b);

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


返信引用
ん
 ん
(@ん)
ゲスト
結合: 24年前
投稿: 106
 

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

MessageBoxF(%d,foo);

とか書いてる。


返信引用
渡り鳥
 渡り鳥
(@渡り鳥)
ゲスト
結合: 23年前
投稿: 14
 

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました