1、 VC 实现多窗口用 combox 控件的下拉单选择不同的数值实现不同的窗口数,对 combox 加一个消息映射函数,选不同的值没有调用消息映射函数,没起作用,找问题很长时间没解决,后来发现建消息响应函数时选错触发事件的方式选成 CBN_EDITCHANGE, 应该选 CBN_SELCHANGE 。对于 CBN_SELCHANGE ,我现在的理解是用鼠标点击下拉框就会触发此消息,而对于 Dropdown 的 ComboBox ,改变框中的文字则不触发此消息。
ON_CBN_EDITCHANGE
在 text 改变了,显示出来之后发生,
( 如果是 CBS_DROPDOWNLIST 样式,则不发生 )
ON_CBN_EDITUPDATE
在 text 改变了,显示出来之前发生,
( 如果是 CBS_DROPDOWNLIST 样式,则不发生 )
也就是 ON_CBN_EDITCHANGE 在 ON_CBN_EDITUPDATE 之后发生
ON_CBN_SELCHANGE
在下拉选中的 text 改变了就发生,可以用 GetLBText 来获取 text, 而不是 GetWindowText。
<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:1330668733; mso-list-type:hybrid; mso-list-template-ids:-573114440 1336195068 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-text:%1、; mso-level-tab-stop:18.0pt; mso-level-number-position:left; margin-left:18.0pt; text-indent:-18.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->
2、 动态显示时间
在DIALOG 类里添加WM_TIMER 消息映射得到映射函数OnTimer (),在OnTimer 里添加代码
CTime nowtime = CTime::GetCurrentTime();
CString m_strNowTime;
// m_strNowTime = _T(" 当前时间")+nowtime.Format(_T("%Y-%m-%d %H:%M:%S"));
m_strNowTime = nowtime.Format(_T("%Y-%m-%d %H:%M:%S"));
CStatic *stic = (CStatic *)GetDlgItem(IDC_STATIC_NOWTIME);
// stic->SetWindowText(m_strNowTime);
//CEdit *stic = (CEdit *)GetDlgItem(IDC_STATIC_NOWTIME);
stic->SetWindowText(m_strNowTime);
UpdateData(FALSE);
CDialog::OnTimer(nIDEvent);
CDialog::OnTimer(nIDEvent);
在OnInitDialog ()里添加
SetTimer(0,1000,NULL);// 一秒钟
这样就可以动态显示系统时间了。
其中 IDC_STATIC_NOWTIME 是静态编辑框的ID 就是要显示时间的控件ID 。