MFC框架中消失的WinMain

2021-06-18 17:38:37 字數 455 閱讀 1275

似乎微軟就是不想讓人清楚、明白的了解mfc框架將winmain()封裝的過程。微軟在mfc中是這樣隱藏呼叫winmain()的:

1.在tchar.h檔案中定義了乙個巨集:

#define _twinmain winmain

這樣mfc源**在編譯的時候,_twinmain就會被替換為winmain(),這樣作業系統就可以呼叫了。

_twinmain(hinstance hinstance, hinstance hprevinstance,

lptstr lpcmdline, int ncmdshow)

看見了嗎?裡面呼叫了afxwinmain(),也就說mfc把對winmain()的呼叫轉化為對afxwinmain()的呼叫,這更加說明,即使在mfc中,也沒有什麼其它神奇的方法能夠跳過或換掉對winmain()的呼叫。

3.在winmain.cpp檔案中,實現了afxwinmain()。

MFC框架程式中OnIdle的介紹

先看下msdn對onidle 介紹 mfc預設處理 如果忘掉了的話,你會發現一些mfc的ui會出現問題,比如選單上的選擇狀態無法更新等問題。再下面加上你自已的處理函式即可 yourmethod return true 需要更多次的執行。對於mfc程式來講,很多是採用mfc的文件檢視類的框架。比如如果...

關於MFC框架程式中CWinApp OnIdle

lcount 該引數是乙個計數值,當應用程式的訊息隊列為空,onidle函式被呼叫時,該計數值就增加1。每當一條新訊息被處理時,該計數值就被復位為0。你可以使用lcount引數來確定應用程式不處理訊息時空閒時間的相對長度。說明 如果要執行空閒時處理,則過載這個成員函式。當應用程式的訊息隊列為空時,o...

MFC框架程式中全屏顯示特性的實現

大家知道,在mfc框架中並沒有提供現成的類或者函式來實現全屏顯示特性,至少我到目前為止是沒有發現。但是要實現這個特性也並不難。其基本思路是調整主視窗的大小和位置,使檢視的顯示充滿螢幕。它需要以螢幕左上角為原點,處理x,y方向上的負座標。本文擬用 使用gdi 進行影象處理 一文中的例子 作為基礎,實現...