Link to home
Start Free TrialLog in
Avatar of Wanting2LearnMan
Wanting2LearnManFlag for United Kingdom of Great Britain and Northern Ireland

asked on

::CommandBar_Show(m_pWndEmptyCB->m_hWnd, FALSE ); using VS2005?

In my eVC++4 project I made my app fullscreen by doing the following:

SHFullScreen( m_hWnd, SHFS_HIDESTARTICON|
                         SHFS_HIDETASKBAR|
                        SHFS_HIDESIPBUTTON );

MoveWindow(15,70,220,180,TRUE);

::CommandBar_Show(m_pWndEmptyCB->m_hWnd, FALSE );

I have now converted it to VS2005 and m_pWndEmptyCB is no longer supported.

How exactly can I do the same as ::CommandBar_Show(m_pWndEmptyCB->m_hWnd, FALSE ); using VS2005?

Thanks
Avatar of LordOfPorts
LordOfPorts
Flag of United States of America image

I am not certain if this will be helpful however according to http://msdn.microsoft.com/en-us/library/ew94tebd.aspx m_pWndEmptyCB is no longer supported because you now control the creation of the command bar so somewhere in your code you would have a call to CommandBar_Create http://msdn.microsoft.com/en-us/library/ms908131.aspx which will return the handle to your command bar when called (if successful), you could store this handle in a member variable, e.g.:

// Declare handle to control bar as object member variable
HWND hCmdBar;

// Initialize when creating the command bar
hCmdBar = ::CommandBar_Create(...

and later on pass it as the first argument to the CommandBar_Show method, e.g.:

::CommandBar_Show(hCmdBar, FALSE );

Do you use MFC in your project?
I think Lordof Ports is right. IN my application I just don't create the command bar, but the main window has WS_POPUP style, so it can cover the whole screen. I don't use the MFC.
One more thing - I control the WM_ACTIVATE to hide the system controls.
for example, this code will find the task bar:
HWND hWnd = ::FindWindow(TEXT("HHTaskBar"), NULL);
then: ShowWindow(hWnd, SW_HIDE);

or SIP button:
HWND HWnd = ::FindWindow(TEXT("MS_SIPBUTTON"), NULL);
Avatar of Wanting2LearnMan

ASKER

Yes I use MFC in my project.

I also control the WM_ACTIVATE and I 'had' the following:
void CAbout::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
          CDialog::OnActivate(nState, pWndOther, bMinimized);  
          SHFullScreen( m_hWnd, SHFS_HIDESTARTICON|SHFS_HIDETASKBAR|SHFS_HIDESIPBUTTON );
          MoveWindow(0,0,240,320,TRUE);
          ::CommandBar_Show(m_pWndEmptyCB->m_hWnd, FALSE );      
}

I will try out your suggestions above to replace the m_pWndEmptyCB.
Thanks
The following does not hide the bottom SIP:

HWND HWnd = ::FindWindow(TEXT("MS_SIPBUTTON"), NULL);
::ShowWindow(HWnd, SW_HIDE);

Any ideas??

Thanks
Check if HWnd is NULL perhaps. According the FindWindow's description http://msdn.microsoft.com/en-us/library/ms633499.aspx it does not search for child windows, use FindWindowEx http://msdn.microsoft.com/en-us/library/ms633500(VS.85).aspx to search for child windows.

The post at http://forum.soft32.com/pda/Removing-SIP-icon-Command-Bar-ftopict58785.html might also be helpful although in that solution the button is moved.
ASKER CERTIFIED SOLUTION
Avatar of pgnatyuk
pgnatyuk
Flag of Israel image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Probably I understood what happens - after these games with the commandbar you need to redraw your window also - call invalidate for the main app window