可選mm_anisotropic
任意( x = y )可選可選
上面這個圖我是從這個部落格轉過來的。
至於有什麼區別了,我覺得說不清楚,直接給上測試**吧
#include
lresult callback wndproc (hwnd, uint, wparam, lparam) ;
int winapi winmain (hinstance hinstance, hinstance hprevinstance,
pstr szcmdline, int icmdshow)
cw_usedefault, cw_usedefault,
cw_usedefault, cw_usedefault,
null, null, hinstance, null) ;
showwindow (hwnd, icmdshow) ;
updatewindow (hwnd) ;
while (getmessage (&msg, null, 0, 0))
return msg.wparam ;
}void show (hwnd hwnd, hdc hdc, int xtext, int ytext, int imapmode,
tchar * szmapmode)
lresult callback wndproc (hwnd hwnd, uint message, wparam wparam, lparam lparam)
return defwindowproc (hwnd, message, wparam, lparam) ;
}
我覺得上面解釋的也比較含糊,可以看上面的鏈結。但是很多函式都可以在上面看到。
再就是具體的繪製函式
setpixel(hdc,x,y,crcolor)//設定畫素點的特定顏色
getpixel(hdc,x,y)//返回指定座標位置的畫素顏色;
lineto//畫直線
polyline和polylineto//畫一條由多條首尾相連的直線構成的折線
polypolyline//畫多條折線
arc//畫橢圓弧線
polybezier和polybezierto//畫貝塞爾樣曲線
arcto和anglearc//畫橢圓弧線
polydraw//畫多條貝塞爾樣條曲線或者一條由多條首尾相連直線構成的折線
rectangle//畫矩形
ellipse//畫橢圓
roundrect//畫圓角矩形
pie//畫橢圓的一部分,使其看起來像乙個扇形
chord//畫出由弦割出的部分橢圓,形狀呈弓形
使用畫筆(支援3種預設顏色實心白色,實心黑色和沒有畫筆)
hpen hpen;
hpen=getstockobject(white_pen);
selectobejct(hdc,hpen);//selectobject(hdc,getstockobject(white_pen))把畫筆顏色選入裝置上下文
建立畫筆(不滿足那些預設畫筆)
hpen=createpen(ipenstyle,iwidth,crcolor);//ipenstyle決定是實線,虛線或者點線 iwidth是畫筆寬度 crcolor是決定顏色
填充空隙setbkcolor(hdc,crcolor);//改變windows填充空隙的背景顏色
由乙個方法可以阻止填充顏色,就是將背景設定為透明
setbkmode(hdc,transparent);
對於畫刷的操作就是hpen改為hbrush。
polygon填充有乙個特別的規則,就是填充的時候有些特別,不影響大概就不用考慮,哈哈。
嗯還是複習下,就是分為alternate和windig模式。
setpolyfillmode(hdc,imode);//imode就是模式
alternate模式,是否被填充,設想從區域內乙個點畫乙個無窮遠的射線,奇數填充,偶數不填。
windig模式,要確定乙個區域十分應該被填充,設想從區域內的乙個點畫一條伸向無窮遠的射線,奇數填充,偶數要考慮邊框方向,不同方向的邊框線的數目相等,不填充,否則就填充。
好啦好啦,來複習鍵盤和滑鼠啦啦啦啦。
鍵盤肯定有鍵盤訊息啦,接受到這個鍵盤事件的視窗稱為有輸入焦點的視窗
鍵盤訊息分為擊鍵和字元兩種。//擊鍵就是按下與釋放,或者說一些組合鍵產生的訊息
非系統擊鍵 wm_keydown wm_keyup(按下與釋放)
系統擊鍵 wm_syskeydown wm_syskeyup
wparam引數包含了虛擬鍵**,lparam引數包含了幫助理解擊鍵的其他有用訊息
通過getkeystate();//可以知道釋放有轉義鍵
可以用senmessage(hwnd,message,wparam,lparam);//他攜帶了傳給視窗過程的引數
如果我要寫乙個個性化的txt程式了,如何捕捉字元了
這個時候就出來了字元訊息
非系統字元 wm_char
wm_deadchar
系統字元 wm_syschar wm_sysdeadchar
getgetkeynametext(long lparam,lptstr lpstring,int size);
//lparam指定被處理的鍵盤訊息(例如wm_keydown)的第二個引數
//lpstring:指向接受鍵名的緩衝區的指標。
//nsize:指定鍵名的最大字元長度,包括空結束符。(該引數值應與lpstring引數指定的緩衝區的大小相等)。
還有一些插入符號函式
createcaret//建立和視窗關聯的插入符號
setcarepos//設定視窗內的插入符號的位置
showcaret//顯示插入符號
hidecaret//隱藏插入符號
destroycaret//銷毀插入符號
嗯繼續滑鼠
客戶區滑鼠訊息
左鍵wm_lbuttondown
wm_lbuttonup
wm_lbuttondblclk
中鍵wm_mbuttondown
wm_mbuttonup
wm_mbuttondblclk
右鍵wm_rbuttondown
wm_rbuttonup
wm_rbuttondblclk
移動會產生wm_mousemove來獲取然後使用lowrod(lparam)和hiword(lparam)來得到滑鼠地點
雙擊可以再wndclass.style=cs_dblclks就會改變一些訊息
wm_lbuttondown
wm_lbuttondown
wm_lbuttonup
wm_lbuttonup
wm_lbuttondown
wm_lbuttondblclk
wm_lbuttonup
wm_lbuttonup
非客戶的訊息幾乎與其全部對應
左鍵wm_nclbuttondown
wm_nclbuttonup
wm_nclbuttondblclk
中鍵wm_ncmbuttondown
wm_ncmbuttonup
wm_ncmbuttondblclk
右鍵wm_ncrbuttondown
wm_ncrbuttonup
wm_ncrbuttondblclk
其他照舊***
還有乙個showcursor(true);//有乙個計數就是當計數非0才會顯示滑鼠,預設初始化為0,。引數為true為+1引數為false-1
getcursorpos(&pt)//可以獲取滑鼠位置
setcursorpos(x,y);//設定滑鼠位置
當你從客戶區或者非客戶區到視窗外的時候,你怎麼判斷訊息了
這裡要用捕獲滑鼠函式了
setcapture(hwnd);//捕獲到滑鼠
releasecapture()//釋放滑鼠
嗯,我會
windows程式設計之C 的複習!
列舉型別的宣告形式 enum 列舉型別名 值得注意的是 列舉元素按常量處理,不能賦值 列舉元素具有預設的值,依次為 0,1,2,3,例如 enum gameresult 而 enum gameresult omit cancel 則是定義了乙個列舉型的變數omit並給其賦值為cancel 例如以下 ...
Windows程式設計筆記2
1.關於hdc hdc hdc hdc getdc hwnd for int i 0 i 20 i releasedc hwnd,hdc getdc 與releasedc 一起使用。不能用於beginpain hdc beginpaint hwnd,ps textout hdc,0,0,paintd...
網路程式設計複習 Exp2
1.工程檔案需鏈結套接字動態鏈結庫,我用的是ws2 32.dll 也可以靜態鏈結,但應該增加了編譯代價。2.源 server general main.cpp include include void main void client general main.cpp include include...