如何用滑鼠達到跟鍵盤同樣效果?(directx) |
尚未結案
|
dragonliu01
一般會員 發表:19 回覆:16 積分:7 註冊:2004-12-21 發送簡訊給我 |
如題 以下是我的部份程式碼
RESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_DESTROY: Cleanup(); PostQuitMessage( 0 ); return 0; case WM_KEYDOWN: switch(wParam) { case 'D': iTime = (iTime 100) % 10000; break; } } return DefWindowProc( hWnd, msg, wParam, lParam ); }這表示當我按d時 圖形便會旋轉,但當我想用滑鼠按右鍵來表示呢? 不過如果我只把'D'改成WM_RBUTTONDOWN 卻無法達成我的效果 請問該如何改呢? |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
dragonliu01 您好: 您將 WM_RBUTTONDOWN 放在原先檢查按下 D 鍵的位置是錯誤的,因為滑鼠事件不屬於鍵盤動作,不可能在 WM_KEYDOWN 之下去抓到 WM_RBUTTONDOWN 訊息,您可以試著將 WM_RBUTTONDOWN 訊息的捕抓動作放到 switch (msg) 之下的 case 處,也就是比照 WM_DESTROY 與 WM_KEYDOWN,再設一個 case WM_RBUTTONDOWN 應該就可以了。 7 天天敲鍵盤 v 時時按滑鼠 8
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
插個花~
< class="code">
RESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY:
Cleanup();
PostQuitMessage( 0 );
return 0;
case WM_RBUTTONDOWN: //按滑鼠右鍵時模擬按下D字鍵,可否符合你的需求
keybd_event('D',0,0,0);
keybd_event('D', 0, KEYEVENTF_KEYUP, 0);
break;
case WM_KEYDOWN:
switch(wParam)
{
case 'D':
iTime = (iTime 100) % 10000;
break;
}
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
-----------------------
Practice makes perfect.
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |