解决方案 »

  1.   


    CStatic myStatic;// Create a child static control that centers its text horizontally.
    myStatic.Create(_T("my static"), WS_CHILD|WS_VISIBLE|SS_CENTER, 
       CRect(10,10,150,50), pParentWnd);   MSDN上的例子
      

  2.   

    CStatic *myStatic = new CStatic;
    myStatic->Create(_T("静态文本框"),WS_CHILD|WS_VISIBLE|SS_CENTER,CRect(10,10,150,50),this);
      

  3.   

    Error 1 error C2143: syntax error : missing ';' before '->' f:\c\pratice_one\pratice_one\pratice_onedlg.cpp 233 1 pratice_one
    Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int f:\c\pratice_one\pratice_one\pratice_onedlg.cpp 233 1 pratice_one
    Error 3 error C2040: 'myStatic' : 'int' differs in levels of indirection from 'CStatic *' f:\c\pratice_one\pratice_one\pratice_onedlg.cpp 233 1 pratice_one
    运行之后出现了上面几个错误,实在不明白啊
      

  4.   

    动态创建Static,需要有一个生命周期足够长的静态控件指针变量,所以最好声明一个类的成员变量:
    类的头文件.h里面添加:
    public:
    CStatic *m_pStatic;类的执行文件.cpp对话框构造函数中对其进行初始化:
    m_pStatic = NULL;创建静态控件的函数里:
    if(m_pStatic && m_pStatic->IsWindowVisible())
    {
    return;
    }
    else
    {
    m_pStatic = new CStatic;
    m_pStatic->Create(_T("动态创建的静态文本"),WS_CHILD|WS_VISIBLE,CRect(0,0,200,200),this,123);
    }
      

  5.   

    为什么必须new一个才行呢?不是声明了就有对象了?