用GetTextExtentPoint32测量字符串的宽度
然后算好坐标自己画

解决方案 »

  1.   

    重写CStatic控件通过onPaint函数,使用cdc进行绘制文字和图片
      

  2.   

    这个需求,肯定要控件重绘了,从CStatic继承过来,在派生类中根据自己的需求自绘
      

  3.   

    自己写个视图类显示在CStatic也行
    视图可以加载图片和编辑文字
      

  4.   


    有详细的说明吗?怎么用
    首先创建一个视图类CMyView 父类为CView
    然后在CStatic所在的窗口类里面:
    头文件添加
    成员变量 CMyView* m_MyView;
    成员函数 void CreateMyView();
    源文件添加void CStatic所在的窗口类::CreateMyView(void)
    {
    CCreateContext Content;
    Content.m_pCurrentFrame = NULL;
    Content.m_pNewDocTemplate = NULL;
    Content.m_pCurrentDoc = NULL;
    Content.m_pLastView = NULL;
    Content.m_pNewViewClass = RUNTIME_CLASS(CDataView);
    CRect rect;
    GetDlgItem(CStaticID)->GetWindowRect(&rect);
    ScreenToClient(&rect);
    m_MyView= (CMyView*)Content.m_pNewViewClass->CreateObject();
    m_MyView->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,rect,this,CStaticID,&Content);
    }接着就是在CMyView里面的操作了
    怎么加载文字和位图应该会吧
      

  5.   

    能不能分成两个控件,靠在一起?还是必须要在一个CStatic中实现功能?
      

  6.   

    最近也有类似需求,可以换个思路,用CListCtrl试试,只需要一个图片和一个文字,就加一行两列,下面的例子就挺详细。http://www.360doc.com/content/14/0805/22/18803614_399710822.shtml