MFC Support for Direct2D – Transforms (1)
Direct2D supports linear transforms like translation, scale, rotation and skew. If using MFC, we can apply transforms to render targets by calling CRenderTarget::SetTransform. Here is an example that...
View ArticleMFC Support for Direct2D – Part 8: Lost Render Target
As stated in the Direct2D documentation, the graphics device might become unavailable. If the device is lost, the render target also becomes invalid, along with any device-dependent resources that were...
View ArticleCodexpert – 2017 Articles Summary
MFC Support for Direct2D – Part 3: Multithreading MFC Support for DirectWrite – Part 8: Trimming MFC Support for DirectWrite – Part 9: Hit-Test MFC Support for DirectWrite – Part 10: Outlined Text MFC...
View ArticleMFC Support for Windows Animation
Let’s say we have to make a slide show presentation using Cross Fade effect. If the target system is Windows 10, that’s quite easy because Direct2D offers built-in Cross Fade effect. Cross Fade effect...
View ArticleMFC Support for Direct2D – Part 7: Saving to files
Once have enabled Direct2D support in an MFC application, there is no sweat to load an image from a file, by using one of CD2DBitmap constructors. Unfortunately, we cannot find a CD2DBitmap method to...
View ArticleEnumerate WIC Components
In an older article, I presented a function that enumerates Windows Imaging Component codecs. Recently I had the idea to make a set of WIC Interfaces wrapper classes for easily enumerate and get info...
View ArticleThree Ways to Find Files
Let’ say we have to implement a function that search a folder to recursively find files having an extension from a given list of extensions. This article shows three possible implementations: one using...
View ArticleMFC Support for Direct2D – Part 6: Composite Effects
We can combine two or more images and/or effects by using the composite effect. Here is an example. Drawing shadows using Direct2D composite effects void...
View ArticleMFC Support for DirectWrite – Part 11: About Trimming Again
In a previous article, I showed how to trim a text which overflows the layout box. In the example presented there, the ellipsis is added at the end of truncated text. But if, let’s say, we have to show...
View ArticleEasy Screen Capture with MFC
In an older article published at Codeguru, I showed how easy is to make screen capture using CImage ATL/MFC class. Here is the sample code from that article:BOOL CScreenImage::CaptureRect(const...
View ArticleDouble-click in MDI Client
It’s hard to believe that handling mouse double-clicks in MDI Client windows can be super useful, but I found this problem in a discussion forum. I presumed that it was not only for fun, so I tried to...
View ArticleMFC Support for Direct2D – Part 5: Interoperability with GDI
There are two ways to combine Direct2D with Windows GDI API in the same application: Drawing Direct2D content to a GDI device context Drawing GDI content to a Direct2D GDI-compatible render target...
View ArticleMFC Support for Direct2D – Part 4: Built-in Effects
Direct2D has built-in support for image processing like changing brightness or contrast, blurring, creating drop shadows, and so on. Basically, we can use for this purpose the CreateEffect and...
View ArticleMFC Support for DirectWrite – Part 10: Outlined Text
In a previous article, I showed the basics of custom text rendering with DirectWrite (see MFC Support for DirectWrite – Part 7: A Step to Custom Rendering). So far so good but it just mimics the...
View ArticleMFC Support for DirectWrite – Part 9: Hit-Test
DirectWrite has hit-testing support that can be useful for showing a caret, making a selection, doing some action if the user chicks in a given text range, and so on. The hit-test methods of...
View ArticleMFC Support for Direct2D – Part 3: Multithreading
As shown in previous articles, we can enable MFC Direct2D support for a window by a call of CWnd::EnableD2DSupport. Example:int CSlideShowWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { if...
View ArticleMFC Support for DirectWrite – Part 8: Trimming
When using “classic” GDI functions i.e. CDC::DrawText, it’s no sweat to trim with ellipsis a single-line text when that text does not fit in the drawing rectangle width, by specifying DT_WORDBREAK...
View ArticleCodexpert – 2016 Articles Summary
C++ Programming Language Guidelines Support Library Review: span<T> Guidelines Support Library Review: string_span<T> Microsoft Libraries Easy PNG Resource Loading with MFC – Part 1 MFC...
View ArticleHow to Get Visual C++ Sample Projects (2)
In a previous article I showed how to get Visual C++ sample projects either by using Visual Studio IDE or by downloading from MSDN – Developer Code Samples site. Recently, I found that we can also...
View ArticleEasy PNG Resource Loading with MFC – Part 2
A previous article demonstrates how easy is to load images from PNG resources, by using Direct2D MFC support. I have found even an easier way: CPngImage class which extends CBitmap with methods that...
View Article