如何通过MFC创建一个窗口?急
我因为想利用class wizard所以用mfc生成了一个基于对话框的程序
然后我把 myDlg.h myDlg.cpp去掉 并且把资源对话框里的资源去掉了
然后我用 class wizard 创建了一个窗口类myWnd::public CFrameWnd并在my.cpp中的InitInstance 中正确的创建了一个窗口:
myWin *mm=new MainWin;
m_pMainWnd = mm;
mm->ShowWindow(SW_SHOWNORMAL);
mm->UpdateWindow();
而且还重载了OnPaint()函数 但是 奇怪的是 窗口一闪而过郁闷啊)。(我通过研究对话框的应用程序发现 它是利用的dlg.DoModle()来实现消息循环的。(猜测而已)
那么我该如何让自己的窗口一直保持显示呢?而且我研究了框架代码发现myApp的代码和win32 app中是差不多的啊 为什么同样的
#include <afxwin.h>
class MyApp : public CWinApp
{
public:
BOOL InitInstance() //②程序入点
{
CFrameWnd *Frame=new CFrameWnd();//构造框架
m_pMainWnd=Frame; //将m_pMainWnd设定为Frame;
Frame->Create(NULL,"最简单的窗口");//建立框架
Frame->ShowWindow(SW_SHOW); //显示框架
CStatic *cs = new CStatic();
cs->Create("hello world",
WS_CHILD|WS_VISIBLE|SS_CENTER,
CRect(50,80,150,100),
Frame);
return true; //返回
}
};
MyApp theApp; //①建立应用程序。
却没有一闪而过呢?
很郁闷啊!!各位大侠救命啊!
另外我想在创建win 32 application的时候能使用class wizard 应该怎么办呢?
参考答案:可能你的窗口的创建是在堆栈里完成的,堆栈里完成的,就会一闪而过,窗口应在内存创建。
建议去看一下深入浅出MFC