请问如果我用FindWindow得到一个窗口句柄后,能不能在程序中修改这个窗口的样子(比如说在它的标题栏上绘图,改变最大化,最小化按钮的样子,滚动条样子等)?如果能,那么WindowBlinds是不是这样做到的?

解决方案 »

  1.   

    得到了句柄,并不等于是能够控制它的消息流程啊,所以不是那么简单能实现的,即使你画上去了一些东西,也会在它被刷新时而被擦掉的..
    但是,如果用钩子技术,你将能够把你的绘图代码插入到它的绘制窗口的消息流程中,我想WindowBlinds应该是这样作的.
      

  2.   

    用WH_GETMESSAGE钩子,插入代码到其它进程空间,然后再在那个进程挂上相应的消息钩子,比如WH_CBT钩子可以在activating, creating, destroying, minimizing, maximizing, moving, or sizing a window之前被调用,应该可以实现你的要求
      

  3.   

    当然可以!你还可以在上面加菜单等!
    ShowWindow(HWND hwnd,int nCmdShow)
    hwnd 窗口句柄
    nCmdShow
    SW_MINIMIZE: 最小化
    ...
    还有:
    ClosWindow()
    DestroyWindow()等等!
      

  4.   

    你用findwindow找到的窗口,不会是你自己的吧,在其他的进程的窗口上加东西肯定得用钩子了
      

  5.   

    可以,就如同 DavidHowe() 所说,不是那么简单能实现的,即使你画上去了一些东西,也会在它被刷新时而被擦掉的..,用钩子是一种可行的方法,改变它的的消息机制也是另一个可行的方法  。SetWindosLong(),改变它的消息流程到自已的函数中去这样就邮你控制了剩下的不用我说了。