// Template -------- Byhottey2004-4-13-0: 18 //
// Situs web penulis: http://asp.itdrp.com/hottey //
Programdelphi;
penggunaan
windows,
pesan;
const
HelloStr = 'HelloWorld!';
{$ Rdelphi.res}
// Fungsi pemrosesan pesan jendela.
functionMyWinProc (hwnd: thandle; uMSg: uint; wparam, lparam: cardinal): cardinal; exp
ort; stdcall;
var
HDCA, HDCB: Thandle; // Pegangan Tabel Deskripsi Perangkat.
Rect: Trect; // Struktur persegi panjang.
Font: hfont;
PS: TPaintStruct; // Struktur Menggambar.
Mulai
Hasil: = 0;
caseumsgof
Wm_paint:
Mulai
hdca: = beginpaint (hwnd, ps);
SetBkMode (HDCA, transparan);
SetBkColor (HDCA, GetBkColor (HDCA));
GetClientRect (hwnd, rect); // Dapatkan ukuran area klien jendela.
DrawText (HDCA, PCHAR (HelloStr),-1, Rect, dt_singlelineordt_centerordt
_Vcenter);
// TextOut (HDC, 100,40, Hellostr, Length (Hellostr));
Endpaint (hwnd, ps);
akhir;
Wm_create:
Mulai
hdcb: = getDc (hwnd);
Font: = CreateFont (45,0,0,0, fw_normal, 0,0, ansi_charset, out
_default_precis, clip_default_precis,
default_quality, 34, pchar ('arial'));
SelectObject (HDCB, Font);
Dirilis (HWND, HDCB);
akhir;
WM_DESTROY:
PostquitMessage (0)
kalau tidak
// Gunakan fungsi pemrosesan pesan jendela default.
Hasil: = DefWindowProc (HWND, UMSG, WPARAM, LPARAM);
akhir;
akhir;
// Program utama dimulai.
var
Msg: tmsg; // struktur pesan.
Hwnd, Hinst: Thandle; // Windows Windows Handle.
Winclass: Twndclassex; // Struktur Kelas Windows Windows.
Mulai
hinst: = getModuleHandle (nil); // getTheApplicationInstance
Winclass.cbsize: = sizeof (twndclassex);
Winclass.lpszclassname: = 'mywindow'; // Nama kelas.
Winclass.style :=cs_hredraworcs_vredraworcs_owndc;
Winclass.hinstance: = hinst; // pegangan instance dari program.
// Atur fungsi pemrosesan pesan jendela.
Winclass.lpfnwndproc: =@mywinproc; // proses jendela.
Winclass.cbclsextra: = 0; // Dua domain berikut digunakan dalam struktur dan jendela kelas
Struktur jendela disimpan di dalam s
Winclass.cbwndextra: = 0; // Cadangan beberapa ruang ekstra di dalamnya.
Winclass.hicon: = Loadicon (Hinstance, Makeintresource ('Mainicon'));
Winclass.hiconsm: = Loadicon (Hinstance, Makeintresource ('Mainicon'));
Winclass.hcursor: = loadCursor (0, idc_arrow);
// GetStockObject mendapatkan objek grafik, di sini adalah untuk mendapatkan sikat yang menarik latar belakang jendela, mengembalikan sikat putih
Pegangan anak.
Winclass.hbrbackground: = hBrush (getStockObject (white_brush));
Winclass.lpszmenuname: = nil; // Tentukan menu kelas jendela.
// Daftarkan kelas jendela dengan windows.
ifregisterclassex (winclass) = 0then
Mulai
MessageBox (0, 'RegisterationError!', 'SDK/API', MB_OK);
KELUAR;
akhir;
// Buat objek jendela.
hwnd: = createWindowex (
Ws_ex_overlappedWindow, // gaya jendela diperpanjang.
Winclass.lpszclassname, // Nama kelas.
'HelloWindow', // Judul Jendela.
Ws_overlappedWindow, // gaya jendela.
Cw_usedefault, // sudut kiri atas jendela relatif terhadap layar
Posisi awal x di sudut kiri atas.
0, // .... benar y.
Cw_usedefault, // window width x.
0, // Tinggi jendela y.
0, // pegangan jendela induk.
0, // pegangan menu jendela.
hinst, // pegangan instance program.
nil); // Buat Parameter Pointer.
ifhwnd <> 0then
Mulai
Showwindow (hwnd, sw_shownormal); // show window.
UpdateWindow (hwnd); // jendela instruksi untuk menyegarkan dirinya sendiri.
SetWindowPos (hwnd, hwnd_topmost, 0,0,0,0, swp_nomove+swp_nosize);
akhir
kalau tidak
MessageBox (0, 'Windownotcreated!', 'SDK/API', MB_OK);
// program loop pesan utama.
whileGetMessage (msg, 0,0,0) lakukan
Mulai
TranslateMessage (msg); // konversi pesan keyboard tertentu.
DispatchMessage (msg); // Kirim pesan ke proses jendela.
akhir;
akhir.
> Faktanya, pemrograman Windows adalah sesuatu yang harus dikuasai oleh setiap orang yang harus dikuasai.
Kode di atas tidak secepat formulir baru-> digunakan di Delphi, tetapi dapat memberi tahu Anda ini
Hal -hal yang memenuhi syarat dapat membantu Anda lebih memahami loop pesan dan hal -hal lainnya.
.
> Catatan: Kode di atas secara harfiah diterjemahkan dari pemrograman Windows () melalui sintaks C ++, dan tidak ada masalah setelah pengujian.
Jika ada kesalahan dalam anotasi, harap perbaiki saya!^_^
Hottey on 2004-5-19 Situs Web Penulis: http://asp.itdrp.com/hottey (menurut rutin)