调用Windows API 函数 MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType); 显示出一个int 型的变量,把我撂倒了,求助!例:  int posX=100;      然后调用Windows API的 MessageBox 函数  将posX变量的值显示出来。

解决方案 »

  1.   

    int posX = 100;
    CString STemp;
    STemp.Format( _T("%d"),posX );MessageBox( STemp );
      

  2.   

    2种办法:
    1、
    CString s;
    s.Format(_T("%d"), posX);
    MessageBox(..., s,...);
    2、
    LPTSTR lpsz = new TCHAR[100];
    _itot(posX, lpsz, 10);
    MessageBox(..., lpsz,...);
    delete lpsz;
      

  3.   

    CString::Format()格式化一下然后再MessageBox输出即可
      

  4.   

    int posX=100;
    char buffer[128] = {0};
    sprintf(buffer,"posX == %d",posX);
    MessageBox(hwnd,buffer,"", MB_OK);
      

  5.   

    一般用format
    例子:
    int a=1;
    CString b;
    b.format(_T("%d"),a);
    MessageBox(b);
      

  6.   

    你打算是WIN32 API是吧?#include <stdio.h>
    #include <windows.h>
    int WINAPI WinMain(...){
    int x=100;
    char buf[100]={0};
    sprintf(buf,"%d",x);
    MessageBox(NULL,buf,NULL,MB_OK);
    return 0;
    }
      

  7.   

    说道这个MessageBox(),我想起
    我经常用AfxMessageBox()+CString类型定义+.Format
    这三行加到程序体中的很多位置调试数据,任何常用类型的都没问题,立下很多功劳。
      

  8.   

    int posX=100;
    CString strInfo;
    strInfo.Format("%d", posX);
    MessageBox(0,strInfo,NULL,0);这样就可以了
      

  9.   

    int posX = 100;
    CString STemp;
    STemp.Format( _T("%d"),posX );MessageBox( STemp );
      

  10.   

    这个是ANSI版的,要Unicode的,自己修改。〔限vs20XX,VC6通不过编译〕
    #define MsgBox(pInfo, ...) \
    { char pBuf[256];\
    sprintf_s(pBuf, 256, pInfo, __VA_ARGS__);\
    ::MessageBoxA(0, pBuf, "调试", MB_TOPMOST|64);\
    }
      

  11.   

    debug时:
    afxDump << xPos << "\n";