需要把树的叶子画在一条水平线上
演示语句的语法结构,
一般的树控件类似Windows的目录树,叶子是垂直的,一个语句这样演示看起来很别扭。
需要把树的叶子(一个语句的词语)画在一条水平线上,便于演示。
请教如何处理,如能给出一个代码就最好了。
[最优解释]
楼主要的就是这个吧?
水平树
[其他解释]
你就自己画吧。树的叶子哪有横着长的啊
[其他解释]
没有理解,
水平树好像不是lz要的啊
[其他解释]
呵呵,水平树,不错
[其他解释]
不明白,你手画一个 演示一下。
[其他解释]
树本身还是 垂直 显示的
[其他解释]
这个建议自绘一个控件,树来实现不好使的
[其他解释]
从来书画本相通,
首在精神次在功.
悟得梅兰花下趣,
指上自然有清风.
[其他解释]
基本自绘吧,参考流程图软件
[其他解释]
“没有覆盖为何也跟着消失” 应该是 多次 PAINT 了
“调用函数与被调用函数定义设备描述符时,不能同名” 什么情况 ?
[其他解释]
回复于: 2012-11-20 09:50:23
不明白,你手画一个 演示一下。
[其他解释]
大体就是这样子:
我看能否自己写代码画。
2楼的水平树代码我也看看,看能否改得更适合我用。
[其他解释]
请教各位朋友,我试着自己写代码画6楼的语法树,自然每个方框是先一个编辑框,然后再画连线。
有点奇怪的是:
画的编辑框及数据能正确显示,但连线只显示最后一次画的,此前画的就不见了。
CDC *pDC=GetDC()
for(int i=0;i<wordnum;i++;)
{
//计算坐标省略
pDC->Moveto(x1,y1);
pDC->Lineto(x2,y2);
.....
}
无论wordnum限制为从1-8,都而已观察到最后画的正确的连线,但看不到此前的线。
谢谢!
[其他解释]
11楼的问题解决了,坐标不能局部变量,声明一个结构数组保存就可以了。
不过,我不理解,局部变量值丢弃了,屏幕上的线如果覆盖后消失,可以理解。
没有覆盖为何也跟着消失?
VS2010还有一个折腾了我一天的怪事:
调用函数与被调用函数定义设备描述符时,不能同名。
我疏忽,用同名CDC *pDC 定义,被调用函数即使释放了pDC ,调用函数仍然不能画线。
[其他解释]
以下代码VS2008执行正常,但Windows server 2008,VS2010下不能显示任何线段:
void CdrawlineDlg::OnBnClickedDrawline()
{
CDC *pdc=GetDC();
pdc->MoveTo(2,5);
pdc->LineTo (50,60);
ReleaseDC(pdc);
Drawline2();
}
void CdrawlineDlg::Drawline2()
{
CDC *pdc=GetDC();//此函数与调用函数重名,导致不显示任何线段,改名为pdc2则正常
pdc->MoveTo(2,5);
pdc->LineTo (80,60);
ReleaseDC(pdc);
}
[其他解释]
开始直接往对话框上画,刷新的时候就只有最后一条线了。
后来想起应该使用OnPaint,就对了。
谢谢各位!