VC++6.0重命名MFC工程及类文件

    作为MFC新手使用VC++6.0这古董级的东西有时实在痛苦,这有空几天都在想怎么重命名MFC工程的命名空间和类文件。现在总算有个结果,发一下修改过程吧。
       首先,使用MFC AppWizard(exe)创建的工程有几个重要的文件:
      1.dws文件,它指向工程使用哪个dsp文件。主要内容如下:
      Project: "MyDemo"=".\MyDemo.dsp" - Package Owner=<4>
      2.dsp文件:它储存了工程中的各项信息,就是要修改的主要文件。
      3.rc文件:存储工程资源信息
      4.clw文件:存储每个窗体对应的类及资源,ClassWizard会使用到。
      5.类文件
      MFC工程自带的ReadMe.txt有详细说明。如果我们需要修改整个工程,那么上面的文件都要修改,当然还有大部分文件的文件名。

      接下来是修改的步骤:
       1.重命名类名:
       高版本的Visual AssistX带有重命名类名的功能,不过在Cpp文件还是有的函数的类名没有被重命名。我们手动改就是了。修改类名不会影响整个工程,但我们接下来修改了类文件名,工程可就找不到类了。我们改完类名,将头文件引用也改为新的头文件名,然后退出工程。
       2.修改文件名
      修改类文件为新的名字。如果要修改命名空间,那么把所有命名空间命名的文件都改为新的,包括Resources文件夹里面以旧命名空间命名的文件,不需要就不要改了。
      3.修改工程信息。
      如果修改整个工程,进行下面2步,不需要直接跳到第3步.
      (1).首先使用笔记本打开dsw文件,修改Project: " MyDemo"=".\ MyDemo.dsp" - Package Owner=<4>颜色部分为工程名。
      (2). 修改rc文件中资源文件名。笔记本打开,使用Crtl+F找出旧命名空间并改为新的,主要是修改.rc2和.ico的旧文件名。因为我们在Resources文件夹里面将他们重命名了。
      (3).修改dsp文件。笔记本打开,如果只是修改类文件,那么将SOURCE=后面的类名修改为新的。要修改的地方如下面:
       SOURCE=.\MyDemo.h 和 SOURCE=.\MyDemo.CPP
      修改完所有要修改的类文件。要修改整个工程的话,那就Ctrl+F把所有旧命名空间的文字都改为新的吧。
      (4).修改clw文件。笔记本打开,修改每个窗体对应的类的新名称。这样我们编辑窗体控件,使用ClassWizard 时能识别到新类。另外你也可以删除原来的clw文件,让VC++6.0自己重新创建一个。
         4.修改基本完成。打开命名空间,如果发现Wordsapce导航的Resources出现"Load Failed"错误,无法显示窗体等资源文件夹。请点击"Window"->"Close",重新加载即可。 

      PS:可能修改会不彻底,所以本文仅供参考。

出处:http://www.cnblogs.com/WindWing/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VC++6.0MFC框架下,可以使用CDC类来进行绘图操作。下面是一个简单的例子: 1. 在MFC应用程序中添加一个对话框。 2. 在对话框类的头文件中添加以下代码: ``` class CMyDlg : public CDialog { public: CMyDlg(CWnd* pParent = NULL); //{{AFX_DATA(CMyDlg) enum { IDD = IDD_MY_DIALOG }; //}}AFX_DATA //{{AFX_VIRTUAL(CMyDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); //}}AFX_VIRTUAL protected: HICON m_hIcon; //{{AFX_MSG(CMyDlg) virtual BOOL OnInitDialog(); afx_msg void OnPaint(); //}}AFX_MSG DECLARE_MESSAGE_MAP() public: afx_msg void OnMouseMove(UINT nFlags, CPoint point); }; ``` 3. 在对话框类的实现文件中添加以下代码: ``` BOOL CMyDlg::OnInitDialog() { CDialog::OnInitDialog(); // 设置图标 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 return TRUE; } void CMyDlg::OnPaint() { CPaintDC dc(this); // 用于绘制的设备上下文 // TODO: 在此处添加消息处理程序代码 // 不要在调用 CDialog::OnPaint() 前绘制 // 绘制一个矩形 dc.Rectangle(20, 20, 100, 100); } void CMyDlg::OnMouseMove(UINT nFlags, CPoint point) { CClientDC dc(this); // 用于绘制的设备上下文 // 绘制一个圆形 dc.Ellipse(point.x - 10, point.y - 10, point.x + 10, point.y + 10); CDialog::OnMouseMove(nFlags, point); } BEGIN_MESSAGE_MAP(CMyDlg, CDialog) //{{AFX_MSG_MAP(CMyDlg) ON_WM_PAINT() ON_WM_MOUSEMOVE() //}}AFX_MSG_MAP END_MESSAGE_MAP() ``` 4. 在资源视图中添加一个按钮,双击打开对话框类的消息映射器,添加以下代码: ``` void CMyDlg::OnBnClickedButton1() { // 显示对话框 DoModal(); } ``` 5. 编译并运行程序,点击按钮,即可看到绘图效果。 在以上例子中,通过CPaintDC和CClientDC类获取设备上下文,然后使用设备上下文对象的成员函数进行绘图操作。例如,使用Rectangle函数绘制矩形,使用Ellipse函数绘制圆形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值