在自绘控件中创建多个CButton按钮时,如果设置按钮的消息(使用ON_COMMAND_RANGE消息)
2017-06-29 11:02
399 查看
最近在做一个功能是:在CListCtrl控件中的随意位置添加CButton按钮。并且点击按钮时,让按钮消失。
难点:主要是不知道需要创建多少个按钮,需要用户自己设置。
所以,使用ON_COMMAND_RANGE这个消息,可以让多个ID响应同一个消息。方便做处理
使用方式:
第一步:
要知道要响应的CButton的起始ID、结束ID。
假设现在起始ID = 1236 , 结束ID = 2000
ON_COMMAND_RANGE(1235,2000,OnCommandMy)
第二步:声明消息
afx_msg void OnCommandMy(UINT nID );
第三步:定义该消息
void OnCommandMy(UINT nID)
{
//在这里面就可以做ID的消息处理了。我现在需要实现的功能是,按下按钮,销毁该按钮
switch(nID)
{
case 1236:
case 1237:
m_button->DestroyWindow();
}
}
*******************************
当我使用的时候,设置断点没有走入自定义的消息。从网上也没有找到合适的方法。
后来找到原因了。我把结束ID设置的太大了。最大到65535
难点:主要是不知道需要创建多少个按钮,需要用户自己设置。
所以,使用ON_COMMAND_RANGE这个消息,可以让多个ID响应同一个消息。方便做处理
使用方式:
第一步:
要知道要响应的CButton的起始ID、结束ID。
假设现在起始ID = 1236 , 结束ID = 2000
ON_COMMAND_RANGE(1235,2000,OnCommandMy)
第二步:声明消息
afx_msg void OnCommandMy(UINT nID );
第三步:定义该消息
void OnCommandMy(UINT nID)
{
//在这里面就可以做ID的消息处理了。我现在需要实现的功能是,按下按钮,销毁该按钮
switch(nID)
{
case 1236:
case 1237:
m_button->DestroyWindow();
}
}
*******************************
当我使用的时候,设置断点没有走入自定义的消息。从网上也没有找到合适的方法。
后来找到原因了。我把结束ID设置的太大了。最大到65535
相关文章推荐
- MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应
- 多个按键点击映射到同一个消息函数中的方法(ON_COMMAND_RANGE)
- 动态创建一个CButton按钮并实现其ON_BN_CLICKED消息
- ON_COMMAND_RANGE的使用-将多个消息映射到一个消息响应函数
- MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应
- 动态创建一个CButton按钮并实现其ON_BN_CLICKED消息
- 将多个类似命令消息或多个控件消息映射到同一个响应函数:ON_COMMAND_RANGE
- 动态控件的创建和使用--动态按钮
- 如果在按钮风格中没有勾上owner draw(自绘)风格是,怎样通过代码,设置它的自绘风格
- 扩展GridView控件(3) - 根据按钮的CommandName设置其客户端属性
- 在Dialog中使用ON_UPDATE_COMMAND_UI来更新控件
- 在Jdeveloper使用SVN时,如果先设置浏览器代理,后在Jdeveloper创建SVN连接会导致的问题
- wince控件之自绘按钮(支持多种状态的图像加载、可通过图像创建不规程按钮)
- InfoPath2010五分钟新特体验系列之使用图片按钮控件来创建标签导航栏
- MFC中动态创建多个按钮并实现其消息响应
- MFC里ON_COMMAND_RANGE消息映射的ID问题
- MFC中动态创建多个按钮并实现其消息响应
- 扩展GridView控件(3) - 根据按钮的CommandName设置其客户端属性
- WinForm 用户控件使用——设置用户控件的按钮事件
- ExtTag,如果你不想写extjs那么麻烦的代码可以尝试使用html方式的方法来创建extjs控件.