Domanda

Penso che mi manchi qualcosa di fondamentale. Per favore dimmi cos'è, se puoi.

Ho sviluppato una piccola app C ++ Winforms utilizzando VS2008. Quindi è costruito utilizzando .NET 3.5 SP1. La mia scatola di sviluppo è Win7, se questo è importante.

Il valore predefinito della proprietà UseCompatibleTextrending nei controlli WinForms è falso in questa versione di VStudio. E questo non dovrebbe importare per me, non credo. Non ho alcun testo o controlli personalizzati.

L'app ha un bell'aspetto in esecuzione sulla mia scatola Win7.

Se lo confetto (trascinando lungo .NET 3.5) e installo su uno dei nostri desktop WinXP, i pulsanti e le etichette non hanno un bell'aspetto; Il testo è tagliato in loro.

Se ho impostato USECOMPATIBLETEXSTRENDERing su True e quindi eseguilo sulle caselle XP, il testo si adatta ai pulsanti e alle etichette.

La mia domanda è: perché? L'installazione mette .NET 3.5 nelle caselle XP, quindi l'app dovrebbe essere in grado di trovare e utilizzare la versione giusta di Winforms, giusto?

Dovrei notare che prima di mettere la mia app + .NET 3.5 su queste caselle, non hanno affatto .NET. Non ricevono aggiornamenti automatici Microsoft; Il nostro ragazzo IT sta recuperando le patch e gli aggiornamenti.

Questo genere di cose è successo prima con le app che creo .. sembrano/lavorano alla grande sulle macchine ingegneristiche, perché ne manteniamo e hanno principalmente cose aggiornate. Quando vengono eseguiti sulle scatole aziendali, di solito non funzionano e hanno bisogno di installazione del vcredista. "

Tornando alla domanda a portata di mano: il testo sembra migliore con l'USECOMPATIBLETEXTRENDERSING IN FALSE, quindi preferirei tenerlo così, se posso. Vorrei capire cosa potrebbe mancare in quelle caselle XP che non si adattano al testo.

Grazie

S

È stato utile?

Soluzione

Probabilmente è un problema di ridimensionamento, la macchina XP può avere un'impostazione DPI di adattatore video diversa o una dimensione del carattere di sistema diversa. Il ridimensionamento è influenzato dal modello automatico della forma e se "ereditano o meno la proprietà del carattere del controllo del contenitore. Che fa se la proprietà del carattere non è audace nella finestra Proprietà.

Un modo rapido per verificare se il ridimensionamento funziona nella proprietà nel modulo:

protected:
    virtual void OnLoad(EventArgs^ e) override {
        this->Font = gcnew System::Drawing::Font(this->Font->FontFamily, 
            this->Font->SizeInPoints * 125 / 96);
    }

Questo lo ridimensiona. Probabilmente viene ridimensionato sulla macchina XP, usa 96/125.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top