当前位置: 首页 > 编程笔记 >

C++之CWnd窗口框架实例

上官鸿晖
2023-03-14
本文向大家介绍C++之CWnd窗口框架实例,包括了C++之CWnd窗口框架实例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了CWnd窗口框架,分享给大家供大家参考。具体分析如下:

.h头文件代码如下:

#include <afxwin.h>  

  

class CMyApp:public CWinApp  

{  

public:  

    virtual BOOL InitInstance();  

};  

  

//CMainWindow  

class CMainWindow:public CWnd  

{  

public:  

    CMainWindow();  

    ~CMainWindow();  

  

protected:  

    afx_msg void OnNcDestroy( );  

    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);  

    afx_msg void OnDestroy( );  

    DECLARE_MESSAGE_MAP()  

};

.cpp源文件代码如下:

#include "ReadBMP.h"  

#include "resource.h"  

  

CMyApp theApp;  

BOOL CMyApp::InitInstance()  

{  

    m_pMainWnd = new CMainWindow;  

    m_pMainWnd->ShowWindow(m_nCmdShow);  

    return TRUE; //必须返回TRUE,否则不会进入消息循环,界面会直接退出  

}  

  

//CMainWindow  

BEGIN_MESSAGE_MAP(CMainWindow, CWnd)  

ON_WM_CREATE()  

END_MESSAGE_MAP()  

//构造函数  

CMainWindow::CMainWindow()  

{  

    LPCTSTR lpszClassName = ::AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW, ::LoadCursorA(NULL, IDC_ARROW), (HBRUSH)(COLOR_3DFACE+1), theApp.LoadIcon(IDI_MAIN));  

    CreateEx(WS_EX_CLIENTEDGE, lpszClassName, "xxx", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL);  

}  

//析构函数  

CMainWindow::~CMainWindow()  

{  

  

}  

//消息映射函数  

int CMainWindow::OnCreate(LPCREATESTRUCT lpCreateStruct)  

{  

    //OutputDebugString("oncreate");  

    //设置菜单  

    HMENU hMenu = ::LoadMenuA(theApp.m_hInstance, (LPCSTR)IDR_MENU);  

    ::SetMenu(m_hWnd, hMenu);  

    return 0;  

}  

  

void CMainWindow::OnNcDestroy( )  

{  

    delete this;  

}  

void CMainWindow::OnDestroy()  

{  

      

}

希望本文所述对大家的C++程序设计有所帮助。

 类似资料:
  • Qt 的 QMainWindow 类提供了一个应用程序主窗口,包括一个菜单栏( menu bar)、多 个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)以及一个 中心部件(central widget),常见的一种界面布局如图 8-1 所示。 图 8-1 Qt 主窗口常见布局示意图 绝大多数现代 GUI 应用程序都会提供一些菜单、上下文菜

  • 本文向大家介绍emacs 多个窗口或框架,包括了emacs 多个窗口或框架的使用技巧和注意事项,需要的朋友参考一下 示例 Emacs中的“窗口”指的是否则称为“窗格”或“屏幕划分”的内容。一些窗口操作命令包括: 水平分割当前窗口: C-x 2 垂直拆分当前窗口: C-x 3 选择下一个窗口: C-x o 关闭当前窗口: C-x 0 关闭所有其他窗口,但当前窗口除外: C-x 1 Emacs中的“框

  • 本文向大家介绍C#实现窗口之间的传值,包括了C#实现窗口之间的传值的使用技巧和注意事项,需要的朋友参考一下 为了解决在多个窗口之间的传值问题,我们可以通过设置静态类和静态变量的办法来实现窗口间值的传递 窗体一代码 窗体2代码 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 问题内容: 运行以下代码: 结果是: 上面的代码中没有定义任何窗口框架,它看起来默认的窗口框架是 不确定我对默认窗口框架的理解是否正确 问题答案: 从Spark Gotchas 默认帧规格取决于给定窗口定义的其他方面: 如果指定了ORDER BY子句,并且该函数接受了帧规范,则该帧规范是由RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW定义的, 否

  • 本文向大家介绍C#中父窗口和子窗口之间控件互操作实例,包括了C#中父窗口和子窗口之间控件互操作实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中父窗口和子窗口之间控件互操作的方法。分享给大家供大家参考。具体分析如下: 很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即

  • 问题内容: 我有这个网页,我想使其自动化。这是应用程序的步骤和功能。 使用Selenium启动应用程序 单击某些按钮后,将在主页上弹出一个框架 我可以通过硒Web驱动程序在框架上执行操作 但同一框架中有一个日历图标。 单击日历图标后,将弹出一个带有日历和“确定”按钮的弹出窗口。 我可以在弹出窗口中选择日期,然后单击“确定”按钮,弹出窗口会自动关闭。 现在,我想再次切换到FRame来执行进一步的操作