Пример #1
0
CWinAppEx::CWinAppEx( LPCTSTR lpszAppName /*=0*/ ) : CWinApp( lpszAppName )
{
    // Determine system type
    OSVERSIONINFO osvi;
    osvi.dwOSVersionInfoSize = sizeof( osvi );
    VERIFY( ::GetVersionEx( &osvi ) );

    switch ( osvi.dwPlatformId )
    {
        case VER_PLATFORM_WIN32_NT:
            if ( osvi.dwMajorVersion >= 5 )
            {
                if ( osvi.dwMinorVersion >= 1 )
                {
                    m_eOs = osWinXP;
                }
                else
                {
                    m_eOs = osWin2K;
                }
            }
            else
            {
                m_eOs = osWinNT;
            }
            break;

        case VER_PLATFORM_WIN32_WINDOWS:
            if ( ( osvi.dwMajorVersion > 4 ) ||
                 ( osvi.dwMajorVersion == 4 && osvi.dwMinorVersion > 0 ) )
            {
                m_eOs = osWin98;
            }
            else
            {
                m_eOs = osWin95;
            }
            break;

        default:
            m_eOs = osUnknown;
            break;
    }

    m_bBitmappedMenus = IsWin50();

    // Get system-wide parameters
    UpdateSystemParameters();
}
Пример #2
0
void CWinAppEx::UpdateSystemParameters()
{
    m_info.cbSize = sizeof( NONCLIENTMETRICS );
    VERIFY( ::SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof( m_info ), &m_info, 0 ) );

    if ( IsWin50() )
    {
        VERIFY( ::SystemParametersInfo( SPI_GETMENUANIMATION, 0, &m_bMenuAnimation, 0 ) );

        if ( IsWin2K() )
        {
            VERIFY( ::SystemParametersInfo( SPI_GETMENUUNDERLINES, 0, &m_bMenuUnderlines, 0 ) );
            VERIFY( ::SystemParametersInfo( SPI_GETUIEFFECTS, 0, &m_bUIEffects, 0 ) );
            VERIFY( ::SystemParametersInfo( SPI_GETMENUFADE, 0, &m_bMenuFade, 0 ) );

            if ( IsWinXP() )
            {
                VERIFY( ::SystemParametersInfo( SPI_GETFLATMENU, 0, &m_bFlatMenu, 0 ) );
            }
        }
    }
}
Пример #3
0
void CWinAppEx::SetBitmappedMenus( bool bBitmappedMenus )
{
    ASSERT( !bBitmappedMenus || IsWin50() );
    m_bBitmappedMenus = bBitmappedMenus;
}
Пример #4
0
bool CWinAppEx::GetMenuAnimation() const
{
    ASSERT( IsWin50() );
    return ( ( !IsWin2K() || m_bUIEffects ) && m_bMenuAnimation );
}
Пример #5
0
void CGetFilenameControl::Edit(BOOL fShowDlg)
{
//bring up the common file open dialog to select the filename

//retreive the current filename to use as the initial value
CString sCurrentFilename;

	if (m_sDir.IsEmpty())
		GetWindowText(sCurrentFilename);
	else
		sCurrentFilename = m_sDir;

	if (fShowDlg || 0 == sCurrentFilename.GetLength()) {
	// work out the flags to use
	DWORD dwFlags = 0;
	BOOL fOpenFile = TRUE;

	  if (m_dwFlags & GF_HIDEREADONLY)
		dwFlags |= OFN_HIDEREADONLY;
	  if (m_dwFlags & GF_OVERWRITEPROMPT)
	    dwFlags |= OFN_OVERWRITEPROMPT;
	  if (m_dwFlags & GF_FILEMUSTEXIST)
	    dwFlags |= OFN_FILEMUSTEXIST;
	  if (m_dwFlags & GF_SAVEASDIALOG) {
		fOpenFile = FALSE;
		m_dwFlags |= OFN_NOREADONLYRETURN;
	  }
	  if (m_dwFlags & GF_MULTIPLESELECTION)
		dwFlags |= OFN_ALLOWMULTISELECT;

		if (IsWin40())
			dwFlags |= OFN_EXPLORER;
		else
			dwFlags |= OFN_LONGNAMES;

	#if defined(OFN_ENABLESIZING)
		if (IsWin41() || (IsWinNT() && IsWin50())) {		// Win98 oder WinNT50
			dwFlags |= OFN_ENABLESIZING;
	#if defined(OFN_DONTADDTORECENT)
			dwFlags |= OFN_DONTADDTORECENT;
	#endif // defined(OFN_DONTADDTORECENT)
		}
	#endif // OFN_ENABLESIZING

	CGetFileNameDialog dlg (fOpenFile, m_sDefExt, sCurrentFilename, dwFlags, m_sExtFilter, GetParent());

	  //Modify the title to the desired value
	  dlg.m_ofn.lpstrTitle = m_sTitle;
	  
	  //uncomment the following line if you want to use the old style file open common dialog
	  if (m_dwFlags & GF_OLD_STYLE_DIALOG)
	    dlg.m_ofn.Flags &= ~OFN_EXPLORER;

	// evtl. Verzeichnis voreinstellen
	  if (!m_sDir.IsEmpty())
		dlg.m_ofn.lpstrInitialDir = m_sDir;

	//bring up the dialog and if hit ok set the text in this control to the new filename
	  if (dlg.DoModal() == IDOK) {
	    SetWindowText (GetPathName (dlg));
		if (!(m_dwFlags & GF_HIDEREADONLY) && !(m_dwFlags & GF_SAVEASDIALOG)) {
			m_fReadOnly = (dlg.m_ofn.Flags & OFN_READONLY) ? TRUE: FALSE;

		// testen, ob die Datei evtl. schreibgeschützt ist
			if (!m_fReadOnly) {
			DWORD dwAttr = ::GetFileAttributes (GetPathName (dlg));

				if ((UINT)(-1) != dwAttr)
					m_fReadOnly = (dwAttr & FILE_ATTRIBUTE_READONLY) ? TRUE : FALSE;
			}
		}
		GetParent()->PostMessage (WM_FILESELECTED);
	  }
	} else {
		SetWindowText(sCurrentFilename);
		m_Files.insert(os_string(sCurrentFilename));
		GetParent()->PostMessage (WM_FILESELECTED);
	}
}