PEN
11-04-2009, 03:27 PM
Just thought that I would post this if any one else is interested. Let me know if you see any faster methods for doing this.
/*HeaderStart*******************************************************
:Created By: Paul Neale
:Company: PEN Productions Inc.
:Site: http://paulneale.com
:Email: info@paulneale.com
:Client: PEN Productions
:Purpose: Retuns the HWND for the active viewport.
:History:
Oct 04 2009
Created.
:Todo:
:Bugs:
None Known
:Tests:
for x in windows.getChildrenHWND #max do format "%\n" x
-->Use this to create a dotNet handle for the viewport.
p = DotNetObject "System.IntPtr" ( (getViewportHwnd()) [1])
maxHwnd = DotNetObject "MaxCustomControls.Win32HandleWrapper" p
*******************************************************HeaderEnd*/
/*FnStart*******************************************************
:Function: getActiveViewportName
:Usage: getActiveViewportName()
:Todo:
:Notes:
Called by getViewportHwnd
*******************************************************FnEnd*/
fn getActiveViewportName=
(
local viewName=viewport.getType()
case of
(
(viewName==#view_top): "Top"
(viewName==#view_bottom): "Bottom"
(viewName==#view_right): "Right"
(viewName==#view_left): "Left"
(viewName==#view_back): "Back"
(viewName==#view_persp_user): "Perspective"
(viewName==#view_iso_user): "Orthographic"
(viewName==#view_camera): (viewport.getCamera index:viewport.activeViewport).name
(viewName==#view_spot): (viewport.getCamera index:viewport.activeViewport).name
(viewName==#view_shape): "Shape"
(viewName==#view_grid): "Grid" --Will need to search for "Grid" in the name here.
)
)
/*FnStart*******************************************************
:Function: getViewportHwnd
:Usage: getViewportHwnd()
:Todo:
:Notes:
Calls getActiveViewportName and returns the HWND array for the active viewport.
*******************************************************FnEnd*/
fn getViewportHwnd=
(
local viewPortName=getActiveViewportName()
local returnHwnd=undefined
if viewPortName!=undefined do
(
for wHwnd in windows.getChildrenHWND #max do
(
if wHwnd[4]=="D3DWindow" and findString wHwnd[5] viewPortName!=undefined do
(
returnHwnd=wHwnd
exit
)
)
)
returnHwnd
)
/*HeaderStart*******************************************************
:Created By: Paul Neale
:Company: PEN Productions Inc.
:Site: http://paulneale.com
:Email: info@paulneale.com
:Client: PEN Productions
:Purpose: Retuns the HWND for the active viewport.
:History:
Oct 04 2009
Created.
:Todo:
:Bugs:
None Known
:Tests:
for x in windows.getChildrenHWND #max do format "%\n" x
-->Use this to create a dotNet handle for the viewport.
p = DotNetObject "System.IntPtr" ( (getViewportHwnd()) [1])
maxHwnd = DotNetObject "MaxCustomControls.Win32HandleWrapper" p
*******************************************************HeaderEnd*/
/*FnStart*******************************************************
:Function: getActiveViewportName
:Usage: getActiveViewportName()
:Todo:
:Notes:
Called by getViewportHwnd
*******************************************************FnEnd*/
fn getActiveViewportName=
(
local viewName=viewport.getType()
case of
(
(viewName==#view_top): "Top"
(viewName==#view_bottom): "Bottom"
(viewName==#view_right): "Right"
(viewName==#view_left): "Left"
(viewName==#view_back): "Back"
(viewName==#view_persp_user): "Perspective"
(viewName==#view_iso_user): "Orthographic"
(viewName==#view_camera): (viewport.getCamera index:viewport.activeViewport).name
(viewName==#view_spot): (viewport.getCamera index:viewport.activeViewport).name
(viewName==#view_shape): "Shape"
(viewName==#view_grid): "Grid" --Will need to search for "Grid" in the name here.
)
)
/*FnStart*******************************************************
:Function: getViewportHwnd
:Usage: getViewportHwnd()
:Todo:
:Notes:
Calls getActiveViewportName and returns the HWND array for the active viewport.
*******************************************************FnEnd*/
fn getViewportHwnd=
(
local viewPortName=getActiveViewportName()
local returnHwnd=undefined
if viewPortName!=undefined do
(
for wHwnd in windows.getChildrenHWND #max do
(
if wHwnd[4]=="D3DWindow" and findString wHwnd[5] viewPortName!=undefined do
(
returnHwnd=wHwnd
exit
)
)
)
returnHwnd
)
