Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
Topic 1b - Windows

Topic 1b - Windows

Ratings: (0)|Views: 159|Likes:
Published by huahongquan2007

More info:

Published by: huahongquan2007 on Sep 18, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/18/2012

pdf

text

original

 
www.huahongquan.com 
Topic 1b – Windows and Messages
 
Trong WIN32 API có hàm CreateWindow để
t
o ra các c
ử 
a s
 
(windows). Tuy nhiên để
s
ử 
d
ng
đƣợ
c t
ố 
t hàm này thì chúng ta c
 ầ
n m
t s
ố 
ki
ế 
n th
ứ 
c n
 ền trƣớ
c.
T
ng Quan:
M
t c
ử 
a s
( window ) thì ch
ứa 1 thanh tiêu đề
 
( title bar ) để
hi
ện tên chƣơng trình, 1 menu ,
toolbar và scroll bar.M
t lo
i c
ử 
a s
khác n
ữ 
a là dialog box ( có th
có / không có title bar )Các nút nh
ấ 
n (push button ), radio button, checkboxes, list boxes, scroll bars và
các vùng text …cũng có thể
 
đƣợ
c g
i là 1 window. Hay còn g
i là child windows hay control windows hay childwindow controls.Các c
ử 
a s
 
thì tƣơng tác với ngƣờ
i dùng qua các d
ạng “messages”. Các cử 
a s
 
cũng
dùng các
 “messages” để
giao ti
ế 
p v
i các c
ử 
a s
khác.Ví d
: Khi b
n gi
ữ 
góc c
a 1 c
ử 
a s
 
và kéo để
 
thay đổi độ
r
ng c
a c
ử 
a s
thì n
i dung trong c
ử 
as
 
cũng tự 
 
thay đổ
i theo.
Nhƣng làm thế 
nào mà
ứ 
ng d
ng bi
ế 
t r
ằng ngƣời dùng đã thay đổi độ
 r
ng c
a c
ử 
a s
ổ? Windows đã gử 
i 1 message t
i cho
ứ 
ng d
ng. Ng
hĩa là Windows đã gọ
i 1 hàm
 trong
ứ 
ng d
ng mà b
n vi
ế 
t
. Hàm đó gọ
i là
WINDOW PROCEDURE
Khi m
t
ứ 
ng d
ng b
ắt đầu đƣợ
c kh
i ch
y, thì Windows s
t
o m
ột hang đợ
i message ( queue
message ) để
ch
ứ 
a t
ấ 
t c
các message c
a t
ấ 
t c
các c
ử 
a s
ứ 
ng d
ng s
t
o.
The HELLOWIN Program
Chúng ta s
t
o m
ột chƣơng trình hiể
n th
m
t c
ử 
a s
ố 
ch
nh và t
ừ 
 
 “Hello Windows” ở
chính gi
ữ 
a.Các b
n t
i file cpp
 
đây chạ
y th
ử 
 
sau đó chúng ta sẽ
 
đi sâu vào chi tiế 
t
 
www.huahongquan.com 
Chú ý:
dòng
PlaySound (TEXT ( "hellowin.wav"  ), NULL, SND_FILENAME | SND_ASYNC) ;
N
ế 
u các b
n uncomment thì khi ch
ạy chƣơng trình sẽ
có âm thanh báo. Tuy nhiên c
 ầ
n ph
i
thêm thƣ việ
n
WINMM.LIB
. Để
 
thêm thƣ việ
n, các b
n ch
n chu
t ph
i vào
Project >properties . Linker > INPUT .
Ch
n m
ục mũi tên phả
i c
a
Additional Dependencies > Edit.
Và thêm WINMM.LIB vào.
Sơ lượ
c v
 
chương trình:
 
Để
th
c hi
n m
t
ng d
ng WIN32 thì c
 ầ
n t
 ố
i thi
 ểu 5 bướ
c sau:
 
Register Class
o
 
 
Create Windows
 
Show Windows
 
Xây d
ng hàm x
 
Vòng l
p x
lý message
Chi ti
ế 
t:
Trƣớ
c tiên, các b
ạn lƣu ý là các cú pháp trên chúng ta sẽ
không c
 ầ
n thu
c lòng mà sau này khic
 ầ
n dùng ch
vi
c copy và ch
nh s
ử 
a thôi :D.
Ở 
trên mình nói là s
hi
n th
ch
ữ 
 
gi
ữ 
a c
ử 
a s
ố 
 
nhƣng thậ
t ra là
gi
ữ 
a vùng hi
n th
( vùng màu tr
ng )
Nhìn chung thì chƣơng trình trên vẫ
n có hàm
WinMain
 
tƣơng tự 
 
nhƣ ở
 
topic 1a
 
nhƣng có thêm
hàm n
ữ 
a là
WndProc
. Hàm
WndProc
này chính là hàm
WINDOW PROCEDURE
 
đã đề
c
p
 trên. CHÚ Ý là trong hàm
WinMain
ta có dùng
wndclass.lpfnWndProc = WndProc ;
nênc
 ầ
n khai báo tên hàm
trên hàm
WinMain
.
TRƢỚ 
C TIÊN CHÚNG TA C
N M
T S
 
ĐỊNH NGHĨA SAU:
 
The Windows Function Calls
Chƣơng trình trên dùng mộ
t s
ố 
hàm Windows sau:
 
LoadIcon
Loads an icon for use by a program.
 
LoadCursor 
Loads a mouse cursor for use by a program.
 
www.huahongquan.com 
 
GetStockObject 
Obtains a graphic object, in this case a brush used for painting thewindow's background.
 
RegisterClass
Registers a window class for the program's window.
 
MessageBox 
Displays a message box.
 
CreateWindow 
Creates a window based on a window class.
 
ShowWindow 
Shows the window on the screen.
 
UpdateWindow 
Directs the window to paint itself.
 
GetMessage
Obtains a message from the message queue.
 
TranslateMessage
Translates some keyboard messages.
 
DispatchMessage
Sends a message to a window procedure.
 
PlaySound 
Plays a sound file.
 
BeginPaint 
Initiates the beginning of window painting.
 
GetClientRect 
Obtains the dimensions of the window's client area.
 
DrawText 
Displays a text string.
 
EndPaint 
Ends window painting.
 
PostQuitMessage
Inserts a "quit" message into the message queue.
 
DefWindowProc 
Performs default processing of messages.
Chƣơng trình cũ
ng dùng m
t s
ố 
bi
ế 
n h
ằng nhƣ:
 
CS_HREDRAW 
 
DT_VCENTER
 
SND_FILENAME 
 
CS_VREDRAW 
 
IDC_ARROW 
 
WM_CREATE 
 
CW_USEDEFAULT 
 
IDI_APPLICATION 
 
WM_DESTROY 
 
DT_CENTER
 
MB_ICONERROR
 
WM_PAINT 
 
DT_SINGLELINE 
 
SND_ASYNC 
 
WS_OVERLAPPEDWINDOW 
 
Trong đó thì các chữ 
 
đầu tƣơng ứ 
ng cho:
Prefix 
 
Constant 
 CS Class style optionCW Create window optionDT Draw text optionIDI ID number for an iconIDC ID number for a cursorMB Message box optionsSND Sound optionWM Window messageWS Window style
New Data Types
Bên c
nh các bi
ế 
n h
ng trên thì còn m
t s
ố 
bi
ến khác đƣợc định nghĩa trong các header.
 

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->