CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

画图问题,API调用问题。

楼主cymandhxl(迷失中)2006-06-03 12:29:33 在 .NET技术 / C# 提问

Declare   Auto   Function   GetDC   Lib   "user32"   (ByVal   hwnd   As   Integer)   As   IntPtr  
         
          Declare   Function   CreatePen   Lib   "gdi32"   Alias   "CreatePen"   (ByVal   nPenStyle   As   Integer,   ByVal   nWidth   As   Integer,   ByVal   crColor   As   Integer)   As   Integer  
          Declare   Function   GetROP2   Lib   "gdi32"   Alias   "GetROP2"   (ByVal   hdc   As   IntPtr)   As   Integer  
          Declare   Function   SetROP2   Lib   "gdi32"   Alias   "SetROP2"   (ByVal   hdc   As   IntPtr,   ByVal   nDrawMode   As   Long)   As   Integer  
          Declare   Function   SelectObject   Lib   "gdi32"   Alias   "SelectObject"   (ByVal   hdc   As   IntPtr,   ByVal   hObject   As   IntPtr)   As   Integer  
          Declare   Function   GetStockObject   Lib   "gdi32"   Alias   "GetStockObject"   (ByVal   nIndex   As   Integer)   As   IntPtr  
          Declare   Function   ReleaseDC   Lib   "user32"   Alias   "ReleaseDC"   (ByVal   hwnd   As   Integer,   ByVal   hdc   As   IntPtr)   As   IntPtr  
          Declare   Function   Rectangle   Lib   "gdi32"   Alias   "Rectangle"   (ByVal   hdc   As   IntPtr,   ByVal   X1   As   Long,   ByVal   Y1   As   Long,   ByVal   X2   As   Long,   ByVal   Y2   As   Long)   As   Long  
    Dim   slx   As   Single   =   -1  
          Dim   sly   As   Single   =   -1  
          Dim   slw   As   Single   =   -1  
          Dim   slh   As   Single   =   -1  
  Private   Sub   APIDraw()  
                  Dim   p   As   System.IntPtr   =   GetDC(0)   '取得屏幕  
                  Dim   oldrop2,   pen,   oldpen   As   Integer  
                  oldrop2   =   GetROP2(p)   '保存以前的画图方式  
                  SetROP2(p,   7)   '设置XOR画笔  
                  SelectObject(p,   GetStockObject(5))   '屏蔽画刷  
                  pen   =   CreatePen(2,   1,   System.Drawing.ColorTranslator.ToWin32(System.Drawing.Color.Black))   '新建画笔  
                  oldpen   =   SelectObject(p,   GetStockObject(pen))   '使用画笔  
                   
                  If   slx   >   -1   Then   '如果不是出始就第2次异或  
                          Rectangle(p,   slx,   sly,   slw,   slh)   '画矩形  
                                          End   If  
                  If   HasLayout   Then   ‘如果拖动  
                          slx   =   Me.Location.X   +   mx   -   lx   '保存本次矩形  
                          sly   =   Me.Location.Y   +   my   -   ly  
                          slw   =   Me.Location.X   +   mx   -   lx   +   Me.Width  
                          slh   =   Me.Location.Y   +   my   -   ly   +   Me.Height  
                           
                          Rectangle(p,   slx,   sly,   slw,   slh)   '画矩形  
                  Else    
                          slx   =   sly   =   slw   =   slh   =   -1   '还原  
                  End   If  
                  pen   =   SelectObject(p,   GetStockObject(oldpen))   '还原画笔  
                  SetROP2(p,   oldrop2)   '还原以前的画图方式  
                  ReleaseDC(0,   p)   '释放  
      End   Sub  
  我上面这段代码为什么画不出图形来啊。本来想实现窗体拖动,现在连图形的画不出来。 问题点数:20、回复次数:6Top

1 楼Knight94(愚翁)回复于 2006-06-03 12:46:38 得分 10

画图函数你在哪儿调用的?Top

2 楼cymandhxl(迷失中)回复于 2006-06-03 12:59:45 得分 0

是在鼠标移动事件里啊mousedown,mousemove,mouseleaveTop

3 楼Knight94(愚翁)回复于 2006-06-03 13:05:02 得分 0

你要做什么?Top

4 楼ilove8(千里|你去哪里了,我等了你很久了!)回复于 2006-06-03 13:17:18 得分 10

upTop

5 楼cymandhxl(迷失中)回复于 2006-06-03 16:34:54 得分 0

拖动窗体的时候要想有个虚框在走,这就是我想要的结果.Top

6 楼cymandhxl(迷失中)回复于 2006-06-04 20:01:31 得分 0

真的没有人帮助我吗Top

相关问题

关键词

得分解答快速导航

  • 帖主:cymandhxl
  • Knight94
  • ilove8

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo