用制作带弹出式菜单的按钮覆盖
四、自定义接口函数
提供用户使用按钮的接口。
//设置关联菜单ID
void CMenuButton::SetMenuID(int nID)
{
m_MenuID = nID;
}
//设置按钮文本
void CMenuButton::SetText(CString str)
{
m_strText = str;
}
//设置文本颜色
void CMenuButton::SetForeColor(COLORREF color)
{
m_ForeColor = color;
Invalidate();
}
//设置背景颜色
void CMenuButton::SetBkColor(COLORREF color)
{
m_BackColor = color;
Invalidate();
}
//是否单击主按钮区
BOOL CMenuButton::isClick()
{
return b_ClickBut;
}
由于这种按钮分为两个区域,使用时要根据单击区域决定要做的工作,所以设置了isClick()接口函数。
五、变量的初始化
在CMenuButton类的头文件中,定义有以下变量和函数:
MenuButton.h
private:
int m_State; //按钮状态
BOOL b_InFlag; //鼠标进入标志
BOOL b_ClickFlag; //单击选择区
BOOL b_ClickBut; //单击主体区
CString m_strText; //按钮文字
COLORREF m_ForeColor; //文本颜色
COLORREF m_BackColor; //背景色
CRect m_ButRect; //按钮尺寸
CRect m_LRect; //按钮左部尺寸
CRect m_RRect; //按钮右部尺寸
CMenu m_Menu; //弹出菜单
int m_MenuID; //菜单ID
void DrawButton(CDC *pDC); //绘制按钮
public:
CMenuButton(); //构造函数
void SetMenuID(int nID); //设置关联菜单ID
void SetForeColor(COLORREF color); //设置文本颜色
void SetBkColor(COLORREF color); //设置背景颜色
void SetText(CString str); //设置按钮文本
BOOL isClick(); //是否单击主按钮区
各变量的初始化在构造函数中进行:
CMenuButton::CMenuButton()
{
m_MenuID = 0; //菜单ID
b_InFlag = false; //进入标志
m_State = 0; //初始状态
b_ClickFlag = false; //单击选择区标志
b_ClickBut = false; //单击主体区标志
m_strText = _T(\"\"); //按钮文本
m_ForeColor = RGB(0,0,0); //文字颜色
m_BackColor = GetSysColor( COLOR_3DFACE ); //背景色
}
这样,带菜单的按钮类就做好了,用它定义的按钮实例可以连接一个弹出式按钮,下面我们就看看怎样定义按钮实例。
并将Jibo连接到移动设施。它还可以与笔记本电脑和台式机接口连接。明年 六、生成按钮实例
1、在对话框中放置按钮,把它的大小调整合适;
2、用ClassWizard为按钮添加变量,把变量的类型设置为CMenuButton;
3、定义按钮的关联菜单
关联菜单就是普通的弹出式菜单,用VC的菜单器生成即可。
进入资源的“Menu”项,插入一个新的菜单,根据需要添加菜单项。
4、设置按钮
在对话框的OnInitial()函数中初始化按钮:
按钮变量.SetMenuID( 菜单ID );
按钮变量.SetText( 按钮文本 );
按钮变量.SetBkColor( 按钮背景色 );
七、按钮的响应
对按钮的响应包括单击按钮主体区的响应和单击菜单项的响应两部分。
用ClassWizard添加按钮的响应函数和各菜单项的响应函数。
在按钮的响应函数中要做如下工作:
void CMBTestView::OnMenubutton1()
{
if( m_Click() )
{
//响应按钮操作
}
}
这里要求只有单击按钮的主体区时才进行响应。
至于单击菜单项的响应与普通菜单一样,这里不再详述。查看本文来源
济南白癜风哪家好新标门窗怎么代理
福州妇科习惯性流产治疗费用
- 上一篇:用制作实时教学工程计划
- 下一篇:用制作播放视频流的动画按钮牛
-
满天星鱼怎么养满天星鱼饲养方法位置
凉菜2022年06月13日
-
溅水鱼好养吗一定要注意为鱼缸加盖子位置
凉菜2022年06月13日
-
深圳海关查获多只活体龟位置
凉菜2022年06月13日
-
清除水族箱中藻类的三大方法位置
凉菜2022年06月13日
-
你需要知道的金毛犬的犬种特征有哪些位置
凉菜2022年06月13日
-
你适合养金毛犬吗位置
凉菜2022年06月13日