代码如下:
class CMyApp : public CWinApp
{
public:
virtual BOOL initInstance();
};class CMainWindow : public CFrameWnd
{
public:
CMainWindow();
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};
#include <afxwin.h>
#include "111.h"CMyApp myApp;BOOL CMyApp::initInstance()
{
m_pMainWnd = new CMainWindow;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}BEGIN_MESSAGE_MAP(CMainWindow, CFrameWnd)
       ON_WM_PAINT()
END_MESSAGE_MAP()CMainWindow::CMainWindow()
{
Create(NULL, _T("The Hello Application"));
}void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.DrawText(_T("Hello MFC"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}本程序为Windows程序设计第二版的一个例子,我照书上源码写的。
编译与执行均无错,但不显示窗口。
望高手解答。

解决方案 »

  1.   

    m_pMainWnd = new CMainWindow;
    m_pMainWnd->ShowWindow(m_nCmdShow);
    m_pMainWnd->UpdateWindow();
    return TRUE;你这里没创建窗口怎么显示啊m_pMainWnd = new CMainWindow;
    ((CMainFrame*)m_pMainWnd)->Create(NULL,"Test");
    m_pMainWnd->ShowWindow(m_nCmdShow);
    m_pMainWnd->UpdateWindow();
    return TRUE;这样试试
      

  2.   

    CMainWindow::CMainWindow()
    {
    Create(NULL, _T("The Hello Application"));
    }
    创建了啊
      

  3.   

    virtual BOOL initInstance
    virtual BOOL InitInstance
    怎么会没错呢?
    你把m_pMainWnd->ShowWindow(m_nCmdShow);改成m_pMainWnd->ShowWindow(SW_SHOW);试试.
      

  4.   


    那就是initInstance的问题了, 你本来是重载CWinApp::InitInstance, 
    可写错一个字母语法上没问题, 不过MFC调用的是CWinApp::InitInstance, 
    而不是CMyApp::initInstance, 前者默认啥也不做, 所以就没显示了.
      

  5.   

    project->setting->general->use mfc in a sherd dll
    就OK了