一
:1:
使用定義二進位制的值來定義相關的意義
如dword w = cs_hredraw | cs_vredraw
這樣就可以通過「或」運算來組合,同時要是不需要某個屬性可以通過 取反結合「與」
運算來實現dword w = cs_hredraw | cs_vredraw
dword h = w & ~cs_verdraw
2: loadicon(), loadcusor(),
如果想用標準的icon 或cusor 則第乙個引數為null
3:dc (裝置上下文)是為了解決不同平台驅動裝置而抽象的更高一層。 4
:messagebox()返回值 5
:如果if()判斷條件又常量時應該把它放在==的前面
如:if(4 == x)由於常量不能被賦值或改變所以可以使程式更健壯。 6
destrorywindow
()只是銷毀視窗並傳送wm_quit訊息但程式任再執行
postquitmessage
()是結束整個程式 7
:getmessage()
獲得wm_quit 返回0
獲得非wm_quit 返回非0
8: 全域性物件再執行winmain()函式之前就分配記憶體 9
:一般情況下this 指標是指向子類的 10
:cdocument 主要處理的是資料本省
cview
主要處理的是資料的顯示和修改 11
:mfc 的視窗中含有hwnd 成員,但他們的生命週期不一樣 12
:cview 類中可以響應訊息但cmainfram則不可,因為cview 總在 視窗的前面
13 引用和指標的區別
(1)引用 初始化
int a = 10
int c = 11
int& b = a (
必須再定義是就初始化int& b;b=a是錯誤的)
b = c
(只是把c的值賦給b 但是b任然是a 的引用)
二 :mfc 的訊息對映 1
: 一般情況下cview 和相關視窗關聯(cview物件的指標與該視窗控制代碼一一對應從而構成了c++對應表) 2
:視窗獲得訊息----》查詢c++對應表(獲得物件指標)----》把物件指標傳給程式框架視窗類基類-》呼叫---》winpro函式(是個虛函式由子類實現) 三:
1:若建立的dc 與 客戶區關聯則只能在客戶區中繪製
若。。。。。。框架視窗。。。。。整個框架(包括選單)。。。
2:構造gdi物件―――》選入dc中(selectobject()),在繪製後一般把先前選的gdi物件選入dc以便恢復該物件的先前狀態
cpen pen;
cpen* poldpen;
poledpen = pdc->selectobject(&pen);
。。。。。繪製。。。。。
pdc->selectobject(poldpen);
3:裝置描述表預設是白色畫刷 4
:靜態成員變數或函式,在類載入時就分配空間可以通過類名::成員函式/成員變數來訪問,但非靜態函式或變數只屬於特定的物件,必須產生物件後才能訪問,同時,靜態成員函式中不能呼叫非靜態成員,只能訪問靜態成員。 5
:記憶體模型在函式呼叫中的應用 6
:如果希望輸入的圖形或文字始終能顯示,就再wm_paint對應處理函式ondraw()中處理。
VC 深入詳解筆記 引用
int a 5 int b a 用 表示申明乙個引用。引用必須在申明時進行初始化考慮下面 int a 5 int b a int c 3 b c 此處並不是將b變成c的引用,而是給b賦值,此時b和a的值都變成了3 引用只是乙個別名,是乙個變數或物件的替換名稱。引用的位址沒有任何意義,是所引用的變數或...
《VC 深入詳解》筆記(一)
1,sendmessage 將訊息直接傳送給視窗,並呼叫視窗的視窗過程進行處理。等訊息處理完後,函式才返回 它傳送的訊息為不進隊訊息 postmessage 則是將訊息方到訊息佇列中就 返回了。postthreadmessage 函式用於給執行緒傳送訊息。2 下面這段 會出問題,當關閉程式後,會出現...
VC 深入詳解之C 筆記
一 類的繼承 假設有乙個動物類,他們都有呼吸,睡覺,吃飯 繼承起來就是這樣子的 class animal animal void eat void sleep void breathe 下面定義一條魚 class animal public animal fish 這樣魚就繼承了 animal 的e...