以下hdc為當前裝置控制代碼
1.點:
建立畫筆,並設定其屬性:
hpen createpen(
int fnpenstyle, //畫筆風格
int nwidth, //
colorref crcolor //畫筆顏色
);畫筆風格可以設定為:ps_solid(實型),ps_dash(虛),ps_null(透明)
畫筆寬度:如果設定為0,則寬度為乙個畫素。
畫筆顏色:可以以一下方式獲得 rgb(0xff,0xff,0xff)//黑色
畫點:wingdiapi colorref winapi setpixel(hdc,int,int,colorref);
舉例:hpen hnewpen,holdpen;
hnewpen = createpen(ps_solid,1,rgb(255,0,0));
holdpen = (hpen)selectobject(hdc,hnewpen);//儲存前一次的畫筆狀態
setpixel(hdc,100,100,rgb(255,0,0));
selectobject(hdc,holdpen);//恢復前一次的畫筆狀態
2.線首先設定畫筆風格,同畫點
畫線函式:
movetoex(hdc,int,int,lppoint);lineto(hdc,int,int);或者
polyline(__in hdc hdc,__in_ecount(c) const point * lppt, int c)
舉例:hpen holdpen,hnewpen;
hnewpen = createpen(ps_solid,1,rgb(255,255,0);
holdpen = (hpen)selectobject(hdc,hnewpen);
movetoex(hdc,100,100,null);
lineto(hdc,100,200);
selectobject(hdc,holdpen);
3.矩形
首先設定畫筆風格,同畫點。
畫矩形函式:
rectangle(hdc,int,int,int,int);//普通矩形
roundrect(hdc,int,int,int,int,int,int);//圓角矩形
設定畫刷:hbrush hbrush = (hbrush)getstockobject(ltgray_brush);
填充函式:fillrect(hdc,const rect *,hbrush);
舉例:rect rect= ;
hbrush hbrush = (hbrush)getstockobject(ltgray_brush);
rectangle(hdc,rect.left + 1,rect.top +1,rect.right + 1,rect.bottom +1);
fillrect(hdc,&rect,hbrush);
4.列印字串
字型屬性:
typedef struct taglogfont logfont;
舉例logfont stfont;
hfont hnewfont, holdfont;
rect rect = ;
//建立字型
memset(&stfont, 0, sizeof(stfont));
stfont.lfweight = fw_bold;
stfont.lfheight = 14;
wcscpy(stfont.lffacename,_t("todayfont"));
hnewfont = createfontindirect(&stfont);
//設定字型
holdfont = (hfont)selectobject(hdc, hnewfont);
//設定文字顏色
settextcolor(hdc, rgb(0xff, 0xff, 0xff));
//設定背景為透明
setbkmode(hdc, transparent);
//列印文字
drawtext(hdc, _t("this is a test."), -1, &rect, dt_singleline);
//恢復字型
selectobject(hdc, holdfont);
5.列印:
點陣圖的普通列印:
bitmap bitmap;
hbitmap hbitmap = (hbitmap)loadbitmap(g_hinst,makeintresource(idb_bitmap1));
hdc hdctemp = createcompatibledc(hdc);//建立臨時dc
selectobject(hdctemp, hbitmap);
getobject(hbitmap, sizeof(bitmap), &bitmap);
bitblt(hdc, 0, 0, bitmap.bmpwidth, bitmap.bmpheight, hdctemp, 0, 0, srccopy);
deletedc(hdctemp);//刪除不再使用的dc
繪製有透明色的點陣圖:
// hdc: 視窗dc
//wimageid: 資源id
//ctrans: 要過濾的顏色
// istartx,istarty: 列印起始位置
void drawtransparenticon(hdc hdc, word wimageid, colorref ctrans, int istartx, int istarty)
普通的列印:
void drawimage(hdc hdc,lpctstr lpimagepath,int x,int y)
;// normally you would only call coinitialize/couninitialize
// once per thread. this sample calls coinitialize in this
// draw function simply to illustrate that you must call
// coinitialize before calling cocreateinstance.
coinitializeex(null, coinit_multithreaded);
// create the imaging factory.
if (succeeded(cocreateinstance (clsid_imagingfactory,
null,
clsctx_inproc_server,
iid_iimagingfactory,
(void **)&pimgfactory)))
pimgfactory->release();
}couninitialize();
}
學習測試篇(一)
今天學習了一下黑盒測試和白盒測試,以及他們的優缺點,及時記錄一下,以防忘記 白盒測試是一種內部邏輯測試法,它又叫做結構測試 透明盒測試 邏輯驅動測試 基於 的測試。白盒測試是一種測試用例設計方法。盒子指的是被測得軟體,白盒盒子是可視的,你清楚盒子內部的東西是如何運作的。白盒測試包括 檢查法,靜態結構...
BGP學習篇(一)
一.bgp的基本作用 as內部使用igp來計算和發現路由,如ospf,isis,rip等 as之間使用bgp來傳遞和控制路由 bgp特徵 1 鄰居的發現與鄰居關係的建立 2 路由的獲取,優選和通告 3 提供路由環路避免機制,並能夠高效傳遞路由,維護大量的路由資訊 4 在不完全信任的as之間提供豐富的...
ZigBee學習 初級篇(一)
zigbee是一種短距離 低功耗的低速無線通訊技術,底層採用的是ieee802.15.4標準規範的 訪問層與物理層。zigbee這一名稱 於密封的八字舞。zigbee技術和rfid技術在2004年就被列為當今世界發展最快,市場前景最廣闊的十大最新技術中的兩個。zigbee協議是由zigbeealli...