⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stattext.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        src/mac/carbon/stattext.cpp// Purpose:     wxStaticText// Author:      Stefan Csomor// Modified by:// Created:     04/01/98// RCS-ID:      $Id: stattext.cpp,v 1.68 2006/10/14 16:18:09 SC Exp $// Copyright:   (c) Stefan Csomor// Licence:     wxWindows licence/////////////////////////////////////////////////////////////////////////////#include "wx/wxprec.h"#if wxUSE_STATTEXT#include "wx/stattext.h"#ifndef WX_PRECOMP    #include "wx/app.h"    #include "wx/utils.h"    #include "wx/dc.h"    #include "wx/dcclient.h"    #include "wx/settings.h"#endif // WX_PRECOMP#include "wx/notebook.h"#include "wx/tabctrl.h"#include "wx/mac/uma.h"#include <stdio.h>IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl)bool wxStaticText::Create( wxWindow *parent,    wxWindowID id,    const wxString& label,    const wxPoint& pos,    const wxSize& size,    long style,    const wxString& name ){    m_macIsUserPane = false;    m_label = GetLabelText( label );    if ( !wxControl::Create( parent, id, pos, size, style, wxDefaultValidator, name ) )        return false;    Rect bounds = wxMacGetBoundsForControl( this, pos, size );    wxMacCFStringHolder str( m_label, m_font.GetEncoding() );    m_peer = new wxMacControl( this );    OSStatus err = CreateStaticTextControl(        MAC_WXHWND(parent->MacGetTopLevelWindowRef()),        &bounds, str, NULL, m_peer->GetControlRefAddr() );    verify_noerr( err );    if ( ( style & wxST_DOTS_END ) || ( style & wxST_DOTS_MIDDLE ) )    {        TruncCode tCode = truncEnd;        if ( style & wxST_DOTS_MIDDLE )            tCode = truncMiddle;        err = m_peer->SetData( kControlStaticTextTruncTag, tCode );        err = m_peer->SetData( kControlStaticTextIsMultilineTag, (Boolean)0 );    }    MacPostControlCreate( pos, size );    return true;}wxSize wxStaticText::DoGetBestSize() const{    ControlFontStyleRec controlFont;    OSStatus err = m_peer->GetData<ControlFontStyleRec>( kControlEntireControl, kControlFontStyleTag, &controlFont );    verify_noerr( err );    Point bounds;    SInt16 baseline;    wxMacCFStringHolder str( m_label,  m_font.GetEncoding() );    if ( m_font.MacGetThemeFontID() != kThemeCurrentPortFont )    {        err = GetThemeTextDimensions(            (!m_label.empty() ? (CFStringRef)str : CFSTR(" ")),            m_font.MacGetThemeFontID(), kThemeStateActive, false, &bounds, &baseline );        verify_noerr( err );    }    else    {#if wxMAC_USE_CORE_GRAPHICS        wxClientDC dc(const_cast<wxStaticText*>(this));        wxCoord width, height ;        dc.GetTextExtent( m_label , &width, &height);        bounds.h = width;        bounds.v = height;#else        wxMacWindowStateSaver sv( this );        ::TextFont( m_font.MacGetFontNum() );        ::TextSize( (short)(m_font.MacGetFontSize()) );        ::TextFace( m_font.MacGetFontStyle() );        err = GetThemeTextDimensions(            (!m_label.empty() ? (CFStringRef)str : CFSTR(" ")),            kThemeCurrentPortFont, kThemeStateActive, false, &bounds, &baseline );        verify_noerr( err );#endif    }    if ( m_label.empty() )        bounds.h = 0;    bounds.h += MacGetLeftBorderSize() + MacGetRightBorderSize();    bounds.v += MacGetTopBorderSize() + MacGetBottomBorderSize();    return wxSize( bounds.h, bounds.v );}void wxStaticText::SetLabel( const wxString& st ){    m_label = GetLabelText( st );    wxMacCFStringHolder str( m_label, m_font.GetEncoding() );    CFStringRef ref = str;    OSStatus err = m_peer->SetData<CFStringRef>(kControlEntireControl, kControlStaticTextCFStringTag, ref );    verify_noerr( err );    if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )    {        InvalidateBestSize();        SetSize( GetBestSize() );    }    Refresh();    // we shouldn't need forced updates    // Update();}bool wxStaticText::SetFont(const wxFont& font){    bool ret = wxControl::SetFont( font );    if ( ret )    {        if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )        {            InvalidateBestSize();            SetSize( GetBestSize() );        }    }    return ret;}#endif //if wxUSE_STATTEXT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -