bcb中编译MFC类库

本文地址:http://tongxinmao.com/Article/Detail/id/519

1.编译条件:

在Project options-->Directories/Conditionals-->Conditionals:Conditional dfines中添加_X86_;_WINDOWS;_MSC_VER=1100;_AFX_PORTABLE;_AFX_NOFORCE_LIBS;_MT;_CRT_PORTABLE;

_AFX_NO_DEBUG_CRT


2.包含路径:

include path 加入 $(BCB)\include\MFC 

Library path 加入  $(BCB)\Lib\PSDK


3.Advanced Compiler 里将 MFC Compatibility 勾选起来


4.CPP文件中包含相关的lib文件

#ifdef _DEBUG

# pragma link "nafxcwd.lib"

#else

# pragma link "nafxcw.lib"

#endif


5.CPP文件中包含头文件,在vcl.h之前

#include <afxwin.h>

#include <Afxdlgs.h>



在编译的过程中,有两个常量定义冲突,可注释掉。

//static const Word CN_COMMAND = 0xbd11;

//static const Shortint ID_HELP = 0x9;

如果还有其他冲突可在CPP开始处加入#define NO_WIN32_LEAN_AND_MEAN 


在c++builder窗体上画线,调用MFC中的CClientDC类,在窗体上画图,代码如下:

void __fastcall TForm1::FormPaint(TObject *Sender)

{

     //HWND Handle转CWnd;

     CWnd *pCWnd1=CWnd::FromHandle(this->Handle);

     

     //CPaintDC dc(pCWnd1);//这个类要在WM_PAINT消息中调用

     CClientDC dc1(pCWnd1);

     dc1.DrawText("大家好",CRect(10,10,200,100),DT_LEFT);

     CBrush brush(RGB(120,21,90));

     CBrush *pOldBrush = dc1.SelectObject(&brush);

     RECT rect;

     rect.bottom =100;

     rect.left   = 200;

     rect.right  =400;

     rect.top    =10;

     dc1.Ellipse(&rect);

}


————————————————

版权声明:本文为CSDN博主「chinayu2007」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/chinayu2007/article/details/39549309


上一篇:__closure调用另一个类中的函数
下一篇:键盘按键名称及HID扫描码及VK虚拟键码对照表