我是MFC编程的新手。这些天,我正在使用Jeff Prosise的书来学习MFC编程。我遇到过:CClientDC dc (this);和我从CClientDC类的定义中找到了一个构造函数:CClientDC(CWnd* pWnd);,但是如果我用CClientDC dc = CClientDC(this);替换CClientDC dc (this);。编译器告诉我这是个错误。我不能理解。我认为CClientDC dc (this);和CClientDC dc = CClientDC(this);是一样的。或者换句话说,前者是一种简单的形式。
非常感谢。
我将以下代码从基于MFC对话框的项目移到MFC库dll中:
CWnd dummyWnd;
standard = new Gdiplus::Font(dummyWnd.GetDC()->GetSafeHdc(), &logfont); //GetDC() returns null, which did not happen in an MFC dialog-based app
我需要一个临时DC来创建双工字体,测量字符串和其他实用程序功能。
我的问题:
可以像我在基于对话框的应用程序中那样使用CWnd吗?,或者我可以用另一种方式获得DC吗?
我已经创建了新的emty项目。然后添加cpp和头hello world文件,这些文件取自Jeff Prosise的“Programming Windows with MFC”一书。已将Use of MFC设置为Use MFC in a Shared DLL
获取错误entry point must be defined如何解决此问题?
CPP:
#include <afxwin.h>
#include "Hello.h"
CMyApp myApp;
/////////////////////////////////////////////////////////
我已经开始为我正在从事的一个C++项目使用GTest (Google Test)。我有一个严重依赖MFC的类(CFile、CObject、CString等)。
我如何打破对MFC的依赖(或最小化它们),这样我就不必仅仅为了运行测试而创建虚拟的MFC对象?我想测试一下我的方法没有MFC的功能。
下面是我必须测试的一种方法的示例:
// DumpContext class inherits from CDumpContext
void MyClass::Print(DumpContext &dc)
{
// MyClass::Print real work goes here :
我正在用MFC编写一个SFML测试应用程序。下面的代码在由AfxBeginThread()函数启动的另一个线程中的无限循环中运行。(因为我想像在纯WinAPI应用程序中一样使用SFML )
// SFML Window and View were initialized using CView's HWND
// Use SFML to draw
sf::Color back(255, 255, 0); // a yellow background
_psfwnd->clear(back);
_psfwnd->display();
// Then use MFC GDI
我的MFC程序中有一个包含图像的WICBitmap。有没有办法将这个位图绘制到设备上下文中?
void DrawBitmap(IWICBitmapSource source, HDC targetDC, int X, int Y, int cx, int cy)
{
//source: The Bitmap to draw
//TargetDC: The HDC to draw onto (e.g. a printer or screen DC)
//X,Y: The location on the DC to draw the bitmap
}
我正在尝试使用MFC库在c++中绘制一个窗口的背景。我必须使用这个框架,因为我正在开发一个MFC应用程序。我尝试了几种不同的方法,但都不能正常工作。所以我最近打开了一个空白项目,只想弄清楚如何绘制背景,但它不起作用。任何帮助都是最好的。这是我的代码。
class CExerciseApp : public CWinApp
{
//a pointer to our window class object
Basic_Window *bwnd;
BOOL InitInstance()
{
bwnd = new Basic_Wi
我正在做一个使用Cairo将旧的Windows95MFC代码翻译成C++11的项目。由于我不熟悉MFC,我对原始程序中用于绘图的不同坐标空间感到困惑,并且很难找到解释这些函数的信息和示例。
这就是我所看到的。在代码中,似乎有一个新的CDC设备上下文正在使用CreateCompatibleDC创建。然后创建一个位图对象。然后使用SelectObject函数将该位图设置为新的设备上下文。据我所知,这是一个依赖于DDB设备的位图。
例如:
bmp_dc = new CDC();
bmp_dc->CreateCompatibleDC(NULL);
int num_bit
我正在制作Scribble教程来学习MFC,这是关于MouseMove事件的代码:
void CScribbleView::OnMouseMove(UINT nFlags, CPoint point)
{
// Mouse movement is interesting in the Scribble application
// only if the user is currently drawing a new stroke by
// dragging the captured mouse.
if( GetCapture( ) != this )
基本上,我有一个程序可以移动用MFC中的钢笔工具绘制的线条。我使用滑块操作钢笔工具。我想知道是否有可能用.bmp代替钢笔工具?下面是一些示例代码:
if (thePart->GetType() == PART_LINKAGE)
{
// draw control link pin in black
dc.SelectObject(&Pen[3]);
theNewPos = thePart->Getpoint();
dc.Mo
在C++ MFC应用程序中。使用dc of ( CPaintDC dc(this); )
我如何绘制一个矩形( LPRECT )的α透明度,我可以调整。?
下面是我需要转换成C++的示例c#代码
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Color color = Color.FromArgb(75,Color.Red); //sets color Red with 75% alpha transparency
Rectang
除了绘制文本之外,我在调整CRect (是的,实际上使用MFC)时仍然存在问题。
大小计算和绘图实现都需要一个DVTARGETDEVICE。这是我的密码:
void CRichDrawText::DrawText(CDC& dc, const CRect& rect)
{
// Draw the text in the windowless control onto the given device context,
// within the given bounding rectangle.
//HTRACE("%s w(%d) h(%d)\n"
我试图在视图中显示两幅相同图像的位图,如下所示,但它只显示了第一个位图。如果我注释掉第一个,那么另一个就会显示出来。
void CChildView::OnPaint()
{
// Load the bitmap
CBitmap BmpLady;
// Load the bitmap from the resource
BmpLady.LoadBitmap(IDB_MB);
CPaintDC dc(this); // device context for painting
// Create a memory device compatible with the