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里显示!
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里显示!
正常情况下所以消息都会一一被消息处理函数接收并处理,但也有例外,比如在线程繁忙或者出现异常,某些消息是没有放进消息队列(没有例子考证,根据经验而谈),相当于被丢掉。但这种情况较少,视每个人的代码差异而别。
有时候会让我在调试时不知道为什么PostMessage没有处理原本想要的消息,个人暂时归类为线程繁忙或者出现某种异常,我也说了,无从考证。
你的情况应该不属于我说的范畴之内。其实你发送按下消息就好吧。