c++提示errorC3867:“CDialog::DoModal” - 爱问答

(爱问答)

c++提示errorC3867:“CDialog::DoModal”

 

// MyWindosDlg.cpp: 实现文件

//

 

#include "stdafx.h"

#include "MyWindos.h"

#include "MyWindosDlg.h"

#include "afxdialogex.h"

#include "Hall.h"

#include <iostream>

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

 

// 用于应用程序“关于”菜单项的 CAboutDlg 对话

 

class CAboutDlg : public CDialogEx

{

public:

CAboutDlg();

 

// 对话框数据

#ifdef AFX_DESIGN_TIME

enum { IDD = IDD_ABOUTBOX };

#endif

 

protected:

virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

 

// 实现

protected:

DECLARE_MESSAGE_MAP()

};

 

CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)

{

}

 

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

}

 

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)

END_MESSAGE_MAP()

 

// CMyWindosDlg 对话框

 

CMyWindosDlg::CMyWindosDlg(CWnd* pParent /*=nullptr*/)

: CDialogEx(IDD_MYWINDOS_DIALOG, pParent)

{

m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);

}

 

void CMyWindosDlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

}

 

BEGIN_MESSAGE_MAP(CMyWindosDlg, CDialogEx)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON1, &CMyWindosDlg::OnBnClickedButton1)

ON_BN_CLICKED(IDC_BUTTON2, &CMyWindosDlg::OnBnClickedButton2)

END_MESSAGE_MAP()

 

// CMyWindosDlg 消息处理程序

 

BOOL CMyWindosDlg::OnInitDialog()

{

CDialogEx::OnInitDialog();

 

// 将“关于...”菜单项添加到系统菜单中。

 

// IDM_ABOUTBOX 必须在系统命令范围内。

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

 

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != nullptr)

{

BOOL bNameValid;

CString strAboutMenu;

bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);

ASSERT(bNameValid);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

 

// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动

//  执行此操作

SetIcon(m_hIcon, TRUE);// 设置大图标

SetIcon(m_hIcon, FALSE);// 设置小图标

 

// TODO: 在此添加额外的初始化代码

 

return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE

}

 

void CMyWindosDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();

}

else

{

CDialogEx::OnSysCommand(nID, lParam);

}

}

 

// 如果向对话框添加最小化按钮,则需要下面的代码

//  来绘制该图标。  对于使用文档/视图模型的 mfc 应用程序,

//  这将由框架自动完成。

 

void CMyWindosDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // 用于绘制的设备上下文

 

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

 

// 使图标在工作区矩形中居中

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;

 

// 绘制图标

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialogEx::OnPaint();

}

}

 

//当用户拖动最小化窗口时系统调用此函数取得光标

//显示。

HCURSOR CMyWindosDlg::OnQueryDragIcon()

{

return static_cast<HCURSOR>(m_hIcon);

}

 

void CMyWindosDlg::OnBnClickedButton1()

{

// TODO: 在此添加控件通知处理程序代码

using namespace std;

CString m_name1;

CString m_name2;

GetDlgItem(IDC_EDIT1)->GetWindowText(m_name1);

GetDlgItem(IDC_EDIT2)->GetWindowText(m_name2);

if (m_name1 == "666" && m_name2 == "666") {

Hall  hall;

hall.DoModal;

}

else

{

MessageBox(_T("用户名或密码错误"),_T("登录失败"), MB_OK| MB_ICONHAND);

}

}


// Hall.cpp: 实现文件

//

 

#include "stdafx.h"

#include "MyWindos.h"

#include "Hall.h"

#include "afxdialogex.h"

 

// Hall 对话框

 

IMPLEMENT_DYNAMIC(Hall, CDialog)

 

Hall::Hall(CWnd* pParent /*=nullptr*/)

: CDialog(IDD_DIALOGBAR, pParent)

{

 

}

 

Hall::~Hall()

{

}

 

void Hall::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

}

 

BEGIN_MESSAGE_MAP(Hall, CDialog)

END_MESSAGE_MAP()

 

// Hall 消息处理程序


1>------ 已启动生成: 项目: MyWindos, 配置: Debug Win32 ------

1>MyWindosDlg.cpp

1>e:c++文件mywindosmywindosmywindosdlg.cpp(170): error C3867: “CDialog::DoModal”: 非标准语法;请使用 "&" 来创建指向成员的指针

1>已完成生成项目“MyWindos.vcxproj”的操作 - 失败。

========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========


你的

hall.DoModal;

写错了,正确的

hall.DoModal();

下一篇:笔记本电脑开机又自动关机

上一篇:请问怎么导出

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?