VC API常用函式簡單例子大全九

2021-06-07 21:03:38 字數 4408 閱讀 4706

第八十乙個writefile根據檔案控制代碼,寫入一段資料到檔案中

#include

#include

int main()

第八十二個setfilepointer移動乙個檔案指標的位置

移動乙個檔案指標的位置有什麼用呢,作用是讀取乙個檔案裡指定位置的資料,比如我只要讀取檔案中第四個位元組到第七個位元組這一段的資料,用setfilepointer函式就可以完成。

函式定義:dword

setfilepointer(

handle hfile,//檔案控制代碼

long ldistancetomove,//移動位元組,負數表示反向移動

plong lpdistancetomovehigh,//為了支援超大檔案而存在,一般為null

dword dwmovemethod//從**開始移動,file_begin 從檔案開始處開始移動,file_current當前位置,file_end檔案末尾

);例子:假設e盤下有乙個名為a.txt的檔案,內容為"123456789",讀取該檔案第四個位元組到第七個位元組的資料

#include

#include

int main()

;dword dwsize;

handle filehandle=createfile("e:\\a.txt",generic_read,0,null,open_always,

file_attribute_normal,null);

setfilepointer(filehandle,3,null,file_begin);

readfile(filehandle,text,4,&dwsize,null);

printf("%s\n",text);

return 0;

}例子2:從檔案中第四個位元組開始寫入資料,被新資料所佔位置的資料會被覆蓋掉,依舊以上面a.txt檔案為例子

#include

#include

int main()

;dword dwsize;

handle filehandle=createfile("e:\\a.txt",generic_write,0,null,open_always,

file_attribute_normal,null);

setfilepointer(filehandle,3,null,file_begin);

writefile(filehandle,text,4,&dwsize,null);

return 0;

}則寫入後a.txt檔案裡的資料為123abcd89

如果要在檔案的末尾新增資料,就用這個語句:setfilepointer(filehandle,0,null,file_end);

第八十三個getfilesize獲取乙個檔案的大小

函式定義:dword

getfilesize(

handle hfile,//檔案控制代碼

lpdword lpfilesizehigh//一般為null

);如獲取a.txt檔案的大小:

#include

#include

int main()

第八十四個settextcolor設定視窗輸出文字顏色

第乙個引數是裝置dc,第二個引數是乙個colorref型別的顏色值,可用rgb進行轉換。

第八十五個setbkcolor設定背景顏色

引數跟settextcolor函式一樣,第乙個dc,第二個colorref

第八十六個getwindowdc獲取整個視窗裝置上下文dc

像getdc獲取的只是客戶區dc,不能對視窗標題欄,狀態列等進行操作。該函式用法跟getdc一樣,僅區域不一樣。

例子:在乙個視窗的標題欄輸出文字

#include

int main()

return 0;

}第八十七個getdesktopwindow獲取桌面視窗控制代碼

該函式沒有引數,呼叫返回桌面視窗控制代碼

例子:#include

int main()

return 0;

}第八十八個createcompatiblebitmap根據dc創造乙個相容的點陣圖

該函式需與createcompatibledc函式配合使用

函式第乙個引數是視窗dc,第二,三引數指明視窗寬高,函式返回位圖控制代碼(hbitmap)

建立乙個相容的點陣圖是什麼意思呢?就好比給hbitmap分配記憶體以及指定這位圖相關的一些資訊(跟dc相關的資訊),如位圖的寬高,資料大小,但此時資料沒有具體取值。就好比乙個字串,我已經知道字串大小了,但卻不知道字串具體是什麼:

如:char *p;

p=new char[15];//知道字串大小為15

但此時p所指向的快取區,沒有具體取值。

而用createcompatiblebitmap函式,建立的點陣圖,只是乙個空殼子。資料沒有賦值,那要怎樣給資料賦值呢?

首先得把這個位圖控制代碼選入乙個dc(該dc必須為createcompatibledc函式建立的)裡,然後再用bitblt函式具體給資料賦值就行了。

例子:實時獲取螢幕影象

為了方便,在記事本視窗輸出影象,自己就不建立視窗了(開啟"無標題.txt - 記事本")

