设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2396|回复: 2
打印 上一主题 下一主题

【OneKeyTools源代码分享4】二等分线

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-28 20:06:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 只为设计 于 2016-2-29 19:40 编辑

有时候我们需要在PPT中自定义一些固定的参考线。比如二等分线、黄金分割线、三等分线等。借助编程可以很容易实现。
下面的代码是OneKeyTools中“分割线”→“二等分线”的源代码。

基本代码】↓
  1. PowerPoint.Slide slide = app.ActiveWindow.View.Slide;
  2. PowerPoint.Selection sel = app.ActiveWindow.Selection;
  3. if (sel.Type == PowerPoint.PpSelectionType.ppSelectionNone)
  4. {
  5. float swidth = app.ActivePresentation.PageSetup.SlideWidth;
  6. float sheight = app.ActivePresentation.PageSetup.SlideHeight;
  7. PowerPoint.Shape line1 = slide.Shapes.AddLine(swidth * 0.5f, 0, swidth * 0.5f, sheight);
  8. PowerPoint.Shape line2 = slide.Shapes.AddLine(0, sheight * 0.5f, swidth, sheight * 0.5f);
  9. line1.Visible = Office.MsoTriState.msoTrue;
  10. line2.Visible = Office.MsoTriState.msoTrue;
  11. line1.Name = "line01";
  12. line2.Name = "line01";
  13. if (slide.Background.Fill.ForeColor.RGB > 255 + 200 * 256 + 200 * 256 * 256)
  14. {
  15. line1.Line.ForeColor.RGB = 0;
  16. line2.Line.ForeColor.RGB = 0;
  17. }
  18. else
  19. {
  20. line1.Line.ForeColor.RGB = 255 + 255 * 256 + 255 * 256 * 256;
  21. line2.Line.ForeColor.RGB = 255 + 255 * 256 + 255 * 256 * 256;
  22. }
  23. line1.Line.DashStyle = Office.MsoLineDashStyle.msoLineDash;
  24. line2.Line.DashStyle = Office.MsoLineDashStyle.msoLineDash;
  25. }
复制代码


代码分析】↓
  1. PowerPoint.Slide slide = app.ActiveWindow.View.Slide;
  2. float swidth = app.ActivePresentation.PageSetup.SlideWidth;
  3. float sheight = app.ActivePresentation.PageSetup.SlideHeight;
复制代码
↑这段代码是获取PPT幻灯片页面的宽度和高度,用于算二等分线的具体坐标。


  1. PowerPoint.Shape line1 = slide.Shapes.AddLine(swidth * 0.5f, 0, swidth * 0.5f, sheight);
  2. PowerPoint.Shape line2 = slide.Shapes.AddLine(0, sheight * 0.5f, swidth, sheight * 0.5f);
复制代码
↑这段代码是往页面中添加二等分线。其中AddLine(起始x坐标,起始y坐标,终止x坐标,终止y坐标)。

  1. if (slide.Background.Fill.ForeColor.RGB > 255 + 200 * 256 + 200 * 256 * 256)
复制代码
↑这个判断,是判断幻灯片背景的颜色,如果深色就用白色线;如果背景浅,就用黑色线

  1. line1.Name = "line01";
  2. line2.Name = "line01";
复制代码
↑这是对横竖两条二等分线进行命名,方便后面做删除功能。


本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖1 订阅订阅

点击这里给我发消息

2#
发表于 2016-2-28 20:15:28 | 只看该作者
来顶顶~
回复

使用道具 举报

点击这里给我发消息

3#
发表于 2016-2-29 09:42:03 | 只看该作者
谢谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-20 22:31 , Processed in 0.107250 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表