【发布时间】:2014-11-08 23:03:30
【问题描述】:
我刚刚开始使用 MFC 来制作 Windows 应用程序,希望有人可以帮助我使用我正在尝试编写的按钮来完成一些代码。
我要做的是构建一个具有按钮的应用程序,当按下该按钮时,将打开一个模式对话框,其中包含一些与我的问题无关的功能。我无法开始,因为我似乎无法捕捉到按下按钮并将代码附加到该事件。
添加到我的消息映射的事件:
ON_BN_CLICKED(1, OnBnClicked)
这是 OnBnClicked:
void CMainFrame::OnBnClicked()
{
CPaintDC dc(this);
dc.TextOutW(0, 100, _T("SUp dawg"));
MessageBox(_T("Hey Dawg"));
}
这里是按钮创建:
BOOL bCreated = myButton.Create(_T("Hey Dawg"), WS_CHILD | WS_VISIBLE,
CRect(40, 40, 190, 90), this, 1);
我似乎无法弄清楚为什么当我点击它时它不会做任何事情。我感谢所有的帮助,它在网上没有特别详细的记录:
【问题讨论】:
-
BN_CLICKED通知被发送到按钮的直接父窗口,即作为第四个参数传递给Create的窗口。CMainFrame是按钮的父级吗?顺便说一句,用 MFC 开始 Windows 编程从来都不是成功的。您需要对 Windows API 有深入的了解才能有机会了解 MFC。以Learn to Program for Windows in C++开头。 -
显示更多代码。您在哪个函数中创建按钮?
-
你读过TN020吗? msdn.microsoft.com/en-us/library/t2zechd4.aspx — 我怀疑按钮的数字标识符 (1) 超出了有效范围!尽管它从 8 开始用于控件,但我建议您尝试 >=1024。
-
更多参考:blogs.msdn.microsoft.com/oldnewthing/20041214-00/?p=37013 — 您的 1 与“确定”按钮的标识符
IDOK冲突。旁注:OK 和 Cancel 按钮的处理方式不应相同,而应分别处理OnOK()和OnCancel()方法。
标签: c++ visual-studio visual-c++ mfc