VC实现抽屉菜单

用vc做了一个简单的抽屉菜单,界面非常简单,只是实现了功能而已。

界面包括3个按钮,一个对话框。

 

下面讲解设计过程:

1)在对话框类中加入如下变量

 int m_left;    // 按钮的左边坐标
 int m_right;  // 按钮的右边坐标
 int m_buttonHeight;// 按钮的高度
 int m_buttonWidth; // 按钮的宽度
 int m_dlgHeight;  // 子对话框的高度,而宽度与按钮应该相同
 CButton m_button[3]; // 3个按钮,下面会动态创建

2)对如下变量进行初始化,初始化的数据根据自己的尺寸设置

 m_left = 0;    // 按钮的左边坐标
 m_right = 150;  // 按钮的右边坐标
 m_buttonHeight = 20;// 按钮的高度
  m_buttonWidth = 225; // 按钮的宽度
  m_dlgHeight = 330;  // 子对话框的高度,而宽度与按钮应该相同

在OnInitDialog()函数中加入如下代码:

show(0);   

3)show()函数的设计

for(int i=0;i<=index;i++)
 {
  m_button[i].MoveWindow(  m_left, m_buttonHeight*i,m_buttonWidth,
   m_buttonHeight  );
 }
 for( i=index+1;i<3;i++)
 {
  m_button[i].MoveWindow( m_left,m_buttonHeight*i+m_dlgHeight,m_buttonWidth,m_buttonHeight  );
 }

4)添加按钮的消息映射

.h :

       // Generated message map functions

       //{{AFX_MSG(CMyDlg)

       virtual BOOL OnInitDialog();

       afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

       afx_msg void OnPaint();

       afx_msg HCURSOR OnQueryDragIcon();

      

       //}}AFX_MSG

       afx_msg void OnClick(UINT nID);

 

 .cpp:

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)

       //{{AFX_MSG_MAP(CMyDlg)

       ON_WM_SYSCOMMAND()

       ON_WM_PAINT()

       ON_WM_QUERYDRAGICON()

      

       //}}AFX_MSG_MAP

       ON_COMMAND_RANGE(IDC_BUTTON+0,IDC_BUTTON+2,OnClick)

END_MESSAGE_MAP()

6)消息响应

void CTuopanDlg::OnClick(UINT nID)

{

       int index=nID-IDC_BUTTON;
       Show(index);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值