VC 技術內幕筆記

2021-04-13 10:50:03 字數 1385 閱讀 7300

3。crect有乙個成員函式ptinrect用來測試乙個點是否落在某個矩形內。只適用於裝置座標系。crgn的ptinregion。

4。mm_twips對映模式常用於印表機。乙個twip單位等於1/20磅。1磅等於1/72英吋。水晶報表中的pagemargins單位就是twip。

5。cscrollview::onpreparedc(),該函式根據傳給setscrollsizes的第乙個引數來設定對映模式,並根據當前滾動位置來設定視窗的原點。

6。getdlgitem()返回cwnd指標因為控制項物件並沒有呼叫建構函式,這些指標是臨時的,不能儲存供以後使用。如果需要把cwnd指標轉化成乙個控制項id,可以使用cwnd::getdlgctrlid()函式。

7。定製通用對話方塊,如開啟檔案對話方塊,從通用對話方塊類進行派生。詳見第四版7.3節。

8。多執行緒中使用全域性變數會有問題,除了加volatile標誌以外,還可以使用interlockedincrement函式。

9。如果蔡單項沒有相應的命令訊息控制函式,應用程式框架就會禁用該選單項,由cframewnd的資料成員m_bautomenuenable決定。

10。begin_message_map(cpaintdlg, cdialog)

on_commandex(idm_zoom_1,onzoom)

on_commandex(idm_zoom_2,onzoom) 

end_message_map()

onzoom(uint nid)

if(nid == idm_zoom_1)

else

其他巨集還有on_command_range,on_command_ex_range,on_update_command_ui_range

11。如果乙個exe需要乙個資源,搜尋順序為,首先是exe檔案,然後是擴充套件dll,再是mfc dll,如果擴充套件dll裝入乙個資源,則搜尋順序為,首先是擴充套件dll,然後是mfc dll,再是exe,改變搜尋序列可以通過:

hinstance hinstresourceclient=afxgetresourcehandle();

//use dll's instance handle

afxsetresourcehandle(::getmodulehandle("mydllname.dll");

cstring strres;

strres.loadstring(ids_mystring);

//restore client's instance handle

afxsetresourcehandle(hinstresourceclient);

不能用afxgetinstancehandle來代替(::getmodulehandle,在乙個擴充套件dll裡,afxgetinstancehandle返回的是exe的例項控制代碼,而不是dll的。

vc技術內幕筆記

1,當使用者改變了視窗尺寸,或者當視窗恢復了先前被遮蓋的部分 自動呼叫ondraw 或者當應用程式改變了視窗資料時,視窗都需要被重新繪製 用invalidate或invalidaterect 2.按照慣例,mfc庫中非靜態資料成員名字以m打頭。3.乙個csize物件是兩個cpoint物件的差,而且我...

VC技術內幕總結

vc技術內幕總結 對技術內幕的學習,主要是集中在前三部分和後面com,odbc的學習,感覺這本書還是寫得不錯的,分析的也比較清晰,例子不錯,有很多細節的小技巧值得我們推敲,結合深入淺出mfc學習,相信會對mfc會有很多,如果非要說缺點的話,就是太厚了,呵呵 由於這裡只是總結,並沒有對在學習過程中的細...

Mysql技術內幕筆記

mysql由以下幾個部分組成 連線池元件 管理服務和工具元件 sql介面組價 查詢分析器組價 優化器組價 快取 cache 組價 外掛程式式儲存引擎 物理檔案。可以看出,mysql資料庫區別於其他資料庫的最重要的乙個特點就是其外掛程式式的表儲存引擎。儲存引擎是基於表的,而不是資料庫。是底層物理結構的...