#include

int main()

return 0;

}第八十九個getdibits從乙個相容位圖里獲取位圖資料

先來分析一下位**件資訊結構,乙個點陣圖由以下四部分組成:

位**件頭(bitmapfileheader)//佔14位元組

位圖資訊頭(bitmapinfoheader)//佔40位元組

調色盤(logpallete)//如果是真彩位圖,那該部分沒有,直接是點陣圖資料

實際位圖資料

而getdibits函式獲取的就是實際位圖資料這一部分了。

接來看一下bitmapfileheader這個結構以及它成員的意思和取值

typedef struct tagbitmapfileheader bitmapfileheader;

上面的成員,只有bfsize的取值不確定,其它都一樣,也就是說,每個真彩位圖,這幾個成員取值都是一樣的.下面的例子可以說明。

讀取乙個真彩點陣圖的檔案資訊頭。

#include

#include

int main()

再來看一下bitmapinfoheader這個結構以及它成員的意思和取值

typedef struct tagbitmapinfoheader bitmapinfoheader;

調色盤(logpallete)由於大部分都是針對真彩位圖操作,此部分略過

getdibits函式定義:int getdibits(

hdc hdc, //位圖相容的dc

hbitmap hbmp, //位圖控制代碼

uint ustartscan, //從哪行開始掃瞄

uint cscanlines, //掃瞄多少行資料

lpvoid lpvbits, //接收資料的快取區

lpbitmapinfo lpbi, //真彩位圖,此處填位圖資訊頭就行了

uint uusage//真彩點陣圖填dib_rgb_colors,表示由r,g,b三色直接構成

);例子:截圖,並把螢幕儲存成位圖

#include

void screensnap(hbitmap hbitmap,char *bmppath,hdc dc);

int main()

void screensnap(hbitmap hbitmap,char *bmppath,hdc dc)

第九十個findwindowex查詢乙個父視窗裡的子視窗(根據子視窗類名,視窗名),函式返回子視窗控制代碼

函式定義:hwnd findwindowex

(hwnd hwndparent,//父視窗控制代碼

hwnd hwndchildafter,//子視窗控制代碼,指明z序

lpctstr lpszclass,//視窗類名

lpctstr lpszwindow//視窗名稱

);第乙個引數hwndparent如果為null,則以桌面視窗為父視窗,此時,這個函式與findwindow函式一樣,

第二個引數,子視窗控制代碼,如果為null,則從主視窗的第一z序開始查詢,否則從該子視窗的z序開始查詢。

後面兩個個引數跟findwindow的兩個引數意思一樣。

例子:模仿按鈕單擊

查詢乙個父視窗下特定的按鈕,然後用sendmessage函式給父視窗傳送按鈕被單擊的訊息

假設這個父視窗名為"abc",其下有乙個名為"確定"的按鈕

控制項訊息是:wm_command,wparam引數低十六位儲存存控制項id號,高十六位儲存有具體控制項訊息(如bn_clicked,單擊),lparam儲存控制項視窗控制代碼,控制項id號可以用getdlgctrlid函式獲取,該函式根據控制項視窗控制代碼,獲取控制項id號。

#include

int main()

VC API常用函式簡單例子大全一

第乙個 findwindow 根據視窗類名或視窗標題名來獲得視窗的控制代碼,該函式返回視窗的控制代碼,這個函式的定義是這樣的hwnd winapi findwindow lpcstr lpclassname lpcstr lpwindowname 第乙個引數填視窗的類名,第二個填視窗的標題名,其實是...

VC API常用函式簡單例子大全二

第十乙個 getclientrect獲得視窗大小 客戶區 看例子 include include int main int argc,char argv 第十二個 getwindowrect獲得視窗大小 相對螢幕 例子 include include int main int argc,char a...

C API常用函式簡單例子大全四

第三十個 createtoolhelp32snapshot 給當前程序拍乙個照 記住這種格式就行了,返回的控制代碼,儲存有程序資訊,可以用 process32firs 函式找出來。第三十乙個process32first 根據createtoolhelp32snapshot函式返回的控制代碼獲取程序資...