Windows API一日一練(64) RegSetValueEx和RegDeleteValue函數

 Windows API一日一練(64)

Windows API一日一練(16)BeginPaint和EndPaint函數

 當人們使用軟體時,大多數是想看到自己所需要的結果,比如玩RPG遊戲,就是想看到自己所操作的主角做各種各樣的事情。在2D的RPG遊戲裡,其實做的事情,就是不斷地更新畫面,也就是不斷地顯示BMP的圖片。在普通的程式裡,大多也是顯示各種文本和圖片的,但是有一種類型的應用程式是不怎麼顯示結果的,那就是服務程式。不管怎麼樣,只要我們想看到程式所執行後的結果,就需要在程式裡顯示出來。也就是需要調用BeginPaint和EndPaint函數。BeginPaint函數的作用是告訴Windows系統,要開始向顯

Windows API一日一練(48)PostThreadMessage函數

 Windows

Windows API一日一練(65)RegQueryValueEx函數

上一次介紹怎麼樣儲存資料到註冊表裡,這次就需要從註冊表裡讀取資料出來了。在這個例子裡是讀取字串資料出來,主要調用函數RegQueryValueEx來實現。下面的例子裡就是先查詢索引值的長度,然後再讀取內容出來。 函數RegQueryValueEx聲明如下: WINADVAPILONGAPIENTRYRegQueryValueExA (    __in HKEY hKey,    __in_opt LPCSTR lpValueName,    __reserved LPDWORD

Windows API一日一練(69)GetTickCount函數

 Windows API一日一練(69)GetTickCount函數時間計時,也不是越精確越好,有時只需要有一個計時就行了。這樣就可以使用毫秒層級的計時函數GetTickCount。這個函數是記錄了系統啟動以來的時間毫秒,當超過49.7天,這個值變為從0開始,也就是說49.7天是一個周期。當不同的兩次函數調時,就返回兩次時間差值。函數GetTickCount聲明如下:WINBASEAPIDWORDWINAPIGetTickCount(    VOID    );調用函數的例子如下:#001 //

Windows API一日一練(17)DialogBox和DialogBoxParam函數

 對話方塊是比較常用的視窗,比如當你想讓使用者輸入一些參數時就可以使用對話方塊。或者提示一些警告的資訊,都是可以使用對話方塊的。比如當你拷貝檔案時,Windows就會提示一個拷貝檔案的進度對話方塊。對話方塊的使用範圍比較廣,並且它在設計時就可以看到啟動並執行結果模樣,這樣方便設計。但對話方塊又分為兩類,一種對話方塊運行後,一定要使用者關閉那個對話方塊後才能返回到父視窗;一種對話方塊是不需要關閉後就可以直接返回父視窗。因此,軟體開發人員就要考慮這個對話方塊的結果是否會影響後面的操作,如果這個對話方

Windows API一日一練(24)DrawText函數

 DrawText函數與前面介紹的TextOut函數都是文本輸出函數,但它們是有區別的。DrawText函數是格式化輸出函數,而TextOut函數不具備這樣的功能。因而DrawText函數比TextOut函數功能強大,可以讓文本輸出時靠左對齊,或者靠右對齊,或者中間對齊,還可以讓文本適應輸出矩形內,如果超出時可以截斷,或者顯示為省略符號的方式。DrawText函數在表格方式顯示時肯定要使用到的函數。函數DrawText聲明如下:WINUSERAPIintWINAPIDrawTextA(    _

Windows API一日一練(20)LoadString、LoadIcon和LoadCursor函數

 在編寫國際化的應用程式裡,經常要使用不同語言的字串。比如中文菜單裡叫做“檔案”,而在英語裡叫做“File”。開發這種軟體的功能是一樣的,只是介面上顯示的文字不一樣而已。為了方便這種軟體的開發,在Windows裡經常使用的方法就是替換掉顯示的字串,比如指定在中文裡就顯示“檔案”,在英語裡就顯示“File”,是通過函數LoadString從不同的資源裡載入不同的字串顯示來實現的。其實所有可變的字串,都可以使用函數LoadString從資源裡載入字串顯示。映像的資訊是非常方便人們記憶的,像交通訊號一

Windows API一日一練(25)CreateSolidBrush函數

 當你看到Windows顯示的按鈕時,背景顏色是灰色的。當你看到預設的視窗背景時,它是白色的。當你的老闆需要你建立一個黑色背景的按鈕時,你會怎麼樣做呢?其實在Windows裡先用API函數CreateSolidBrush建立畫刷,然後調用FillRect函數來填充背景。這樣來,不管你需要什麼樣的背景,都隨心所欲了吧。現在先來搞懂CreateSolidBrush函數,下次再來練習FillRect。函數CreateSolidBrush聲明如下:WINGDIAPI HBRUSH WINAPI

Windows API一日一練(27)SetBkMode函數

 上面已經介紹輸出紅色的字串時,發現背景的黑色也變成白色了,這樣的輸出是破壞背景的。那需要使用什麼方法來保持背景不變,而又能輸出紅色的字串呢?比如按鈕的文字顏色是黑色的,而背景是灰色的。這就需要使用SetBkMode函數來設定DrawText函數的輸出方式,顯示裝置共有兩種輸出方式:OPAQUE和TRANSPARENT。OPAQUE的方式是用當前背景的畫刷的顏色輸出顯示文字的背景,而TRANSPARENT是使用透明的輸出,也就是文字的背景是不改變的。函數SetBkMode聲明如下:WINGDIA

Windows API一日一練(71)GetComputerName函數

 Windows

Windows API一日一練(3)使用命令列參數

 面再接著練習使用命令列參數,先在VC2005調試設定裡設定輸入參數,如:  下載 (61.3 KB)2008-10-8 20:22可以看到在Command Arguments裡輸入給程式傳送的命令列參數(cmd1 cmd2 命令列參數)。接著修改原來的程式如下:#001 int APIENTRY _tWinMain(HINSTANCE hInstance,#002                       HINSTANCE hPrevInstance,#003             

Windows API一日一練(21)SetWindowLongPtr和GetWindowLongPtr函數

 在軟體開發裡,大家一直對著這個問題是執著的,那是“複用”。總想自己寫出來的代碼,可以適應性很強,到那裡都可以落地生根。因此,物件導向的語言就層出不窮,每個都堅稱可以最大地複用代碼。在物件導向裡,C++是非常強大的。下面就來用C++把上面介紹的程式封裝起來,這樣可以複用,或者說條理更加清晰。#001 #002 int APIENTRY _tWinMain(HINSTANCE hInstance,#003                       HINSTANCE hPrevInstance,

Windows API一日一練(4)MessageBox函數

 為了顯示提示資訊給使用者,Windows是提供了一個非常方便的API函數MessageBox給使用者使用,使用這個API函數可以顯示簡單的文字資訊出來,提醒或提示使用者進行下一步操作。函式宣告如下:WINUSERAPIintWINAPIMessageBoxA(    __in_opt HWND hWnd,    __in_opt LPCSTR lpText,    __in_opt LPCSTR lpCaption,    __in UINT

Windows API一日一練(22)TextOut函數

 文本輸出,從來就是比較常用的方式,自從發明文字以來,就應缺少不了文字的顯示了。在以前,是書寫到白紙上,讓別人看懂它。現在到了資訊的時代,當然是顯示在螢幕上,即使你是不懂書法的,也可以顯示出驚人的書法文字出來。在視窗裡顯示文字出來,就可以使用TextOut函數,當然不只這一個API函數可以顯示字元了。TextOut函數是使用當前裝置的屬性來顯示文字的,比如裝置屬性有字型類型,字型的顏色,字型背景的顏色等等。函數TextOut聲明如下:WINGDIAPI BOOL WINAPI TextOutA(

Windows API一日一練(23)SetTextColor函數

 世界是多姿多彩的,色彩是不可以缺少的。在軟體開發裡,不同的字元顏色往往用來區分不同的資料類型,比如嚴重的警告,就是使用紅色,當然這也是跟交通裡紅綠燈是一樣的道理。最根本的原因,還是人類對自然的選擇。畢竟人眼對不同的顏色作出了不同的選擇。由於紅色光波穿透性比較好,所以就形成以紅色來警告的訊號。說來也怪,人類的身體不管是什麼顏色,流著的血一定是紅色的。在軟體開發裡,要把輸出字元的顏色符合現在人位的習慣,不要背離它,否則就不是“以人為本”的科學理念,如果開發出不是“以人為本”的軟體是沒有客戶使用的。

Windows API一日一練(2)使用應用程式控制代碼

 從上面這段程式就可以看到,_tWinMain是應用程式的入口函數,這裡是使用它的宏,定義在tchar.h標頭檔裡,為什麼要這樣作宏定義的呢?由於Windows的應用程式要適應UNICODE和以前單字元的應用程式,由於Windows這兩個API的定義是不一樣的,如下:UNICODE的定義: #define _tWinMain   wWinMain單字元的定義: #define _tWinMain  

Windows API一日一練(72)GetUserName函數

 Windows

總頁數: 1357 1 .... 264 265 266 267 268 .... 1357 Go to: 前往

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。