我要做一个画图软件,就是类似与画图板的那种,当然要实现一些特定的功能。
现在遇到的麻烦是,比如我现在要新建一个300*300像素的图片,那怎样保证鼠标只能在里面绘制,出了这个区域就无效呢?
我现在鼠标除了这个范围仍然可以画,很痛苦。我的是CFormView的SDI程序,每次新建一个图片时,我就在客户区画一个300*300的矩形,让用户在此绘制。

解决方案 »

  1.   

    onncactive的时候,取消focus设置
    onactive进入的时候,setfocus
      

  2.   

    或者是ONMOUSEMOVE的时候,检测位置是否在客户区域内部,
      

  3.   

    你总要记录绘制区域坐标的,ONMOUSEMOVE的时候如果PtInRect返回FALSE就不画不就行了.
      

  4.   

    当你LBUTTONDOWN和MOUSEMOVE时总会得到一个point吧?
    绘制前判断一下这个point是否在你设定的Rect内不就行了?
    或许有更好的方法。
      

  5.   

    PtInRect的方法我试过,但效果还是不太好.似乎在边界处来不及处理.
    真想看看微软的画图板源代码,他那块白色区域究竟是什么
      

  6.   

    我猜想MS的画图板中那块区域肯定绑定了自已的事件,也就是那块区域类似一个控件。如果MS还只是在一块画布上判断区域,恐怕也不可能。
      

  7.   

    呵呵,解决方法的确很多
    如果你是新手,想图个简单,建议使用
     ringphone(临风) 的方法
      

  8.   

    问题终于解决了,我创建了一个和memDC和300*300的内存位图,每次画完以后用Bitblt函数拷贝到屏幕DC就OK了,不过还是要谢谢大家