MFC自己派生的CButton类如何添加鼠标单击事件响应函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC自己派生的CButton类如何添加鼠标单击事件响应函数相关的知识,希望对你有一定的参考价值。

RT。自己从CButton类派生了CMyButton,然后想在一个对话框中动态生成一些CMyButton的按钮,就是想每一个动态生成的按钮都自动默认响应Click函数。请问如何实现?

参考技术A 可以直接在cbutton点类里面定义一个 响应click的虚函数~我是这么认为的 参考技术B 可以写一个响应函数,然后把所有你的动态生成的按键的id放到函数的响应ID范围内 这样就可以了 参考技术C 一种方法,定义Cbutton派生类,添加BN_CLICKED响应函数 ... 运行,还是编译后运行EXE,程序运行一段时间后不响应鼠标事件,所有的单击事件和双击事件全都失效。 参考技术D 公交卡

MFC普通按钮CButton

1.简介

  按钮是最常见的、应用最广泛的一种控件。在程序执行期间,当单击某个按钮后就会执行相应的消息处理函数。

2.Functions

  2.1 int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const  |  void GetWindowText( CString& rString ) const;

void CButtonDlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    CString str;
    m_btn1.GetWindowTextW(str);//m_btn1为该Button的变量名
    MessageBox(str);
}

  2,2 void SetWindowText(LPCTSTR lpszString)

void CButtonDlg::OnBnClickedButton2()
{
    // TODO: 在此添加控件通知处理程序代码
    m_btn2.SetWindowTextW(TEXT("^_^"));
    CString str;
    m_btn2.GetWindowTextW(str);
    MessageBox(str);
}

  2,3 BOOL EnableWindow( BOOL bEnable = TRUE );

void CButtonDlg::OnBnClickedButton3()
{
    // TODO: 在此添加控件通知处理程序代码
    m_btn3.EnableWindow(FALSE);//按钮按下去会变灰色无法再点击
}

  2,4列出其他function

    

UINT GetState() const;//检索按钮控件的选中状态、加亮状态和获得焦点状态 
void SetState( BOOL bHighlight);//设置按钮控件的加亮状态 
int GetCheck( ) const;//检索按钮控件的选中状态 
void SetCheck( int nCheck );// 设置按钮控件的选中状态 
UINT GetButtonStyle( ) const;//检索按钮控件的风格 
void SetButtonStyle( UINT nStyle, BOOL bRedraw = TRUE );//设置按钮控件的风格
HICON GetIcon( ) const;//检索此前调用SetIcon设置的图标句柄 
HICON SetIcon( HICON hIcon );//指定一个在按钮上显示的图标  
HBITMAP GetBitmap( ) const;//检索此前调用SetBitmap设置的位图的句柄  
HBITMAP SetBitmap( HBITMAP hBitmap );//设置在按钮上显示的位图
HCURSOR GetCursor( );//检索此前调用SetCursor设置的光标图像的句柄 
HCURSOR SetCursor( HCURSOR hCursor );//设置在按钮上显示的光标图像 

 

以上是关于MFC自己派生的CButton类如何添加鼠标单击事件响应函数的主要内容,如果未能解决你的问题,请参考以下文章

在mfc中控件如CButton,CStatic创建之后能改变大小或者移动位置吗

如何静态链接我的 MFC 扩展 DLL?

MFC GUI自定义控件:如何绘制光标更新以响应鼠标移动?

MFC树形控件响应

MFC 中CBUTTON DrawItem函数为啥为空?

MFC普通按钮CButton