How to apply VisualStudio 11 theme to my MFC application? - mfc

The new VS 11 features a grey-style user interface that is cool. Is it possible for me apply this to my MFC App? Thanks!

The last "update" for MFC controls and their appearance was the MFC Feature Pack, as described here: http://msdn.microsoft.com/en-us/library/bb982354.aspx
Unfortunately, it does not include the VS 2011 style, but maybe you find something else which would be interesting for your application (for example ribbons etc).
They did not include pictures of their controls, you can only check them in their sample application, which you can download here
http://msdn.microsoft.com/en-us/library/bb983962.aspx
or via Google Image Search
http://www.google.com/search?q=mfc+feature+pack

Related

How Can i mimic the Office style ribbon using MFC C++?

I want to mimic the word ribbon. But i can't find any resource that goes in depth on this subject matter or a template like the office developer tool template for MFC.
The Office 2016 ribbon is not exactly available, but the Ribbon Framework is. Here is one of my old articles about it.

Adding a custom "template group" in Word 2013

Is it possible to add a custom template "tab" (for lack of a better term) to the start screen in Word 2013? In other words, is it possible to add another section in addition to "Featured" and "Personal?" in the interface below?
I'm interested in the feasibility of adding a, say, "Legal" tab, to surface templates developed specifically for an organization's legal department. I'm aware that a custom template directory can be pushed down via domain policy (read: registry edit) such that custom templates appear under the "Personal" tab, but that's not really ideal given the administrative overhead. Not to mention that the templates aren't "personal" at all.
Ideally, I'd like to accomplish this via an Office app. Looking at the JavaScript API for Office documentation, however, it doesn't seem immediately possible.
This post (via this SO question) describes the registry change and seems to suggest that customizing the "backstage" isn't possible.
Is such a customization possible? If so, via what means of customization? Using an Office add-in (managed), an Office app, some other registry modification...?
(And yes, I'm aware that "add-in" is the new term; for the sake of clarity I use the term "add-in" in the question to refer to the managed add-in project template available in Visual Studio 2013 as opposed to the Office app or Cloud app for Office templates)
You won't be able to add a custom group to the available template using the JavaScript-based Office Add-ins (This technology is rather limited in functionality - it's main advantage is that it can run cross-platform).
The approach to add custom templates is to create a Spotlight provider. It is described in detail here:
Deploy custom templates in Office 2010
The article talks about Office 2010, but it works also in Office 2013. You only would need to change the version number in the Registry Keys from 14.0 to 15.0.
Yes, I believe implementing a Backstage tab is possible by creating a Word 2013 VSTO add-in using Visual Studio 2013. (This is also possible by embedding Ribbon XML into a VBA add-in template that loads on start up as well.)
I will preface the course of action I outline below by saying that I think it would be easier and possibly provide a better UI experience to create a custom Legal ribbon tab with a gallery control populated by images of the templates. (A Custom Task Pane might also provide a good solution, depending on the use cases.)
Preparing Word
The screen capture you provided is the initial Backstage view that appears when Word 2013 is launched. (This view only appears at launch and future access to templates using this Word instance will need to be via the Backstage New tab.) As this Backstage "splash screen" cannot, to my knowledge, be modified, the first step is to disable it by going to File|Options|General|Startup Options and uncheck Show the Start screen when this application starts. This will cause Word to launch to a blank document and remove this splash screen permanently. And this setting can be pushed down to users PCs via group policy. (If you disabled this setting and then went the custom Ribbon tab route, you could have your templates displayed visually in the ribbon upon launch.)
The Approach
With the Backstage "splash screen" disabled, I suggest hiding the built-in Backstage New tab and then replacing it with a custom New tab that features your legal templates.
The Word Backstage view is altered via Ribbon XML code. This code is either embedded in a VBA template add-in or delivered via a VSTO add-in built in Visual Studio with C#, F#, or VB.NET. To hide the built-in New tab, the XML would contain this code:
<tab idMso="TabOfficeStart" visible="false"/>
You can find all the control identifiers here:
Office 2013 Fluent User Interface Control Identifiers
The Steps
Create the add-in project in Visual Studio (or the template in VBA)
Write the Ribbon XML which will remove the New tab and insert your custom tab with legal templates
Customizing the Office 2010 Backstage View for Developers (Applies to Office 2013 As Well)
Create Custom Tabs in the Office 2010 Backstage View (Applies to Office 2013 As Well)
Deploy the add-in
This should get you started, but you may need to seek out other articles on add-in creation and Backstage customizations.

How to use an autocomplete edit control in an MFC Ribbon Application

I need to develop a search module for an mfc ribbon application using C++. I have used auto complete feature in C#.NET but never worked on any mfc ribbon application. I want auto complete search with an icon image as prefix of each suggestion, just like Facebook search. I have also consulted this article, but that uses CComboBox, I need to use CMFCRibbonCombobox in my program because I tried with CCombobox but that was causing problems. Any help will be appreciated.
you need to create your own CMFCRibbonComboBox derived class, that will be pretty much a copy of the CMFCRibbonFontCombBox without the fonts.to check how you draw the images you can check the CMFCRibbonFontComboBox::OnDrawDropListItem implementation.
Then I think that you will have to dynamicaly add it to the ribbon.

How to create desktop application using fully customized UI?

Have a look at this figure below, which is a Quick Book Enterprise Solution 2014
Judging by its interface (not its DLL), I don't think you can easily guess with what platform/language does the above application was created. Qt? .NET? Java? It has its own border, custom menu, ... etc. In a simple wording, "it has totally customized UI that make it stand from the rest".
What do we need to be able to create this kind of application with fully customized UI? And what if I add cross platform aspect in this application? Different customized widgets in different OSes... but maintaining the same level of UI appearance...
I have previous experience with Qt, .. but I am not sure Qt can do this.. or is it?
For instance, you can write your own plugin similar to the existing qt style plugins.
Here, you can find an example how to write widget based style plugins with Qt 5:
QtWidgets 5.0: Style Plugin Example
You would work with the QStylePlugin plugin interface.
If you are looking into a bit more modern solution, you may find this qml style and theme support documentation useful.

Browser Helper Object UI

I am a newbie working towards developing an IE extension that would appear as an overlay in certain webpages. I am getting started by creating a simple BHO in VS2008 (using C++), but I am wondering how UI may be incorporated within the project. Any ideas?
Just to give you an idea, I'm looking for overlays similar to what was developed by stickis
http://www.stickis.com/faq/
Thanks
You have two real options:
1> Inject your UI into the page as HTML.
2> Overlay your UI (using Windows graphics APIs) over top of the page.
Neither of these is super-simple, I'm afraid. Unfortunately, doing UI is usually the hardest part of building IE addons.
The key question is whether you need a BHO at all. Between context-menu extensions and IE8 Accelerators, you may find that you can let IE do all of the heavy lifting. See www.enhanceie.com/ie/dev.asp for more info.
Using CreateWIndowEx() was what I was looking for :)