//设置按钮
pPen=pDC->SelectObject(pPen);
pBrush=pDC->SelectObject(pBrush);
pDC->Ellipse(&m_ClientRect);//在按钮客户区内绘制椭圆
pPen=pDC->SelectObject(pPen);//
pBrush=pDC->SelectObject(pBrush);
if(pPen)     delete pPen;
if(pBrush)     delete pBrush;
//设置文本
COLORREF TextColor;
TextColor=~TextBKColor;
TextColor=TextColor&0x00ffffff;
LPTSTR pCaption;
strncpy(MAXCAPTIONLEN,(LPCSTR)_bstr_t(pCaption));
int iLen=GetWindowText(pCaption,MAXCAPTIONLEN);
pDC->SetBkMode(TRANSPARENT);//设置背景模式为透明
pDC->SetTextColor(TextColor);//指定文本颜色
//绘制文本,作为按钮标题
pDC->DrawText(pCaption,iLen,&m_ClientRect,DT_SINGLELINE|DT_CENTER | DT_VCENTER);
写这个时错误提示
'strncpy' : function does not take 2 arguments
不知道什么原因啊!!!

解决方案 »

  1.   

    看msdn,strncpy是3个参数,最后一个是长度
      

  2.   

    _CRTIMP char *  __cdecl strncpy(char *, const char *, size_t);strncpy是三个参数
      

  3.   

    strncpy(MAXCAPTIONLEN,(LPCSTR)_bstr_t(pCaption),8);
    这样可以么?
      

  4.   

    不可以。第一个需要是目的地址,第二个是源地址。
    看msdn啊!比你问快多了
      

  5.   

    你这样做是把pCaption  的8bytes复制到了MAXCAPTIONLEN