比如在程序中打开了多个窗体, 由API获得了其中一个窗体的HWND,
然后要设置该窗体的宽度, 高度, 或是卸载该窗体等.
除了枚举, 不知怎样能将该窗体赋给一个窗体变量?

解决方案 »

  1.   

    用api 啊
    SetWindowPos 设置宽度高度
    PostMessage 可以 发一个关闭消息来关闭窗口
      

  2.   

    想通过一个句柄而得到这个窗体对象的实例啊....?貌似要内嵌汇编..??我见过一个通过句柄取得WebBrowser控件实例的代码,就是这么做的.但那是取别的进程的....怎么会有这种需求.自己的窗体内可以直接取得实例啊,何必这么麻烦.
      

  3.   

    呵呵, 还是详细说说这段程序.我是在程序中加载了很多小窗体, 作为工具面板(不是MDI).
    当用户拖拽这些小窗体时, 要判断是否跟其他窗体吸附, 同时还要更新窗体内的一些变量, 等等.
    但在VB中, 似乎没有拖拽窗体的事件, 所以我用了SetWindowLong, 在WM_MOVE时处理想做的工作.
    不过WndProc里只能接收到窗体的hwnd, 不能取得对象的实例, 操作起来实在是太麻烦了.暂时只想到一个办法, 就是枚举所有窗体, 逐个比较hwnd, 来判断是哪个窗体在移动,
    只是觉得这法子实在是很笨^_^不知有没更好的办法, 请大家指点, 谢谢.
      

  4.   

    说说我的思路:由于同时只能有一个窗口得到焦点,那么你可以在GotFocus或ActiveXXXXX(忘了)事件里,对一个全局窗体变量进行赋值,如下:set PublicFrmVar = me然后你只需要直接对这个PublicFrmVar操作就行了....不知道你是不是试过这种思路.