3 回答

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

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

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