3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
#defing WM_MYMSG WM_USER+100
::PoseMessage(窗口句柄,WM_MYMSG, ……)
::SendMessage(窗口句柄,WM_MYMSG, ……)
也可以在主窗口中/父窗口中開啟一個(gè)定時(shí)器和一個(gè)消息List
定時(shí)器去讀取消息List并調(diào)用對(duì)應(yīng)函數(shù),并從消息List中移除已經(jīng)處理了的消息
子線程負(fù)責(zé)把消息添加到消息List就可以了
添加和刪除消息時(shí),互斥一下,鎖一下消息List,保證同一時(shí)刻,只有一個(gè)線程操作

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
一種情況是加在OnInitDialog或者OnShowWindow里面,效果就是對(duì)話框顯示出來的時(shí)候AddString()動(dòng)作已經(jīng)完成了。
另一種情況如果想在對(duì)話框顯示出來以后延遲一定時(shí)間(不知道我有沒有理解對(duì))再添加文本,那就要略微復(fù)雜一點(diǎn)了,最簡(jiǎn)單的方法是用定時(shí)器,在OnInitDialog或者OnShowWindow里面SetTimer( 1 , 200 , NULL );
然后給對(duì)話框添加OnTimer消息,
OnTimer( UINT nIdEvent )
{
if(nIdEvent ==1 )
{
AddString()
KillTimer( 1 );
}
}
這樣就實(shí)現(xiàn)了顯示對(duì)話框以后再等200毫秒再添加了一行文本

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
刪除當(dāng)前消息響應(yīng)函數(shù)(View類的),重新在主框架窗口MainFrame建立消息響應(yīng)函數(shù)。
新的響應(yīng)函數(shù)中,通過以下幾個(gè)函數(shù)獲取MyView類指針,并畫線。
GetActiveDocument
GetFirstViewPosition
GetNextView
添加回答
舉報(bào)