MFC中用Cwnd类创建一个最简单的窗口

MFC中用Cwnd类创建一个最简单的窗口,第1张

我前几天刚实现了这个。代码贴上!

#include <afxwin.h>

//应用程序类

class COurApp : public CWinApp

{

public:

virtual BOOL InitInstance()

~COurApp()

}

//窗口

class COurWnd: public CWnd

{

public:

COurWnd()

{

//构造函数

// Create(0,L"我们的MFC程序!")

CreateEx(0,

AfxRegisterWndClass(

CS_HREDRAW | CS_VREDRAW,LoadCursor (NULL, IDC_ARROW),(HBRUSH) GetStockObject (WHITE_BRUSH),0),

L"ssssssssssssssss",

//"SplashWindow Sample",

// WS_OVERLAPPED,

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

NULL,

NULL,

NULL)

}

}

//实现类中的函数

COurApp::~COurApp()

{

if(m_pMainWnd)

delete m_pMainWnd

}

BOOL COurApp::InitInstance(void)

{

m_pMainWnd = NULL

if(m_pMainWnd == NULL)

m_pMainWnd = new COurWnd()

m_pMainWnd->ShowWindow(m_nCmdShow)

return TRUE

}

COurApp myapp

大致步骤,新建win32项目,然后在工程属性中把使用标准windows库改为在静态库或动态库中使用mfc。代码适用于vc2008 unicode工程中,如果是非unicode,请把字符串常量前大写的L去掉

对话框建好,加上类,然后在按钮所在类(头文件中或者cpp中都可以)加上#include那个头文件,然后定义一个全局变量,比如 Cxx a 然后在按钮的函数中添加,a.DoModal()这个是模态对话框,非模态的话,void CMainFrame::OnModelessdlg() //创建非模态对话框

if (!a.m_hWnd) //判断对话框是否已被创建

{

a.Create(IDD_xx) //创建对话框ID

}

a.ShowWindow(SW_SHOW)

生成一个CWnd实例就可以,用的时候Create,比如

void CMyDlg::OnCreateStatic()

{

CWnd* pWnd = new CWnd

pWnd->Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE,

CRect(0, 0, 20, 20), this, 1234)

}

关闭它用CWnd::DestroyWindow

也可以从CWnd派生自己的窗口类,用法跟上面一样


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11597109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存