WM SDK 學習篇 一

2021-05-09 16:26:58 字數 3487 閱讀 3046

以下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...