欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
脫離vcl的windows程序
4.4.1 脫離VCL的Windows程序
我想讀者有必要先了解一個(gè)標準Windows程序的運行流程,如果您還不了解,請看下面的一個(gè)示例程序。在此,我給出一個(gè)用純pascal所編寫(xiě)的十分簡(jiǎn)單的Windows應用程序,以演示標準Windows程序是如何被建立及運行的。該程序的代碼及可執行文件可在本書(shū)配套光盤(pán)的WindowDemo目錄下找到,程序可被Delphi編譯通過(guò)。
以下是代碼清單,請注意其中的注釋?zhuān)?div style="height:15px;">
program WindowDemo;
uses Windows, Messages;
// 窗口函數,窗口接到消息時(shí)被Windows所調用
function WindowProc(hwnd : HWND; uMsg : Cardinal; wParam : WPARAM;
lParam : LPARAM) : LResult; stdcall;
begin
Result := 0;
case uMsg of
// 關(guān)閉窗口消息,當用戶(hù)關(guān)閉窗口后,通知主消息循環(huán)結束程序
WM_CLOSE : PostMessage(hwnd, WM_QUIT, 0, 0);
// 鼠標左鍵按下消息
WM_LBUTTONDOWN : MessageBox(hwnd, ‘Hello!‘, ‘和您打個(gè)招呼‘,
MB_ICONINFORMATION);
else
// 其它消息做默認處理
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
end;
end;
var
wndcls : WNDCLASS; // 窗口類(lèi)的記錄(結構)類(lèi)型
hWnd : THandle;
Msg : tagMSG; // 消息類(lèi)型
begin
wndcls.style := CS_DBLCLKS; // 允許窗口接受鼠標雙擊
wndcls.lpfnWndProc := @WindowProc; // 為窗口類(lèi)指定窗口函數
wndcls.cbClsExtra := 0;
wndcls.cbWndExtra := 0;
wndcls.hInstance := hInstance;
wndcls.hIcon := 0;
wndcls.hCursor := LoadCursor(hInstance, ‘IDC_ARROW‘);
wndcls.hbrBackground := COLOR_WINDOWFRAME;
wndcls.lpszMenuName := nil;
wndcls.lpszClassName := ‘WindowClassDemo‘; // 窗口類(lèi)名稱(chēng)
// 注冊窗口類(lèi)
if RegisterClass(wndcls) = 0 then
Exit;
// 創(chuàng )建窗口
hWnd := CreateWindow(
‘WindowClassDemo‘, // 窗口類(lèi)名稱(chēng)
‘WindowDemo‘, // 窗口名稱(chēng)
WS_BORDER or WS_CAPTION or WS_SYSMENU, // 窗口類(lèi)型
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
0,
0,
hInstance,
nil
);
if hWnd = 0 then
Exit;
// 顯示窗口
ShowWindow(hWnd, SW_SHOWNORMAL);
UpdateWindow(hWnd);
// 創(chuàng )建主消息循環(huán),處理消息隊列中的消息并分發(fā)
// 直至收到WM_QUIT消息,退出主消息循環(huán),并結束程序
// WM_QUIT消息由PostMessage()函數發(fā)送
while GetMessage(Msg, hWnd, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end.
該程序沒(méi)有使用VCL,它所做的事情就是顯示一個(gè)窗口,當你在窗口上單擊鼠標右鍵時(shí)彈出一個(gè)友好的對話(huà)框向您問(wèn)好。如果您從來(lái)不曾了解過(guò)這些,那么我建議您實(shí)際運行一下光盤(pán)上的這個(gè)程序,對其多一些感性認識。
就是這樣一個(gè)簡(jiǎn)單的程序,演示了標準Windows程序的流程:
1、從入口函數WinMain開(kāi)始
2、注冊窗口類(lèi)及窗口函數(Window Procedure)
3、創(chuàng )建并顯示窗口
4、進(jìn)入主消息循環(huán),從消息隊列中獲取并分發(fā)消息
5、消息被分發(fā)后,由Windows操作系統調用窗口函數,由窗口函數對消息進(jìn)行處理。
在Object Pascal中,我們看不到所謂的“WinMain”函數,不過(guò),其實(shí)整個(gè)program的begin處就是Windows程序的入口。
注冊窗口類(lèi)通過(guò)系統API函數RegisterClass()來(lái)完成,它向Windows系統注冊一個(gè)窗口的類(lèi)型。
注冊窗口類(lèi)型完成后,就可以創(chuàng )建這個(gè)類(lèi)型的窗口實(shí)例,創(chuàng )建出一個(gè)真正的窗口通過(guò)API函數CreateWindow()來(lái)實(shí)現。
創(chuàng )建出的窗口實(shí)例通過(guò)API函數ShowWindow()來(lái)使得它顯示在屏幕上。
當這一切都完成后,窗口開(kāi)始進(jìn)入一個(gè)while循環(huán)以處理各種消息,直至API函數GetMessage()返回0退出程序。循環(huán)中,程序需要從主線(xiàn)程的消息隊列中取出各種消息,并將它分發(fā)給系統,然后由Windows系統調用窗口的窗口函數(WndProc)以完成窗口對消息的響應處理。
也許你會(huì )覺(jué)得,寫(xiě)一個(gè)Windows應用程序原來(lái)是那么繁瑣的,需要調用大量的API函數來(lái)完成平時(shí)看起來(lái)很簡(jiǎn)單的事情,而我們平時(shí)使用VCL編寫(xiě)窗口應用程序時(shí),似乎從來(lái)沒(méi)有遇到過(guò)這些東西。是的,VCL作為一個(gè)Framework為我們做了很多事情,其中的TApplication除了定義一個(gè)應用程序的特性及行為外,另一個(gè)重要的使命就是封裝以上的那些令人討厭的、繁瑣的步驟。
對該文的評論
chinayjlljy ( 2003-08-23)
delphi的目的時(shí)提高效率,這些知識僅僅是一個(gè)程序員應有的最基本的概念。沒(méi)有什么深奧的,這簡(jiǎn)直是對使用delphi的人的鄙視
phy ( 2003-06-05)
還真是,我慶幸我沒(méi)有買(mǎi)那本書(shū),呵呵。
Aweay ( 2003-05-07)
寫(xiě)這書(shū)的人在蔑視用delphi的人,以為他們連基本的Windows sdk程序設計都不懂??要不然就是用delphi的人都麻木到只會(huì )用元件了。
chanet ( 2003-04-01)
VC 的DELPHI知識
tw_cshn ( 2002-11-20)
那就直接用vc
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
孫鑫VC視頻教程筆記之第一課“Windows程序的內部運行原理”
C、C++、API、SDK、IDE、VC++、MSDN、MFC、OWL、VCL、ATL 、BCB
delphi低版本升高版本問(wèn)題
如何學(xué)好Delphi
Delphi的消息處理
在 Delphi 中執行 Windows 命令行程序
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久