目的  在EXCEL中画一个文字框 并设置文字
问题  如何对TextBox 设置文字代码
Shapes shape=wsMysheet.GetShapes();
TextBox box=shape.AddTextbox(1,left_,36,width_,18);  //画一个文字框 OK
LPCTSTR m_text=(LPCTSTR)pState->GetName().c_str();   //定义文字  OKbox.SetText(m_text);       //  退出程序 ????也试过box.SetCaption,结果一样.
函数原形
void TextBox::SetText(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x8a, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
 lpszNewValue);
}

解决方案 »

  1.   

    box.SetText(m_text); 执行了这句后程序就退出?那先检查m_text里的内容是否正确?
      

  2.   

    m_text是正确的,但一执行到box.SetText(m_text);  就出问题
      

  3.   

    m_text是 0x0e763fdc"Milestone", 有什么问题吗?
      

  4.   

    void TextBox::SetText(LPCTSTR lpszNewValue)
    {
    static BYTE parms[] =
    VTS_BSTR;
    InvokeHelper(0x8a, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
     _bstr_t(lpszNewValue));
    }
      

  5.   

    lpDisp=ShapeRect->AddShape(1,left,top,width,height)
    ASSERT(lpDisp);
    SelectShape.AttachDispatch(lpDisp);
    strTextFrame=SelectShape.GetTextFrame();
    characters.SetText("文字");
      

  6.   

    -_-!這裡也做廣告??接上述代碼!!
    strTextFrame.SetHorizontalAlignment(-4108);
    strTextFrame.SetVerticalAlignment(--4108); characters.DetachDispatch();
    strTextFrame.DetachDispatch();
    SelectShape.DetachDispatch();
      

  7.   

    to xiaochui():characters.SetText("文字"); 中的characters,前面没有定义.
      

  8.   

    -_-!    Characters    characters;
      

  9.   

    to xiaochui():
    ..................................
    lpDisp=ShapeRect->AddShape(1,left,top,width,height)
    ASSERT(lpDisp);
    SelectShape.AttachDispatch(lpDisp);
    strTextFrame=SelectShape.GetTextFrame();Characters    characters;
    characters.SetText("文字");
    ..................................
    characters和strTextFrame,ShapeRect未产生任何关系,
    看来你的这段代码没什么意义.
      

  10.   

    VARIANT       varStart,varLength;
        VariantInit(&varStart);                        // 
    VariantInit(&varLength);
        varStart.vt   = VT_I4;                         // 
    varLength.vt  = VT_I4;
        varStart.lVal = 1; 
    varLength.lVal= 500;characters.AttachDispatch(strTextFrame.Characters(varStart,varLength));    //add
      

  11.   

    to xiaochui():
       你好, 稍微有所进展. 
       运行通过,不再退出程序了,但是文字(characters.SetText("文字");)
    没有表示出来.   不知道是否是下面设置的问题,有什么特殊意义吗?    varStart.lVal = 1; 
        varLength.lVal= 500;
      

  12.   

    sz_04022
       试过了多次,总是退出程序
       现在只能理解为
    box.SetText(m_text);       box.SetCaption(m_text);
    这两个基本方法不好用
      

  13.   


    //在VBA中,建立一個框體,輸入“123”
    With Selection.Characters(Start:=1, Length:=3).Font
    //是字符的屬性,開始和長度。我設置的最大長度為500個字符。
    應該好用吧,你再調試一下,看能否在excel中建立圖形?
      

  14.   

    成功了!
    多谢xiaochui的热心帮助.结分.