今天遇到的combox问题和动态显示时间问题

 

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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值