1.PostMessage有时可以有时点不上,句柄hChild可以获取到,就是有时看起来好像类似TAB键选到了,但是没点下去的样子?
Sleep(2000);
::PostMessage(hChild,WM_LBUTTONDOWN,0,0x00060005);
Sleep(300);
::PostMessage(hChild,WM_LBUTTONUP,0,0x00060005);
2. IDC_COMBO控件用OnSelchange消息的时候
void CMy1Dlg::OnSelchangeComboJiaoben() 
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_COMBO_JIAOBEN,strJB);
dflag = false;
sitel = 0;
m_listctrl.DeleteAllItems();
//AfxMessageBox(strJB);
    while(dflag != true)
{
ReadData();  
//处理你要插入的数据,把数据插入到ListCtrl的最后一行
int nCount = m_listctrl.GetItemCount();
m_listctrl.InsertItem(nCount,Tmp4);
m_listctrl.SetItemText(nCount,1,Tmp1);
m_listctrl.SetItemText(nCount,2,Tmp2);
}
UpdateData(true);
}
要组合框中要选第二次的时候,第一次的选择才会在IDC_LIST里显示!

解决方案 »

  1.   

    PostMessage系统把消息扔到关联此实例句柄的线程消息队列,然后即刻返回,相当于一种异步操作。
    正常情况下所以消息都会一一被消息处理函数接收并处理,但也有例外,比如在线程繁忙或者出现异常,某些消息是没有放进消息队列(没有例子考证,根据经验而谈),相当于被丢掉。但这种情况较少,视每个人的代码差异而别。
      

  2.   

    楼上,代码差异?线程繁忙或者出现异常?那该点击的时候出现类似TAB键选中的效果,那不是其实已经发送过去了吗?
      

  3.   

    代码差异主要是说个人的代码需求不同,比如我有时候需要频繁地PostMessage
    有时候会让我在调试时不知道为什么PostMessage没有处理原本想要的消息,个人暂时归类为线程繁忙或者出现某种异常,我也说了,无从考证。
    你的情况应该不属于我说的范畴之内。其实你发送按下消息就好吧。
      

  4.   

    现在又发现一个问题,我在XP系统自带的计算器上做POSTMESSAGE 的时候发现,在移动鼠标,POSTMESSAGE就没反应,不动鼠标,POSTMESSAGE 就可以正常点击,这又是为什么呢。POSTMESSAGE不是后台操作的吗?