我用OnCreat创建了一个按钮,但是怎么才能实现它的按下操作呢?
解决方案 »
- ADO访问ACCESS 数据更新不了,大家帮忙看看?
- 如何实现像QQ截图那样背景变暗选择区域变亮的效果!
- 单文档的视图类的OnCreate函数中如何获取到框架类的指针?
- CArchive的一个问题
- 我做了一个C/S应用系统,如何在虚拟空间运行server?
- 50分求解:LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM)中的CALLBACK是和意思?
- 用c写了一个用键盘方向键画线的程序?
- 奇怪的问题(一直在线)
- 毕业设计求助:GIF格式图像编解码
- MFC中主对话框关联的类对象this指针不能被正确传递的问题
- 怎样在窗体上的CStatic 上面画图?
- 程序建立一种文件(比如后缀为.PAT),双击该文件就打开程序,而如何在WINDOWS中设置该文件的显示图标?
ON_BN_CLICKED( 按钮ID , 消息响应函数)
然后在EGIN_MESSAGE_MAP中添加消息映射:
ON_BN_CLICKED( 按钮ID , 消息响应函数)
我先声明
void CMainFrame::OnBnClicked()
{
MessageBox("OK!");
}
然后在EGIN_MESSAGE_MAP中添加ON_BN_CLICKED(1,OnBnClicked())
编译有错误error C2065: 'OnBnClicked' : undeclared identifier
1.为CView类增加消息相应函数:OnCreate。
int CtestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
m_btn.Create(_T("button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON ,CRect(0,0,100,100),this,111);
return 0;
}2.在CView类上面点击右键-属性-消息。找到WM_LButtonDown消息,增加OnLButtonDown函数。
void CtttView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
AfxMessageBox(_T("cccc"),MB_OK,0);
CView::OnLButtonDown(nFlags, point);
}3.在CtttView类中的
BEGIN_MESSAGE_MAP(CtttView, CView)
// 标准打印命令
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)
ON_WM_LBUTTONDOWN() //增加鼠标右键消息响应
ON_WM_CREATE()
END_MESSAGE_MAP()
编译有错误error C2065: 'OnBnClicked' : undeclared identifierOnBnClicked()应该是OnBnClicked,不需要括号的吧
1、先随便创建一个按钮控件
2、再用ClassWizar生成按钮控件的点击消息响应
3、最后将消息映射中按钮控件的ID替换成你Create的按钮控件ID就可以了,又方便又好用
afx_msg void onClickedButton1(); //
实现:
void XXXX::onClickedButton1()
{
}映射:
BEGIN_MESSAGE_MAP 下添加下面一行 //前面的少写了一个B字母
ON_BN_CLICKED( 按钮ID , onClickedButton1) //这里不用括号
error C2065: 'onClickedButton1' : undeclared identifier
我真不知道为什么,我把声明放在了class CMainFrame : public CFrameWnd;里了,
void CMainFrame::OnBnClicked()
{
MessageBox("OK!");
}
是不是哪里还有问题呢?鄙人弄了大半天了,还是这个吊样,求各位再拉一把帮俺看看哪里还有问题好吗?
//
/////////////////////////////////////////////////////////////////////////////#if !defined(AFX_MAINFRM_H__FD34866D_F605_4DB7_827D_E53FF29E6453__INCLUDED_)
#define AFX_MAINFRM_H__FD34866D_F605_4DB7_827D_E53FF29E6453__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000#include "ChannelConfigDlg.h"class CMainFrame : public CFrameWnd
{
protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
CChannelConfigDlg m_ChannelConfigDlg;
// Operations
public:
void SendCMDtoDSP(int CmdIndex);
afx_msg void onClickedButton1();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMainFrame)
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
// Implementation
public:
//void onClickedButton1();
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endifprotected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;// Generated message map functions
protected:
CButton m_button2;
CButton m_button1;
CEdit m_edit1;
CStatic m_static1;
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnConfigChannelconfig();
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
//}}AFX_MSG DECLARE_MESSAGE_MAP()
};///////////////////////////////////////////////////////////////////////////////{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_MAINFRM_H__FD34866D_F605_4DB7_827D_E53FF29E6453__INCLUDED_)
附上窗体上的程序
在头文件里面添加 #define IDC_HAHA 96367
pretect:
afx_msg void OnHaha();
//源文件里面添加 ON_BN_CLICKED(IDC_HAHA, OnHaha)
以及下面这个.
void Chehe::OnHaha()
{
这里自己要怎么做就怎么做.
}