比如有一個(gè)函數(shù)test(),怎么用SendMessage觸發(fā)它啊!下面一段話是我在網(wǎng)上找到的,我遇見了同樣的問題,想試試它的方法我在線程里調(diào)用一個(gè)函數(shù)test()test里有調(diào)用對(duì)話框domadal一運(yùn)行到這個(gè)就出現(xiàn)錯(cuò)誤,程序意外終止,domodal不出現(xiàn)!test里的代碼CDlginput;if(input.DoModal()!=IDOK).................把tset改成消息響應(yīng)函數(shù)也不行.domodal窗口能出現(xiàn)點(diǎn)確定按鈕之后出錯(cuò)!在線程里怎么才能調(diào)用domodal???? ________________________________________答:這種用工作線程不好搞一樣,用界面線程,應(yīng)該可以吧 ________________________________________答:我把test函數(shù)改成消息響應(yīng)函數(shù)了用SendMessage觸發(fā)test函數(shù)試了幾次不出錯(cuò)了.不知道為啥在線程里直接調(diào)用test函數(shù)為啥出錯(cuò)我是用MFC做的,希望是能夠說(shuō)的具體一點(diǎn),初學(xué)者,沒辦法……
1 回答

蕭十郎
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
初學(xué)者經(jīng)常犯得錯(cuò)誤,就是在一個(gè)線程中調(diào)用如AfxMessageBox的對(duì)話框,這樣你的線程就死了。
在線程中,你必須向一個(gè)窗口發(fā)送一個(gè)消息,那個(gè)窗口接收到消息后,讓它去掉用DoModal之類的函數(shù)。
你可以在CreateThread,將那個(gè)窗口的 m_hWnd當(dāng)成LPVOID lpParameter,
傳遞進(jìn)去,那么在DWORD WINAPI ThreadProc( LPVOID lpParameter );的lpParameter 就是那個(gè)窗口句柄了。這樣你就可以向那個(gè)窗口SendMessage了。
- 1 回答
- 0 關(guān)注
- 307 瀏覽
添加回答
舉報(bào)
0/150
提交
取消