首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

需要把树的叶子画在一条水平线下

2012-12-15 
需要把树的叶子画在一条水平线上演示语句的语法结构,一般的树控件类似Windows的目录树,叶子是垂直的,一个

需要把树的叶子画在一条水平线上
演示语句的语法结构,

一般的树控件类似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,就对了。
谢谢各位!

热点排行