社区
VCL组件使用和开发
帖子详情
bcb里混用mfc
yqn123
2002-11-04 03:51:18
bcb里混用mfc,要做怎样的 修改呀!
...全文
72
3
打赏
收藏
bcb里混用mfc
bcb里混用mfc,要做怎样的 修改呀!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
RomanticProgrammer
2002-11-28
打赏
举报
回复
因为我得名字已经改了.
yqn123
2002-11-27
打赏
举报
回复
怎么回事?
当我结帖时,在主要解答人中填“MyNameIs007”,系统提示信息为
“CSDN中没有这个账号!!!主回答人:MyNameIs007”
why?????????
mynameis007
2002-11-04
打赏
举报
回复
看看这篇文章:(严重申明,这篇文章的作者不是我)
混用 VCL 与 MFC 的确是个不错的选择,但是、相对的,你的程序复杂度反而会提高。
在此先假设你已经看过『如何在 C++ Builder 3.0下编译含有MFC 的程序』这一篇文章了。因此一些基本知识就不在重复叙述了。
为了讨论这个题目,我决定采用范例实作的方式来做解说:
Step 1.
先用你知道的方法来建立一个空的、且可以正确编译 MFC 的 Project (不懂的可以参考『如何在 C++ Builder 3.0下编译含有MFC的程序』这篇文章)。在此先假设此 Project 名称为 Project1,而 MainForm 为 Form1 ,MainForm 的档案为 unit1.cpp,皆以 BCB 3.0 产生的为默认值,因此这时候你应该会有下列这些档案了:
Project1.bpr
Project1.cpp
Unit1.cpp
Unit1.h
Unit1.dfm
Step 2.
在这个范例中,我决定采用两个 MFC 的类别 (Class) 来与 C++ Builder 的 VCL 混用,而这两个类别分别是 CFileDialog 与 CPoint 。
OK,知道了这些后,我们先 Design 一些东西在 Form 上来使用 MFC 的类别吧!
先置放两个 Label 组件与一个 Button 组件
Step 3.
紧接着就是开始动手加入所们所要的 MFC code 啦,不过在此之前,先必须将 MFC 使用的宣告档给加进来:
//---------------------------------------------------------------------------
#include <afxwin.h>
#include <Afxdlgs.h>
#include <vcl.h>
不过要注意的是, MFC 所用的 Header 档要先于 #include <vcl.h> 之前喔!否则,你一定会在编译时得到一大堆的 Error !
Step 4.
当 Header 档给设定好后,我们开始来作 VCL 与 MFC 的混用吧!
我们先来使用 CPoint 这个类别吧!
先为 Form 建立 OnMouseMove 的个事件,并加入以下这些 Code :
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
CPoint Ps;
Ps.x =X;
Ps.y =Y;
Label1->Caption = "X :" + (AnsiString)Ps.x + " Y :" + (AnsiString)Ps.y;
}
OK,这样一来就可以编译啦!不过你在编译时,准会得到一大堆 Warning ,这是因为 MFC 中的一些 Marco 与 BCB 的同样名字,所以啰,会得到这些 Warning 使很正常的啦!不过幸好只是 warning 而不是 error ,不然就不能编译成功了。
编译成功后,你可以发现当你移动鼠标时, From 上的 Label1 会一直秀出你现在的鼠标光标,这样一来,使用 CPoint 这个类别就算成功了。
过你或许会想,何不直接用原先传进来的 X 与 Y 就可以了,何必动用到 CPoint 这个类别呢?嘿嘿,如果你不用这样,怎么表现 MFC 与 VCL 的混用呢?
Step 5.
嗯,接着我们就再来实作 CFileDialog 类别在 BCB 下使用
先为 Form 上的 Button 建立 OnClick 这个 Event ,并加入以下这些 Code :
void __fastcall TForm1::Button1Click(TObject *Sender)
{
CFileDialog dlg( TRUE,"CPP","*.CPP",
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
_T("C++ Source File (*.cpp)"));
if( dlg.DoModal()==IDOK )
{
Label2->Caption = (AnsiString)dlg.GetPathName();
}
}
一样的,在编译时会得到许多 warning ,但是编译完成后,按下此 Button 你将会得到与使用 VCL 中的 TOpenDialog 类别相同的画面,当你选择好档案后 Form 上的 Label2 也会换成你所选择的文件名称了,这样一来 CFileDialog 与 VCL 的混用也一样成功了。
在C++Builder6中编译
MFC
类
在C++builder6中编译
MFC
类库,可以实现VCL和
MFC
类
混用
,请参考文档和工程.
C++程序设计技巧
2000.11.4
混用
两大 Application Framework VCL &
MFC
使用WinInet类进行Internet编程 在C++ Builder3下实现程序自动运行的方法 让应用程序禁止Windows屏幕保护 巧妙保证程序只有一个实例打开 利用C++ Builder...
[C++] 如何在 C++ Builder 3.0 下
混用
两大 Application Framework VCL &
MFC
?
混用
VCL 与
MFC
的确是个不错的选择,但是、相对的,你的程序复杂度反而会提高。 在此先假设你已经看过『如何在 C++ Builder 3.0下编译含有
MFC
的程序』这一篇文章了。因此一些基本知识就不在重复叙述了。为了...
混用
VC和
BCB
的思考
做为公司的技术总监,我可以决定开发工具的选择,同时也必须承担我的决定所引发的结果.无论是Visual C++, C++ Builder,还是Delphi,能够在IDE市场存活至今,必然都是非常...公司
里
最初的几个技术骨干,都是和我一样...
如何在 C++ Builder 3.0 下
混用
两大 Application Framework VCL &
MFC
?
如何在 C++ Builder 3.0 下
混用
两大 Application Framework VCL &
MFC
?
混用
VCL 与
MFC
的确是个不错的选择,但是、相对的,你的程序复杂度反而会提高。 在此先假设你已经看过『如何在 C++ Builder 3.0下编译...
VCL组件使用和开发
604
社区成员
13,460
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章