Windows Mobile下快速截圖的一種方法

2021-09-05 23:30:51 字數 1917 閱讀 2491

wince下截圖的方法有很多種,這裡介紹一種利用gapi實現的方法。gapi是game api的縮寫,它提供了一系列函式,可以直接對螢幕緩衝區進行讀/寫訪問。雖然現在逐漸被directx mobile取代,但自從2023年首次應用在ppc上後,幾乎所有的移動裝置上都能看見它。gapi主要應用於遊戲開發,但也不僅限於此。下面就介紹一種在wm下如何利用gapi快速擷取螢幕的方法。

1struct

bmi;

5byte 

*plcdbuffer 

=null;

6bitmapfileheader bmfhdr;

7handle hfile;

8dword dwwritten;

9dword dwframebuffersize;

1011

gxopendisplay(null, null);

12g_displayproperties 

=gxgetdisplayproperties();

13plcdbuffer 

=(pbyte)gxbegindraw();

14dwframebuffersize 

=g_displayproperties.cxwidth

*g_displayproperties.cyheight

*(g_displayproperties.cbpp

>>3);

1516

zeromemory(

&bmi, 

sizeof

(bmi));

17bmi.bmih.bisize 

=sizeof

(bitmapinfoheader);

18bmi.bmih.biwidth 

=g_displayproperties.cxwidth;

19bmi.bmih.biheight =-

g_displayproperties.cyheight;

20bmi.bmih.biplanes =1

;21bmi.bmih.bibitcount 

=(word)g_displayproperties.cbpp;

22bmi.bmih.bicompression 

=bi_bitfields;23*

(dword *)(

&bmi.rgq[

0]) 

=0xf800;24

*(dword *)(

&bmi.rgq[

1]) 

=0x07e0;25

*(dword *)(

&bmi.rgq[

2]) 

=0x001f;26

27zeromemory(

&bmfhdr, 

sizeof

(bitmapfileheader));

28bmfhdr.bftype 

=0x4d42;29

bmfhdr.bfoffbits 

=sizeof

(bitmapfileheader) 

+sizeof

(bitmapinfoheader) 

+sizeof

(dword)*3

;30bmfhdr.bfsize 

=bmfhdr.bfoffbits 

+dwframebuffersize;

3132

hfile 

=createfile(_t(

"\\1.bmp

"), generic_write, 

0, null, create_always,null, null);

33if

(invalid_handle_value 

!=hfile)

3440

41gxenddraw();

42gxclosedisplay();

Windows Mobile下建立cmwap接入點

程式中如果要使用http或socket連線伺服器,需要先連線網路。connmgrestablishconnectionsync函式中的connmgr connectioninfo引數,不論採用iid destnetwap還是iid destnetinternet,似乎都要依賴於手機上的接入點設定。都...

Windows Mobile下使用ZLIB壓縮

前言 在當前手機應用中,可能壓縮技術不太引起重視,但是我們可以注意到一點,當手機與伺服器進行通訊的時候,速度與穩定性是非常重要,在這一環節中,我們如果把原檔案 或者原內容 直接傳送到伺服器,不僅耗費不少流量 在當前流量費不便宜的情況下,這種情況能避免就盡量避免 而且傳輸的速度慢,消耗的時間長,也有可...

Windows mobile下記憶體洩露檢測

crtdbg.h標頭檔案 如下 crtdbg.cpp 如下 然後在程式的main函式裡新增 crtsetdbgflag on 其實這是乙個 define crtsetdbgflag ignore garbagecollector gb 這樣的定義 在程式退出的時候會呼叫garbagecollecto...