2015-08-12 19 views
5

Ho un'applicazione C++ MFC con un gruppo di finestre di dialogo definite in un file .rc. Devo aggiungere una tessera all'applicazione per bloccarla nel menu di avvio perché il "riquadro" predefinito che Windows crea dall'icona non sembra molto buono. Riscrivere l'intera applicazione per utilizzare XAML al posto del file .rc non è un'opzione al momento. Non è necessario che la tessera sia interattiva, basta visualizzare un'immagine migliore rispetto allo schiaffo della piccola icona.Aggiunta di un riquadro a un'applicazione MFC

C'è un modo per aggiungere una tessera a un'applicazione MFC con un file .rc?

In caso contrario, l'altra idea che avevo era di creare un'applicazione wrapper che utilizza XAML per creare una piastrella e l'unica cosa che l'applicazione wrapper dovrebbe fare è avviare l'applicazione MFC. Qualcuno ha una soluzione migliore?

Sto utilizzando Visual Studio 2015. Il file .ico che sto utilizzando ha 768x768, 512x512, 256x256, 150x150, 48x48, 32x32 e 16x16 versioni dell'immagine al suo interno.

Modifica

c'era un po 'di confusione su cosa esattamente mi serviva. Ecco una schermata con annotazioni che, si spera, mostra chiaramente il problema. annotated screen shot showing, default tile with small icon

Un altro chiarimento, non penso che questo faccia alcuna differenza, ma ho pensato di aggiungerlo solo per sicurezza. Il programma non deve essere eseguito su Windows 8/8.1, solo Windows7 e Windows10

+0

questo potrebbe non risolvere il problema, ma hai provato ad avere un'immagine con lo sfondo come canale alfa? Lo sto chiedendo perché tutte le altre immagini mostrate sembrano solo immagini monocolore alfanumerico, eccetto il widget "esplosione uccide almeno 50 in Cina" – Robson

+0

Sì, ho provato ad usare il canale alfa. È ancora solo una piccola immagine sulla piastrella. – spikeynick

risposta

1

Dopo approfondite ricerche, è chiaro che questo non è possibile. Non solo non è possibile con MFC, ma l'unico modo per creare una tessera (dal vivo o statica) è con un'app universale di Windows. Quindi la mia soluzione qui è creare un semplice programma di avvio che avvii l'applicazione MFC e quindi esista. Tuttavia, un avvertimento qui è che i programmi Windows Universal non sono autorizzati a eseguire direttamente altri programmi. Quello che è permesso fare è aprire un file con il suo programma predefinito. Così ho creato una nuova estensione di file e assegnato l'applicazione predefinita per essere il programma MFC.

0

questo-> SetWindowText ("SudeshMFCDemo");

https://msdn.microsoft.com/en-us/library/yhczy8bz(v=vs.90).aspx

+0

Penso che abbiate interpretato erroneamente la domanda ** tile ** not ** title ** – spikeynick

+0

Hai ragione. Ho letto male la domanda qui. Ma ho un altro collegamento, penso che sia la soluzione adatta a te. http://www.ucancode.net/Visual_C_MFC_Samples/Bitmap-as-dialog-background.htm –

+0

No, non è utile. Quel collegamento si occupa di un'immagine all'interno di un'applicazione e non ha nulla a che fare con i riquadri del menu di avvio. – spikeynick