建立一个只包含对话框的MFC程序

首先在VC中(我使用的是VC2008)建立一个Win32应用程序,并且选择空项目。建立完成后,选择项目属性->配置属性->常规->MFC的使用

选择在共享DLL中使用MFC。现在这个空项目中没有任何的文件。

1.添加对话框资源。

  添加对话框类:CComAppDlg。附带生成ComAppDlg.h和ComAppDlg.cpp。

2.建立.h文件(我这里是ComApp.h)

#pragma  once

#include "resource.h"        // 主符号

class CComApp : public CWinApp
{
public:
    virtual BOOL InitInstance();
};

3.建立cpp文件(这里是ComApp.cpp)

#include <afxwin.h>
#include "ComApp.h"
#include "ComAppDlg.h"

CComApp theApp;  //the one and only CComApp object

BOOL CComApp::InitInstance()
{
    CComAppDlg comDlg;
    INT_PTR nResponse = comDlg.DoModal();
    if(nResponse == IDOK) {

    } else if(nResponse == IDCANCEL) {
    
    }

    // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
    //  而不是启动应用程序的消息泵。
    return false;
}

运行程序,显示对话框。

成员函数CComApp::InitInstance:是一个虚函数。也就是基类CWinApp中也有这个函数。当WinMain函数找到应用程序对象theApp时,就调用它的虚拟成员函数InitInstance。这个函数就调用所需要的构造和显示应用程序的主窗口。派生的应用程序类(CMyApp)中必须覆盖InitInstance函数,应为基类(CWinApp)中的函数不知道我们要什么样的主窗口。

4.给对话框添加ICON。

  先添加自己的icon,然后在对话框类里CComAppDlg添加成员变量m_hIcon,在类的构造函数里加载导入的icon:m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

  加载后重写OnInitDialog()函数:

BOOL CComAppDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // TODO:  在此添加额外的初始化

    // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    //  执行此操作
    SetIcon(m_hIcon, TRUE);  // 设置大图标
    SetIcon(m_hIcon, FALSE); // 设置小图标

    return TRUE;  // return TRUE unless you set the focus to a control
    // 异常: OCX 属性页应返回 FALSE
}

 

 

 

 

posted on 2012-10-05 15:06  hequn8128  阅读(193)  评论(0编辑  收藏  举报

导航