新聞中心
MFC畫線與畫點函數(shù)?
動態(tài)畫線,畫矩形,畫橢圓的本質(zhì)就是在于消隱問題的解決以及對Windows消息循環(huán)機制的理解,消隱問題:因為MFC中有一個函數(shù)SetROP2,通過將該函數(shù)的參數(shù)設置為R2—NOT(當前繪制的像素值設為屏幕像素值的反色,這里面的“屏幕”二字是指你所繪制的圖形所占據(jù)的那一部分屏幕區(qū)域,即直線所占的屏幕區(qū)域就是直線所在的那一段線的區(qū)域),利用這一點通過在同一區(qū)域重復畫兩次便可以將該區(qū)域的形狀消隱。

而Windows消息循環(huán)機制更好的體現(xiàn)于MouseMove消息響應中,因為要實現(xiàn)動態(tài)畫線、畫矩形這就體現(xiàn)在鼠標在繪圖區(qū)的移動上,鼠標在繪圖區(qū)移動時,產(chǎn)生動態(tài)的效果,也就是說在mouse 移動的過程中始終在畫線、畫矩形,這就要求在MouseMove消息響應中有畫線、畫矩形的相應函數(shù)的調(diào)用,但正是因為mouse移動的過程中畫了很多的線、矩形,所以我們就要在mouse移動的過程中將之前畫出的線、矩形消隱掉,才能保證實現(xiàn)了自己所要實現(xiàn)的功能——動態(tài)畫線、畫矩形,但又沒有產(chǎn)生多余的線和矩形。
消隱的問題和動態(tài)畫圖的問題關鍵在于MouseMove消息響應中的函數(shù)調(diào)用的順序:
1.首先將上次所畫的圖形消隱掉
2.畫出臨時的圖形
3.消息循環(huán)的機制:循環(huán)執(zhí)行上述代碼(這是Windows循環(huán)的機制,不需要自己代碼實現(xiàn))
在最后的LButtonUp消息響應中,需要將上面的MouseMove消息響應中循環(huán)的最后一次中最后所畫的臨時圖形消隱掉,之后根據(jù)LButtonUp消息響應中point參數(shù)畫出最終的圖形。綜上可知:MouseMove中的代碼和LButtonUp中消隱臨時圖形的代碼所要實現(xiàn)的功能就是動態(tài)這一過程,而圖形的最終繪制還在與LButtonUp消息響應及其point參數(shù)。
如果沒有窗口,我可以給一個線程創(chuàng)建一個消息循環(huán)嗎?
你說的是windows平臺么?如果是,那么: 可以,簡單說 1、使用任何消息函數(shù)一次,這個目的是將當前線程內(nèi)部轉換成gui線程,gui子系統(tǒng)會初始化相關數(shù)據(jù)并創(chuàng)建消息隊列,此后,其他線程可post消息到此線程。
常常使用PeekMessage一次達到這個效果 2、在任何你想獲得消息的地方調(diào)用獲取消息的函數(shù)(如GetMessage),在獲得消息后,直接查看MSG結構體中各成員,并作相應處理 3、其他線程可使用PostThreadMessage給那個線程發(fā)消息,目標為線程id 其實消息隊列雖然作為gui的一部分,但在windows平臺常常被用作與工作線程通訊win10查看電腦通電次數(shù)?
1、打開win10系統(tǒng)電腦,點擊開始,選擇所有應用,點擊Windows系統(tǒng)。
2、右鍵以管理員運行“命令提示符”。輸入代碼【Powercfg /batteryreport 】
3、回車,就會看到報告保存的路徑了。復制出報告并打開。
4、第四項是電池最近被使用以及被激活的次數(shù)和狀態(tài)。
循環(huán)次數(shù):該數(shù)值表示整個電池壽命中全部和部分放電周期的總數(shù)。將電池放電至 50% 的電量兩次計為一個放電周期,并將該次放電周期計入循環(huán)次數(shù)。電池被視為壽命耗盡之前,其循環(huán)次數(shù)是有限的。MacBook Pro 或MacBook Air 的內(nèi)置電池在電池容量降至初始容量的80% 以前,可以實現(xiàn)多達1000次完全充電和放電循環(huán)。關于電池循環(huán):一次充電循環(huán)意味著用完電池的全部電量,但不一定意味著進行一次充電。
例如,某氦叮份顧莓該逢雙撫晶天您可能使用筆記本電腦一個小時或更長時間,用完一半電量后即重新充滿。
如果第二天仍是如此,則可計為一次(而不是兩次)充電循環(huán),因此,完成一次充電循環(huán)可能需要幾天時間。
到此,以上就是小編對于windows消息循環(huán)機制的問題就介紹到這了,希望這3點解答對大家有用。
當前標題:MFC畫線與畫點函數(shù)?windows消息循環(huán)機制
文章起源:http://m.fisionsoft.com.cn/article/cdgeodd.html


咨詢
建站咨詢
