banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Nhận mã ký tự bạn phím?  XML
  [Programming]   Nhận mã ký tự bạn phím? 12/11/2007 04:27:16 (+0700) | #1 | 96966
thienthanit
Member

[Minus]    0    [Plus]
Joined: 05/09/2006 10:17:10
Messages: 31
Offline
[Profile] [PM]
Trong lập visual C++ 6.0 làm sao làm cho người dùng bấm 1 phím trên bàn phím, thì thông báo cho người dùng biết người dùng đã nhấn phím gì vậy các bạn, ngay cả các phím Ctrl,Shift,Alt, F1....? Giúp mình với!
[Up] [Print Copy]
  [Question]   Nhận mã ký tự bạn phím? 12/11/2007 08:01:49 (+0700) | #2 | 96987
[Avatar]
ngoalong
HVA Friend

Joined: 22/03/2003 04:33:38
Messages: 111
Offline
[Profile] [PM]

thienthanit wrote:
Trong lập visual C++ 6.0 làm sao làm cho người dùng bấm 1 phím trên bàn phím, thì thông báo cho người dùng biết người dùng đã nhấn phím gì vậy các bạn, ngay cả các phím Ctrl,Shift,Alt, F1....? Giúp mình với! 


đây là cách tôi hay dùng:

BOOL CMyApp:: PreTranslateMessage(MSG* pMsg)
{
if ( (pMsg->message == WM_KEYDOWN) )
{
switch (pMsg->wParam)
{
case VK_INSERT:
break;
case VK_ESCAPE:
break;
}
}

return CWinApp:: PreTranslateMessage(pMsg);
}

Bạn có thể làm tương tự ở bất cứ đối tượng con nào cần xử lý msg và có thể xử lý rất nhiều msg gửi tới nó

[Up] [Print Copy]
  [Question]   Nhận mã ký tự bạn phím? 13/11/2007 05:32:32 (+0700) | #3 | 97181
thienthanit
Member

[Minus]    0    [Plus]
Joined: 05/09/2006 10:17:10
Messages: 31
Offline
[Profile] [PM]

ngoalong wrote:

thienthanit wrote:
Trong lập visual C++ 6.0 làm sao làm cho người dùng bấm 1 phím trên bàn phím, thì thông báo cho người dùng biết người dùng đã nhấn phím gì vậy các bạn, ngay cả các phím Ctrl,Shift,Alt, F1....? Giúp mình với! 


đây là cách tôi hay dùng:

BOOL CMyApp:: PreTranslateMessage(MSG* pMsg)
{
if ( (pMsg->message == WM_KEYDOWN) )
{
switch (pMsg->wParam)
{
case VK_INSERT:
break;
case VK_ESCAPE:
break;
}
}

return CWinApp:: PreTranslateMessage(pMsg);
}

Bạn có thể làm tương tự ở bất cứ đối tượng con nào cần xử lý msg và có thể xử lý rất nhiều msg gửi tới nó

 

Các ký tự bình thường thì mình xuất ra được nhờ hàm LOBYTE(pMsg->wParam), nhưng các ký tự như [, ] ; ... thì không xuất được, và làm sao xuất được các ký tự ở phía trên như '(' (shift 9), ')' (shift 0), vậy bạn?
[Up] [Print Copy]
  [Question]   Nhận mã ký tự bạn phím? 13/11/2007 08:19:04 (+0700) | #4 | 97212
[Avatar]
ngoalong
HVA Friend

Joined: 22/03/2003 04:33:38
Messages: 111
Offline
[Profile] [PM]

thienthanit wrote:

Các ký tự bình thường thì mình xuất ra được nhờ hàm LOBYTE(pMsg->wParam), nhưng các ký tự như [, ] ; ... thì không xuất được, và làm sao xuất được các ký tự ở phía trên như '(' (shift 9), ')' (shift 0), vậy bạn? 


Bạn tìm trong MSDN sự kiện WM_KEYDOWN hoặc xem online tại đây http://msdn2.microsoft.com/en-us/library/ms646280.aspx
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|