class CChooseAreas : public CDialog { // Construction public: CChooseAreas(CWnd* pParent = NULL); // standard constructor int Areas; COLORREF Color[40]; CString ColorString[40]; // Dialog Data //{{AFX_DATA(CChooseAreas) enum { IDD = IDD_CHOOSE_AREAS }; CListBox m_list; //}}AFX_DATA // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CChooseAreas) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual void PostNcDestroy(); //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CChooseAreas) afx_msg void OnChooseNew(); afx_msg void OnChooseDel(); afx_msg void OnClose(); afx_msg void OnChooseErase(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_CHOOSEAREAS_H__17601CF4_7AE4_41AF_A193_2D6C30910D55__INCLUDED_)
时间: 2023-06-27 12:02:41 浏览: 134
这是一个 MFC 的对话框类 CChooseAreas 的定义。这个类用于选择区域,并且可以添加、删除、清空区域的选择。它包含一个成员变量 Areas 表示所选区域数目,以及两个数组 Color 和 ColorString,分别用于存储所选区域的颜色和颜色的字符串表示。这个类的界面由一个列表框和几个按钮组成。在类的实现中,有一些成员函数被重载,比如 DoDataExchange 用于数据交换,PostNcDestroy 用于销毁对话框,以及一些消息处理函数,比如 OnChooseNew、OnChooseDel、OnChooseErase 和 OnClose,用于处理用户的操作。
相关问题
class CResizingDialog : public CDialog { // Construction public: CResizingDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL ); void SetControlInfo(WORD CtrlId,WORD Anchore); BOOL GetRememberSize() { return m_bRememberSize;} void SetRememberSize(BOOL bRemember) { m_bRememberSize = bRemember;} virtual void GetDialogProfileEntry(CString &sEntry); // Dialog Data protected: // Set m_bRememberSize to FALSE if you don't want the dialog box // to remember its size between sessions. BOOL m_bRememberSize; // Set m_bDrawGipper if you don't want a Resizing Gripper BOOL m_bDrawGripper; private: int m_minWidth,m_minHeight; int m_old_cx,m_old_cy; BOOL m_bSizeChanged; CDWordArray m_control_info; UINT m_nIDTemplate; CRect m_GripperRect; protected: // Generated message map functions //{{AFX_MSG(CResizingDialog) virtual BOOL OnInitDialog(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnGetMinMaxInfo(MINMAXINFO* pMMI); afx_msg void OnDestroy(); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg UINT OnNcHitTest(CPoint point); afx_msg void OnPaint(); //}}AFX_MSG DECLARE_MESSAGE_MAP() };这段代码什么意思
这段代码定义了一个名为CResizingDialog的类,该类是CDialog类的子类。它提供了一些方法来设置对话框中控件的锚定和大小信息,并且可以记住对话框的大小。此外,它还提供了一些消息处理函数,用于处理对话框大小的变化、最小和最大尺寸、窗口销毁等事件,并在窗口周围绘制一个可调整大小的边框。这个类可以用于创建可调整大小的对话框。
如何在MFC项目中建立// ClockDlg.h : header file
要在 MFC 项目中建立一个名为 ClockDlg 的对话框类,可以按照以下步骤操作:
1. 打开 MFC 项目,在 Solution Explorer 中右键单击项目名称,选择 Add -> Class。
2. 在 Add Class 对话框中,选择 MFC Class,然后输入 Class Name 为 ClockDlg。
3. 在基类中选择 CDialog,然后单击 Add。
4. 在 ClassWizard 中添加 ClockDlg 的消息处理程序。
5. 在 ClockDlg.h 文件中添加以下代码:
```
#pragma once
#include "afxwin.h"
class CClockDlg : public CDialog
{
// Construction
public:
CClockDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
enum { IDD = IDD_CLOCK_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
};
```
6. 在 ClockDlg.cpp 文件中添加以下代码:
```
#include "stdafx.h"
#include "ClockDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CClockDlg dialog
CClockDlg::CClockDlg(CWnd* pParent /*=NULL*/)
: CDialog(CClockDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CClockDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CClockDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
END_MESSAGE_MAP()
// CClockDlg message handlers
BOOL CClockDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CClockDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
HCURSOR CClockDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
```
现在,您已经成功创建了一个名为 ClockDlg 的对话框类。
阅读全文