小弟是用VS8.0开发程序的,我想在Win32项目中加入一个MFC窗体,为此我引入了头文件#include <afxwin.h>,并且在工程设置的常规项中将“MFC的使用”改为“在共享 DLL 中使用 MFC”,去掉了stdafx.h中的#include <window.h>项:然后在cpp文件中加入以下代码:#include "stdafx.h"
#include "MFCWindow.h"
#include "afxwin.h"
#define MAX_LOADSTRING 100class MyApp:public CWinApp
{
public:
BOOL InitInstance();
};
CWinApp appclass;
class CMainFrame:public CFrameWnd
{
public:
CMainFrame()
{
Create(L"Open",L"我的窗口",WS_OVERLAPPEDWINDOW,CRect(0,0,800,600));
}
protected:
afx_msg void OnLButtonDown(UINT uint, CPoint cpoint);
DECLARE_MESSAGE_MAP()
};BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()void CMainFrame::OnLButtonDown(UINT uint, CPoint cpoint)
{
MessageBox(L"Open",L"osdf",MB_YESNOCANCEL);
CFrameWnd::OnLButtonDown(uint,cpoint);
}BOOL MyApp::InitInstance()
{
CMainFrame fam;
m_pMainWnd=&fam;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}在运行MyApp::InitInstance()函数时,窗体应该可以显示的,为什么程序刚运行了没多长时间,就自动退出了呢?
#include "MFCWindow.h"
#include "afxwin.h"
#define MAX_LOADSTRING 100class MyApp:public CWinApp
{
public:
BOOL InitInstance();
};
CWinApp appclass;
class CMainFrame:public CFrameWnd
{
public:
CMainFrame()
{
Create(L"Open",L"我的窗口",WS_OVERLAPPEDWINDOW,CRect(0,0,800,600));
}
protected:
afx_msg void OnLButtonDown(UINT uint, CPoint cpoint);
DECLARE_MESSAGE_MAP()
};BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()void CMainFrame::OnLButtonDown(UINT uint, CPoint cpoint)
{
MessageBox(L"Open",L"osdf",MB_YESNOCANCEL);
CFrameWnd::OnLButtonDown(uint,cpoint);
}BOOL MyApp::InitInstance()
{
CMainFrame fam;
m_pMainWnd=&fam;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}在运行MyApp::InitInstance()函数时,窗体应该可以显示的,为什么程序刚运行了没多长时间,就自动退出了呢?
解决方案 »
- 关于CPropertyPage的使用?
- BHO中,如何禁止javascript和vbscript的运行啊?
- 帮我介绍本书吧
- <<visual C++6.0运行库参考手册>>,<<win32 SDK 程序员参考>>有电子版得,给我个网址,或传一个要中文的
- 求COM、ActiveX的经典站点,有源码最好
- Student& s跟Student s,怎么有个&,有什么含义?
- 如何在MFC中读取文件中的某一行?
- 为什么要用override?
- 网络通信问题--关于使用udp公网穿透(编码使用的udt)
- dll注册
- ADO SQLSERVER2000 无法读取master中的信息
- 没有主窗体的程序如何实现托盘?
m_pMainWnd->UpdateWindow();
<-------这里要加停留的代码,不然直接结束
return TRUE;
while(1==1)
{
int a=1;
}
为什么还不行呢,调试的时候,运行不到这段代码呀
{
CMainFrame *fam;
fam=new CMainFrame;
m_pMainWnd=fam;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
这样试一下看行不行?
原来的程序写的,fam只是个local变量,退出InitInstance函数后自动销毁,当然窗口也就不见了。
改过用指针new就可以了。其实这个问题的解决你可以多参考一下MFC自已生成的代码。