drawtext 换行问题?

编程小白_大场 2013-02-21 02:46:41
void TextMiult::DrawItem(LPDRAWITEMSTRUCT lp) 
{
CDC *pDC=CDC::FromHandle(lp->hDC);
CRect rc;
GetClientRect(&rc);
CFont font;
font.CreatePointFont(90,"Arial Unicode MS");
pDC->SetBkMode(TRANSPARENT);
//pDC->SelectObject(font);//½«ËûÑ¡Ôñµ½É豸ÖÐ
pDC->SetTextColor(RGB(255,255,255));
CString str;
GetWindowText(str);
CRect boundary(0,0,40,20);
//
CRect rect;
rect.left = rect.top = 0;
rect.right = 200;
rect.bottom = rc.bottom;
//rect(0,0,boundary.Width(),boundary.Height());

int height=pDC->DrawText(str,rc,DT_CALCRECT|DT_CENTER|DT_EDITCONTROL|DT_WORDBREAK);
rect=boundary;
if (boundary.Height()>height)
{
rc.top+=(boundary.Height()-height)/2;
}

pDC->DrawText(str,rc,DT_CENTER|DT_EDITCONTROL|DT_WORDBREAK);

}
//这是画的地方。

void TextMiult:: Create(LPCTSTR lpszCaption,CWnd* pr,CRect rc,UINT id)
{
CButton::Create(lpszCaption,WS_VISIBLE|WS_CHILD,rc,pr,id);
}

//在OnInitDialog()里
m_shi=new TextMiult();
m_shi->Create("122222222222222222222222222222222222222",this,CRect(70,90,200,240),0);

这是哪里出了问题。不解求解呀。
...全文
782 32 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
shen_wei 2013-02-22
  • 打赏
  • 举报
回复
21楼的你还不明白?? 这个你还明白??
bsnry 2013-02-22
  • 打赏
  • 举报
回复
邮箱:657097484@qq.com 菜鸟一名
schlafenhamster 2013-02-22
  • 打赏
  • 举报
回复
你的Button必须有BS_OWNERDRAW这个风格才可以的。
  • 打赏
  • 举报
回复
引用 12 楼 shen_wei 的回复:
在创建时,添加属性!! create时添加这个属性
老大给我看一下代码,drawitem里的代码无效,给一下邮箱吧。发过去你看看。
  • 打赏
  • 举报
回复
引用 21 楼 sha_jinhao 的回复:
CButton myButton; // Create an auto 3-state button. myButton.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,100,30), pParentWnd, 1); // Actually, want ……
引用 21 楼 sha_jinhao 的回复:
CButton myButton; // Create an auto 3-state button. myButton.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,100,30), pParentWnd, 1); // Actually, want ……
drawitem里的代码无效,帮我看看吧。你的邮箱再给我一下好吧。
  • 打赏
  • 举报
回复
引用 14 楼 schlafenhamster 的回复:
就是 BS_MULTILINE
大哥邮箱给我一下,我把我的东西给你发过去DRAWITEM里的东西无效。
  • 打赏
  • 举报
回复
引用 29 楼 shen_wei 的回复:
21楼的你还不明白?? 这个你还明白??
都写完了,调试好。现在已经。谢谢。
  • 打赏
  • 举报
回复
引用 28 楼 bsnry 的回复:
邮箱:657097484@qq.com 菜鸟一名
呵呵,刚学这个东西三个月,好多都没有明白,希望理解。
  • 打赏
  • 举报
回复
引用 27 楼 schlafenhamster 的回复:
你的Button必须有BS_OWNERDRAW这个风格才可以的。
谢谢,已经弄好了。
schlafenhamster 2013-02-21
  • 打赏
  • 举报
回复
“pDC->SetTextColor(RGB(255,0,0))这不就是设置字体颜色吗” 不是, 应该是 pen 颜色(不确定), Textout 后, 你 画一条线(用 pen 的) 看看,是不是 ?
qicaofeng 2013-02-21
  • 打赏
  • 举报
回复
::DrawText(hdc, m_str, -1, CRect, DT_WORDBREAK | DT_NOCLIP | DT_EDITCONTROL); 不能用DT_CENTER 居中单行有效
jimette 2013-02-21
  • 打赏
  • 举报
回复
CButton myButton; // Create an auto 3-state button. myButton.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,100,30), pParentWnd, 1); // Actually, want an auto check box, change the button style to // auto check box. myButton.SetButtonStyle( BS_MULTILINE );
sdchenchen2012 2013-02-21
  • 打赏
  • 举报
回复
引用 19 楼 sadasasdasd 的回复:
引用 18 楼 sdchenchen2012 的回复:引用 17 楼 schlafenhamster 的回复:字体 font 与 字体 颜色 不是一回事。 字体是 没有 颜色的。 字是 用 pen 写上去的: 你 只是: pDC->SetTextColor(RGB(255,255,255)); 那就是 黑的,试试 pDC->SetTextColor(RGB(……
不知道了, 这个颜色和font不知道又饿米有关系
  • 打赏
  • 举报
回复
引用 18 楼 sdchenchen2012 的回复:
引用 17 楼 schlafenhamster 的回复:字体 font 与 字体 颜色 不是一回事。 字体是 没有 颜色的。 字是 用 pen 写上去的: 你 只是: pDC->SetTextColor(RGB(255,255,255)); 那就是 黑的,试试 pDC->SetTextColor(RGB(255,0,0)); 红色 字体没有颜色,只有一……
pDC->SetTextColor(RGB(255,0,0))这不就是设置字体颜色吗?
sdchenchen2012 2013-02-21
  • 打赏
  • 举报
回复
引用 17 楼 schlafenhamster 的回复:
字体 font 与 字体 颜色 不是一回事。 字体是 没有 颜色的。 字是 用 pen 写上去的: 你 只是: pDC->SetTextColor(RGB(255,255,255)); 那就是 黑的,试试 pDC->SetTextColor(RGB(255,0,0)); 红色
字体没有颜色,只有一些类型,像宋体,大小,重量,等
schlafenhamster 2013-02-21
  • 打赏
  • 举报
回复
字体 font 与 字体 颜色 不是一回事。 字体是 没有 颜色的。 字是 用 pen 写上去的: 你 只是: pDC->SetTextColor(RGB(255,255,255)); 那就是 黑的,试试 pDC->SetTextColor(RGB(255,0,0)); 红色
bsnry 2013-02-21
  • 打赏
  • 举报
回复
白色字体的文字,
  • 打赏
  • 举报
回复
引用 14 楼 schlafenhamster 的回复:
就是 BS_MULTILINE
噢,好了,呵呵,我再改一下。现在字体颜色怎么没有变呢。
schlafenhamster 2013-02-21
  • 打赏
  • 举报
回复
就是 BS_MULTILINE
bsnry 2013-02-21
  • 打赏
  • 举报
回复
引用 11 楼 sadasasdasd 的回复:
引用 8 楼 shen_wei 的回复:引用 6 楼 sha_jinhao 的回复:button里面有multiline属性 true 这个才是正确 可是我的是动太创建的,怎么改属性呀。
BS_MULTILINE
加载更多回复(12)

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