vc6 控件 message map
来源:互联网 发布:dreamweaver cs6 mac 编辑:程序博客网 时间:2024/05/03 16:50
1. 头文件.h 关于afx_message 定义:
class CTest : public CDialog
{
public:
// Dialog Data
//{{AFX_DATA(CTest)
CTest(CWnd* pParent = NULL); // standard constructor
UINT m_time; //④ 文本框 数字
CString m_name; //④ 文本框 字符串
CButton m_BtnDel; //③列表框界面的按钮
CComboBox m_ComboSpeed; //②下拉菜单
CListCtrl m_ListTest;//③列表框
CDateTimeCtrl m_timeStart; //⑤时间插件
CSliderCtrl m_SliderSpeed; //⑥滑动条 速度
CButtonBMP m_btnTop; // 7图片按钮
CTabCtrl m_tabCfg; //⑧tab窗口
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CTest)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
protected:
// Generated message map functions
//{{AFX_MSG(CTest)
virtual BOOL OnInitDialog(); //初始化函数
virtual void OnOK();
virtual void OnCancel();
afx_msg void OnButtonStart();
afx_msg void OnButtonStop();
afx_msg void OnButtonOn();
afx_msg void OnButtonOff();
afx_msg void OnButtonCall();
afx_msg void OnButtonSet();
afx_msg void OnButtonClear();
afx_msg void OnButtonSave(); //① 按钮
afx_msg void OnSelchangeComboSpeed(); //②下拉菜单
afx_msg void OnClickListTest(NMHDR* pNMHDR, LRESULT* pResult); //③列表框
afx_msg void OnReleasedcaptureSliderSpeed(NMHDR* pNMHDR, LRESULT* pResult); //⑥滑动条
afx_msg void OnSelchangeTabRemotecfg(NMHDR* pNMHDR, LRESULT* pResult); //⑧tab窗口
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
2. 控件和消息关联xx.cpp文件:
CTest::CTest(CWnd* pParent /*=NULL*/)
: CDialog(CTest::IDD, pParent)
{
m_btnTop.LoadBitmaps(IDB_TOP, IDB_TOPUP, IDB_TOPDOWN);
//{{AFX_DATA_INIT(CTest)
//}}AFX_DATA_INIT
}
static CHAR *cSpeedList[] = {"Full Speed", "1/2 Speed", "1/4 Speed", "1/8 Speed", NULL};
void CTest::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTest)
DDX_Control(pDX, IDC_BUTTON_DEL, m_BtnDel);
DDX_Control(pDX, IDC_LIST_TEST, m_ListTest); //③列表框 变量和控件相关联
DDX_Control(pDX, IDC_COMBO_SPEED, m_ComboSpeed); //②下拉菜单 变量和控件相关联
DDX_Text(pDX, IDC_EDIT_TIME, m_time); //④ 文本框 变量和控件相关联(DDV_MinMaxInt(pDX, m_time, 1, 255); DDV_MinMaxUInt(pDX, m_time, 0, 512);)
DDX_Control(pDX, IDC_TIME_START, m_timeStart); //⑤时间插件
DDX_Text(pDX, IDC_EDIT_NAME, m_name); //④ 文本框 变量和控件相关联
DDV_MaxChars(pDX, m_name, 30);
DDX_Control(pDX, IDC_BUTTON_UP, m_btnTop); // 7图片按钮
DDX_Control(pDX, IDC_TAB_CFG, m_tabCfg); //⑧tab窗口
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTest, CDialog)
//{{AFX_MSG_MAP(CTest)
ON_BN_CLICKED(IDC_BUTTON_START, OnButtonStart)
ON_BN_CLICKED(IDC_BUTTON_ON, OnButtonOn)
ON_BN_CLICKED(IDC_BUTTON_OFF, OnButtonOff)
ON_BN_CLICKED(IDC_BUTTON_CALL, OnButtonCall)
ON_BN_CLICKED(IDC_BUTTON_SET, OnButtonSet)
ON_BN_CLICKED(IDC_BUTTON_CLEAR, OnButtonClear)
ON_BN_CLICKED(IDC_BUTTON_SAVE, OnButtonSave) //① 按钮
ON_CBN_SELCHANGE(IDC_COMBO_SPEED, OnSelchangeComboSpeed) //②下拉菜单
ON_NOTIFY(NM_CLICK, IDC_LIST_TEST, OnClickListTest) //③列表框
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_SPEED, OnReleasedcaptureSliderSpeed) //⑥滑动条
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_CFG, OnSelchangeTabcfg) //⑧tab窗口
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
3. 消息实现xx.cpp文件:
void CTest::OnButtonSave() //① 按钮
{
// TODO: Add your control notification handler code here
// UpdateData(TRUE);或UpdateData(FALSE};
....
}
void CTest::OnSelchangeComboSpeed() //②下拉菜单
{
// TODO: Add your control notification handler code here
m_speed = m_ComboSpeed.GetCurSel();
//将修改的值同步到窗体显示
this->UpdateData(FALSE);
}
void CTest::OnClickListTest(NMHDR* pNMHDR, LRESULT* pResult) //③列表框
{
// TODO: Add your control notification handler code here
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
int nItem = pNMListView->iItem;
m_Index = nItem;
//设置控件是否可见
if(-1 == nItem)
{
this->m_BtnDel.EnableWindow(FALSE);
return ;
}
this->m_BtnDel.EnableWindow(TRUE);
*pResult = 0;
}
BOOL CTest::OnInitDialog()
{
CDialog::OnInitDialog();
::GSetItemFont(this); //统一字体
// TODO: Add extra initialization here
int i;
char acBuf[32];
m_ComboSpeed.ResetContent();
for(i = 0; cSpeedList[i] != NULL; i++)
{
sprintf(acBuf,"%s", GetTxt(cSpeedList[i]));
m_ComboSpeed.AddString(acBuf);
}
SYSTEMTIME stTime;
this->m_timeStart.GetTime(&stTime); //⑤时间插件
stTime.wHour = schStart[0].hour;
stTime.wMinute = schStart[0].minute;
this->m_timeStart.SetTime(&stTime);
this->m_timeStart.SetFormat("HH:mm");
m_btnTop.OnSetMSG(TRUE); //7 图片按钮
i=1;
this->m_tabCfg.InsertItem(i++, ::GetTxt("NewTab"));
CRect rtDlg;
CRect rtTab;
RECT rect;
this->m_tabCfg.GetClientRect(&rtDlg); //⑧设置tab窗口大小位置,创建窗口
this->m_tabCfg.GetItemRect(0, &rtTab);
rect.left = rtDlg.left+2;
rect.right = rtDlg.right-4;
rect.top = rtDlg.top+rtTab.Height()+4;
rect.bottom = rtDlg.bottom-8;
m_dlgNewTab.Create(IDD_TAB, &m_tabCfg);
m_dlgNewTab.MoveWindow(&rect, FALSE);
}
void CTest::OnReleasedcaptureSliderSpeed(NMHDR* pNMHDR, LRESULT* pResult) //⑥滑动条
{
// TODO: Add your control notification handler code here
// m_StcSpeed.Format("%d", m_SliderSpeed.GetPos());
// UpdateData(FALSE);
*pResult = 0;
}
void CTest::OnSelchangeTabcfg(NMHDR* pNMHDR, LRESULT* pResult) //⑧tab窗口
{
// TODO: Add your control notification handler code here
m_OthersShowWindow(SW_HIDE);
switch(this->m_tabCfg.GetCurSel())
{
case 0:
m_dlg0.ShowWindow(SW_SHOW);
break;
case 1:
m_dlg1.ShowWindow(SW_SHOW);
break;
case 2:
m_dlg2.ShowWindow(SW_SHOW);
break;
default:
break;
}
*pResult = 0;
}
- vc6 控件 message map
- Message Map
- vc6 控件
- Message Map Macros (MFC)
- 从VC6迁移到VS2005 - MESSAGE
- VC6 Activex控件开发
- MFC的MESSAGE MAP宏
- Message Flood——MAP
- VC6使用shakewaveflash控件方法
- VC6.0常用控件使用方法
- VC6.0 应用MSCOM控件
- VC6.0找不到控件工具条
- vc6 控件布局控制器--EasySize
- vc6.0 调用ocx控件
- vc6.0 调用ocx控件
- [Tkinter 教程02] Message 控件
- VC6之MAP文件生成及格式
- VC6.0之C++STL:map
- Android判断上网方式(Wifi还是数据流量)
- 学习笔记:OC的protocol协议及代理设计模式
- Android 发送短信
- nasm汇编一些需要注意的地方
- java swing几种常用容器简单实现
- vc6 控件 message map
- iPhone应用开发中使用宏定义判断是虚拟机还是设备
- jquery插件——滑动条(2)
- SQL关键字查询顺序
- 深入理解JVM性能调优
- 【蓝桥杯训练】 历届试题 蚂蚁感冒
- 正则表达式–零宽断言详解
- Linux常见目录详解图
- innodb_flush_method理解