The transparent hWnds in Office 2013 applications that are used to render shadows use the class name
MSO_BORDEREFFECT_WINDOW_CLASS. To show or hide the shadows in Office 2013 applications, you have to message the application’s window procedure (
WndProc) by using
SendMessage or
SendMessageTimeout together with the following parameters:
- To disable shadows: Msg = WM_USER + 0x0900, wParam = 117, and lParam = 0
- To enable shadows: Msg = WM_USER + 0x0900, wParam = 117, and lParam = 1
Sample Code
The following function sends a message to an Office application’s hWnd to enable or disable the shadows around the application frame. (Some error checking is omitted for brevity.)
#define WM_MSO (WM_USER + 0x0900)
#define WM_MSO_WPARAM_OMFRAMEENABLESHADOW 117
#define WM_MSO_LPARAM_SHADOW_ENABLED 1
#define WM_MSO_LPARAM_SHADOW_DISABLED 0
void DisableShadows(HWND hwndOfficeApp)
{
SendMessage (
hwndOfficeApp,
WM_MSO,
WM_MSO_WPARAM_OMFRAMEENABLESHADOW,
WM_MSO_LPARAM_SHADOW_DISABLED);
}
void EnableShadows(HWND hwndOfficeApp)
{
SendMessage (
hwndOfficeApp,
WM_MSO,
WM_MSO_WPARAM_OMFRAMEENABLESHADOW,
WM_MSO_LPARAM_SHADOW_ENABLED);
}