在屏幕上画两条线,要求能一直显示着(不能因为打开了其他程序就导致线被覆盖掉)
能否贴个具体的完整的代码?
(我的办法比较土:就settimer,然后每隔1ms 就来个for循环调用Setpixel。。)
求高手赐教!

解决方案 »

  1.   

    真是啥古怪需求都有...
    可以做个topmost窗口,如果线不是水平垂直,就SetWindowRgn,窗口范围就是你的线,topmost属性。
      

  2.   

    在其他程序的画面上?你想画在别人的DC上?其他程序的wm_paint消息是自己处理的...
      

  3.   

    大狙如果不开镜的话,不只是没有准星而已,弹着点也会有随机偏差,想作弊吗?hehe,还不如拿水彩笔画在屏幕上……
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  4.   

    在Ondraw里画,
    用moveto(),lineto()函数。
      

  5.   

    不是很明白LZ的需求,如果是因为界面刷新而导致画线消失,那LZ应该把画线代码写入Ondraw函数中(Ondraw自动由OnPaint调用)
      

  6.   

    只要线是在OnPaint中画的,就不会被覆盖。
    ------------------------------------------------------------------------
      

  7.   

    DrawItem或者是OnPain函数里用DC画的都不会消失啊,他们都是由系统控制随时更新的
      

  8.   

    感谢各位的回答啊,我需要的是这样的效果。(这是我用土办法做出来的效果,csdn居然没有上传图片的功能????!!!!)
      

  9.   

    画在游戏屏上?高呀。是否需要拦截他的OnDraw之类的函数?
      

  10.   

    MFC在ON PAINT函数里进行绘制,例如之前在某个函数中绘画了从X1,Y1 到X2 ,Y2 的一条线之后
    在PAINT函数中添加相同的代码就可以实现重绘
    ONPAINT在类中选择添加消息来添加该函数
      

  11.   

    哦 ..如果这种效果不知道可不可以用gdi+来实现..没式过
      

  12.   

    像极了卡哇伊读取一下进程,只要读到crossfire.exe 就一直画
      

  13.   

    就画两条线...你是不是把整个窗口都刷新了...画这类线的做法, 通常只是update这个线所须的矩形范围就可以了. 假如背景是静态的, 那么直接用背景对应的位置把整个行或列的bit拿出来, 补上去, 然后再画新的线实现移动. 这样做肯定不会闪的, 我做外挂的时候也做过这类屏幕取坐标, 取范围的
      

  14.   

    明白了。一开始以为是要程序内画呢。如果是在屏幕上画,建议您做个全屏的程序,在程序内画十字线,然后mask程序,把其它地方都透明掉,再把程序设置成topmost.
    ------------------------------------------------------------------------
      

  15.   

    1. 在OnPaint里
    2. 先画兼容屏幕的BMP再“贴”出来(这就是所谓的“双缓冲”避免闪烁)
    3. 如果你要求效率N高,就采用InvalidateRect(这就是所谓的“局部刷新”某些情况下可以让CPU从100%降到1%一下哦)三板斧完毕。
      

  16.   

    一、在ondraw 中去画,
    二、拿到屏幕的DC