对话框程序
1.鼠标左键点击标题栏移动时,怎么使它的子窗口(一个非模式对话框)一起移动?
2.打印,比较特殊,相当于纸从出纸口放入.因而,本应该打印在左上角的点却打在了右下角,旋转了180度.
实际上是做某个产品,用到了打印机机芯,但设计没对,弄错了方向.改硬件当然简单,打印机转180度安装就行了.问题是某些人认为改软件更容易.郁闷!
我现在要做的就是,纸从出纸口放入,该打印在左上角的点,仍然要打在左上角,从哪里入手,高手帮忙指点一下?今天去书城看了一天书,还是没有头绪.

解决方案 »

  1.   

    1 响应WM_MOVING,对子窗口MoveWindow2 帮不上忙
      

  2.   

    第一个问题很好解决啊,主窗口MOVE时将对应的子对话框MOVEWINDOW就可以了
    第二个问题没想出来,可以参考2楼的
      

  3.   

    移动时不是实时刷新,怎么解决
    不行我就LButtonDown时先隐藏,Up时显示新的位置,这样不太理想
    我还想了一种办法,设了个定时器,刷新,鼠标down时settimer,up时kill,最小1ms,没有用到mousemove,还是不理想:)
    高手指点一下吧,我学编程还不到一年半,水平有限啊
      

  4.   

    呵呵,主要是打印做得不多,都是些最简单的……
    WM_MOVING就是鼠标拖动的消息啊。
    移动时不刷新可以在OnMoving的时候不做MoveWindow,而是在屏幕上画那个Modeless对话框的外框,在OnMove中再MoveWindow
      

  5.   

    我把wm_move看成是wm_mousemove了
    我直接到onmove()中用子窗口的指针调用movewindow(),居然检测到内存泄漏,郁闷
    不过程序还是能运行,确实可以做到同时移动,非常感谢
      

  6.   

    是啊,不一起移动
    你用IE的查找对话框试试
    release版没有报告内存泄漏,可以将就用吧?:)
      

  7.   

    鼠标左键点击标题栏移动时,实在OnNcLButtongDownz中处理的,一旦进入,其会使用SetCapture函数,及自己的消息循环处理鼠标移动消息,所以你无法在mousemove消息响应中处理,不过,窗口位置变化时,OnWindowPosChanged会响应,你可以在这个消息响应函数中处理非模态对话框的位置变动.打印这个方面没有理解你的问题,无法帮忙了.