freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vc技術(shù)內(nèi)幕第四版讀書筆記(編輯修改稿)

2025-10-10 13:00 本頁面
 

【文章內(nèi)容簡介】 用我們操心。 編譯在 VC++中有兩種模式,一種是 Release Build 另一種是 Debug Build。它們之 間的區(qū)別在于, Release Build不對源代碼進行調(diào)試,不考慮 MFC的診斷宏,使用的是 MFC Release庫,編譯十對應(yīng)用程序的速度進行優(yōu)化,而 Debug Build 則正好相反,它允許對源代碼進行調(diào)試,可以定義和使用 MFC的診斷宏,采用 MFC Debug 庫,對速度沒有優(yōu)化。所以我們應(yīng)該在Debug 模式下開發(fā)應(yīng)用程序,然后在 Release模式下發(fā)布應(yīng)用程序。在我們的工程文件夾下會有一個 Debug 文件夾和一個 Release文件夾分別存放輸出文件和中間文件。 診斷宏是我們編譯程序時檢測程序狀態(tài)的有利工 具,例如上兩篇用到的 TRACE 宏,可以在Debug 窗口獲得你需要的診斷信息,而不用設(shè)置對話框之類的方法,在發(fā)布時 Release會自動濾掉此信息。 為了更好的管理項目,最好理解系統(tǒng)是如何處理預(yù)編譯頭文件的。 VC++有兩個預(yù)編譯系統(tǒng):自動的和手工的。這一部分筆者就不多說了,建議讀者好好看看。 Top of Page 第五天 基本事件處理 用戶在視窗中的任何一個操作,都會引起 Windows 自動發(fā)送一個消息給該視窗。我們以一個例子來說明:比如我們在視窗中按下鼠標左鍵, Windows 就會發(fā)送 ON_LBUTTONDOWN消息給視窗,那么在視窗類中就必須包含下面的成員函數(shù): Void CmyView::OnLButtonDown(UINT nFlags, Cpoint point) { //event processing code here } 在類頭文件中也要包含相應(yīng)的函數(shù)聲明: afx_msg void OnLButtonDown(UINT nFlags, Cpoint point) 在代碼文件中還要有一個消息映射宏,用于將 OnLButtonDown 函數(shù)和應(yīng)用程序框架聯(lián)系在一起: BEGIN_MESSAGE_MAP(CmyView, CView) ON_WM_LBUTTONDOWN() // other message map entries END_MESSAGE_MAP 最后,在類庫頭文件中包含如下語句: DECLARE_MESSAGE_MAP() 以上這些步驟,我們都可以借助于 ClassWizard來完成。這就是消息映射的過程。 MFC庫對 140 種 windows消息直接提供了消息控制函數(shù),并且我們還可以自己定義自己的消息,下面列出的五種消息是我們應(yīng)該特別注意的( MSDN 上有更詳細的內(nèi)容)。 WM_CREATE 該消息是 Windows發(fā)給視圖的第一個消息。當(dāng)應(yīng)用程序框架調(diào)用 create函數(shù)時該消息便會被發(fā)送,此時窗口還未創(chuàng)建完成,不可見,因此在消息控制函數(shù) OnCreate內(nèi)不能調(diào)用那些依賴窗口處于完全激 活狀態(tài)的 Windows 函數(shù)。如果需要可以在重載的 OnInitialUpdate 函數(shù)內(nèi)調(diào)用。不過注意在 SDI 應(yīng)用程序 OnInitialUpdate 函數(shù)可能被多次調(diào)用。 WM_CLOSE 當(dāng)用戶關(guān)閉窗口時,系統(tǒng)會發(fā)送 WM_CLOSE 消息。如果派生類重新定義了 OnClose函數(shù),就可以完全控制關(guān)閉過程,可以將提醒用戶存盤之類的工作放在這里完成。我們可以通過重載CDocument::SaveModified虛函數(shù)達到相同的目的。 WM_QUERYENDSESSION 從字面的意思看就可以看出,當(dāng)用戶退出 Windows 時,或者調(diào)用了 ExitWindows 函數(shù)時。 Windows 會發(fā)送 WM_QUERYENDSESSION 消息給所有的正在運行的應(yīng)用程序,由OnQueryEndSession 消息映射函數(shù)對消息進行處理。在它之后應(yīng)該是 WM_ENDSESSION 消息。 WM_DESTROY 在 Windows 發(fā)送 WM_CLOSE消息后,緊接著會發(fā)送 WM_DESTROY消息,雖然窗口已經(jīng) Close但實際上并沒有完全清除,在任務(wù)管理器中還可以看見應(yīng)用程序的進程(我想很多木馬或病毒都是無窗口的程序,它們的做法是生成了已經(jīng)活 動狀態(tài)的窗口但不顯示出來),利用這個消息控制函數(shù)便可以對依賴于當(dāng)前窗口存在的東西做清除工作,不過一定要注意,應(yīng)該調(diào)用基類的 OnDestroy 函數(shù),而不能在用戶自己的視圖的 OnDestroy函數(shù)中終止窗口的析構(gòu)過程,終止析構(gòu)過程應(yīng)該在 OnClose函數(shù)中。 WM_NCDESTROY 當(dāng)窗口被取消所發(fā)送的最后一個消息就是這個消息。我們可以在 OnNcDestroy 函數(shù)中做一些不依賴該窗口是否處于活動狀態(tài)的最后的處理工作,(我實在想不出還需要做什么?那位朋友能給個例子),注意一定要調(diào)用基類中的 OnNcDestroy 函數(shù)。 MFC 庫中非靜態(tài)數(shù)據(jù)成員的名字以 m_為前綴。 一個窗口具有一個矩形的 客戶區(qū)域 , CWnd中的 GetClient成員函數(shù)可以給出客戶區(qū)域的大小,只允許在客戶區(qū)域內(nèi)繪圖。 標準的 windows 應(yīng)用程序會首先登記一個窗口類,這不同于 C++類,同時在處理過程中,還需要對每個類指定窗口過程。每次應(yīng)用程序調(diào)用 CreateWindow 建立一個窗口時,都要指定一個窗口類作為參數(shù),這樣就把新建立的窗口和窗口過程函數(shù)連接起來了,每次 windows給窗口發(fā)送消息的時候,這個函數(shù)就會被調(diào)用,以檢查用參數(shù)傳 進來的消息碼。 Top of Page 第六天 映射模式 所謂映射模式,說白了就是坐標系。在默認情況下, Windows所繪圖像單位為像素,這是因為設(shè)備環(huán)境用了默認的映射模式 MM_TEXT,所以如下語句所繪圖形為長和寬都為 200像素的方塊: pDCRectangle(CRect(0,0,200,200))。 那么我們要繪制一個長和寬都是 4厘米的方塊該怎么做呢?這就必須改變設(shè)備環(huán)境的默認映射模式為 MM_HIMETRIC,它的圖像單位為 1/100mm,而不是像素了。它的 y軸方向和MM_TEXT的相反,它的向下為遞減的,因此用如下語句就可以繪出 44cm 的方塊了: pDCSetMapMode( MM_HIMETRIC)。 pDCRectangle(CRect(0,0,4000,4000))。 下面我 們再來了解一下 Windows 都提供了哪些映射模式。 MM_TEXT映射模式 這種模式下,繪圖單位為像素, x軸向右遞增, y軸向下遞增,我們可以用 CDC 的SetViewPortOrg 和 SetWindowOrg 函數(shù)來改變坐標原點的位置,下面的代碼就是把坐標原點設(shè)在了( 100,100)處,畫了一個 200200 像素的方塊,此時邏輯坐標點( 100,100)被映射到了設(shè)備坐標點( 0,0)處,下一篇的滾動窗口使用的就是這種變換。 Void CmyView::OnDraw( CDC *pDC ){ pDCSetMapMode(MM_TEXT)。 pDCSetWindowOrg(Cpoint(100,100))。 pDCRectangle(CRect(100,100,200,200))。 } 固定比例映射模式 Windows 提供了一組非常重要的固定比例影視模式,所有這種模式都遵循 x軸向右遞減,y軸向下遞減的規(guī)則,而且我們無法將其改變。固定比例模式之間唯一的差別就在于實際的比例因子。下表列出了影視模式和比例因子的對應(yīng)情況: 映射模式 邏輯單位 MM_LOENGLISH 英寸 MM_HIENGLISH 英寸 MM_LOMETRIC MM_HIMETRIC MM_TWIPS 1/1440 英寸 MM_TWIPS 模式常用于打印機。 可
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1