- ベストアンサー
Win32 SDKを使用してホットキーにマウスボタンを使う方法
- Windows VISTA、Visual C++ 2008 Express Edition、Win32 SDKを使用してプログラムを作成しています。
- 現在、[HOME]キーをホットキーにして動作させていますが、マウスのスクロールボタンを使いたい場合はVK_MBUTTONを使用することができません。
- マウスボタンを使うためには別の方法を見つける必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- machongola
- ベストアンサー率60% (434/720)
関連するQ&A
- マウスボタンへのキー割り当て
今までMicrosoftのマウス、Wireless Intelli Mouse Explorer2.0にMicrosoft IntelliPoint Software Windows版(バージョンは常に最新)のドライバを入れて使っていました。 このドライバのキー割り当てに「ゲームコマンド操作」という割り当て方があります。 これは1つのボタンに2つのキーを記憶させる事ができるもので、ホットキーというのでしょうか…?Ctrl+Aなどといったものとは違うもので、A+Bなどホットキーではないキーを2つ入力することができます。 しかし他のマウスだと、1ボタンに1つのキー(○:A ×:A+B)しか割り当てることができないのです。 そこで質問なのですが、これと同じ機能を持ったもしくは持たせる事ができるマウスはありますでしょうか? Microsoft以外のものでもし知っていればお聞かせ下さい。 分かりずらいかもしれないですが、宜しくお願いします。
- ベストアンサー
- その他(PCパーツ・周辺機器)
- マウスのスクロールボタンが音量設定に???
今までは普通にマウスのスクロールボタンでページの上下をスクロールしていたのですが、今朝パソコンを開いたらスクロールができなくなっていました。 その代わり、そのボタンがボリュームコントロールを調節するようになっていて、、、戻し方がわかりません。 どうやったら以前のようにマウスのボタンでスクロールできますか?
- ベストアンサー
- マウス・キーボード
- ボタンのアイコン表示
開発環境:Vista Visual Studio2012 C言語 CreateWindowで作成したボタンを、アイコン表示にしたいのですけれど上手くいきません。 どこが悪いのでしょうか? HWND CreatePushButton(HWND hwnd, int x, int y, int w, int h, LPCTSTR caption, int id) { return CreateWindow( _T("BUTTON"), caption, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_ICON ; x, y, w, h, hwnd, (HMENU)(INT_PTR)id, G_hInst, NULL ); } LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { static HWND hButton; static HICON m_hIcon; switch (uMsg) { case WM_CREATE: //ウィンドウが作られたとき hButtonREC = CreatePushButton( hwnd, 20, 20, 80, 40, _T("テスト"), ID_BUTTON ); m_hIcon = LoadIcon( NULL , IDI_ERROR ); SendDlgItemMessage( hButtonREC, ID_BUTTON_RCE, BM_SETIMAGE, IMAGE_ICON, (LPARAM)m_hIcon); }
- ベストアンサー
- C・C++・C#
- マウスフックについて
Dllにてマウスフックをして、左ボタンが押しあがったらWM_LBUTTONUPされたら メッセージを送信するというものです。 そのときに、マウスの位置はどこにあってもいいのです。 たとえば、自分のウインドウの中で左ボタンを押して、 デスクトップ上などで左ボタンがあがったらメッセージを送信するというようにしたいのですがうまくいきません。 以下がソースです。 よろしくお願いします。 #include <windows.h> #include "MouseHook.h" HINSTANCE hInst; HHOOK hHook; HWND hWnd; BOOL bHook; int WINAPI DllMain(HINSTANCE hInstance, DWORD fdReason, PVOID pvReserved) { hInst = hInstance; return TRUE; } EXPORT int SetMainHWND(HWND hMainWindow) { hWnd = hMainWindow; return 0; } EXPORT BOOL IsHooking() { if (bHook) return TRUE; else return FALSE; } EXPORT int MouseHookSet() { hHook = SetWindowsHookEx(WH_MOUSE, (HOOKPROC)MouseHookProc,hInst, NULL); if (hHook == NULL) { return -1; } else { bHook = TRUE; return 0; } } EXPORT int MouseHookEnd() { if (UnhookWindowsHookEx(hHook) != 0) { bHook = FALSE; return 0; } else { return -1; } } EXPORT LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam) { MOUSEHOOKSTRUCT *pmh; pmh = (MOUSEHOOKSTRUCT *)lParam; if (wParam == WM_LBUTTONUP) { SendMessage(hWnd,MOUSEHOOK_LBUTTONUP,0,0); } if (wParam == WM_NCLBUTTONUP) { SendMessage(hWnd,MOUSEHOOK_LBUTTONUP,0,0); } return CallNextHookEx(hHook,nCode,wParam,lParam); }
- ベストアンサー
- C・C++・C#
- visualstudioについて
visual studio2008 c++ を使用しています. ダイアログ形式でアプリケーションを作成しています. ボタンを押すと画像のようなアプリケーションを起動してenterキーを送るようにしたいのですがうまく出来ません. void CMy6Dlg::OnBnClickedButton1() { // TODO: ここにコントロール通知ハンドラ コードを追加します。 HINSTANCE ret = ShellExecute(m_hWnd, "open", "---Release\\scip_20_gd.exe", NULL, NULL, SW_SHOW); HWND hWnd = ::FindWindowEx(NULL, NULL, NULL, "---Release\scip_20_gd.exe"); ::SendMessage(hWnd,WM_SETFOCUS,0,0); ::SendMessage(hEdit, WM_KEYDOWN, VK_RETURN,0); if (ret <= (HINSTANCE)32) AfxMessageBox("シェル処理ができません.", MB_OK); } よろしくお願いします.
- ベストアンサー
- C・C++・C#
- マウスホイールボタンのイベントをとるには?
キーが押された時のイベントは、document.onkeydownを、そして、 マウスボタンが押された時は、document.onmousedownイベントで イベントを拾うことができることは知っております。 ところで、マウスホイールの上下スクロールのイベントを拾うには どのようなJavaScript(IE/NN)でコーディングすればよろしいでしょうか?
- 締切済み
- JavaScript
- ホイール付き 5ボタンマウスを探しています。
ホイール付き 5ボタンマウスを探しています。 条件は以下のみっつです。 1 第4と第5ボタンを、「戻る」と「アプリケーションを閉じる」に割り付けできること。 2 ホイール操作や第4・第5ボタンを操作したとき、現在フォーカスしているウィンドウでは無くマウスポインタの乗っているウィンドウに作用すること。 3 できれば、ホイール(ホイールの代りにトラックボールでもOK)の操作で横スクロールもきればなお良。 Windows7 で使います。 接続は、USBかブルートゥースがうれしいです。 かなり以前のアーベルのトラックボールマウスはOKだったのですが、生産終了で入手できません。 その後いろいろ試してみましたが、条件2 が全てアウトです。 実際に購入して試さないと分らないので困っています。 条件に合うマウスは、無いでしょうか? よろしくお願いします。
- 締切済み
- その他(PCパーツ・周辺機器)
- マウスの左ボタンだけが急に動かなくなりました
昨日ゲームをしていたら急に固まってしまい、何もキー反応が しなくなってしまい仕方なくいきなり電源オフで再起動しました。 そしたらマウスの左ボタンだけがクリックしても何の反応もなくなってしまいました。マウスは左右にボタンがあって真ん中にスクロールさせる部分がついてるタイプです。 さいわい左ボタンを何度もクリックしまくったり左右のボタンを一緒に 押しまくったりしてたらさっきまた急に反応するようになったのですが 理由がわからないのでまた急に反応しなくなるのではという不安があります。 単なる接触不良でしょうか?パソコンとマウスはまだかって1ヶ月程度しか経ってないのですが。ちなみにOSはヴィスタです。マウス以外で 不具合がある項目はありません。 もしまたなった場合、ちゃんとした?直し方というのがあれば教えてください。
- ベストアンサー
- その他(PCパーツ・周辺機器)
- ゲームパッドでマウス操作ができるフリーソフト
こんにちは 最近ゲームパッドを買い、 マウスが使いにくいと感じていたので、 ゲームパッドをマウスの代わりに使いたいのですが、 ゲームパッドのスティックをマウスポインタの移動にしたり かつ、ボタンを左右のクリックやスクロールや キーボードのキーに割り振れ、 その設定をいくつか保存できるようなフリーソフトを探しています。 (例ゲームパッドの1ボタン→Zキーなど) 設定が簡単で使いやすいフリーソフトを教えてください
- ベストアンサー
- その他(PCパーツ・周辺機器)
- C++で質問です。
今、キーボード操作でマウスの機能を実現しようと考えています。 現段階ではキーボードの矢印キーでマウスポインタが動くところまではできました。 これに、ENTERを押したら左クリックするように実装したいのですがどうすればよいでしょうか? いろいろ調べたのですが見つかりませんでした・・・ #include <windows.h> LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) { HDC hdc; POINT po; switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_KEYDOWN: GetCursorPos(&po); if(wp == VK_UP) po.y-=7; if(wp == VK_DOWN) po.y+=7; if(wp == VK_LEFT) po.x-=7; if(wp == VK_RIGHT) po.x+=7; SetCursorPos(po.x , po.y); return 0; } return DefWindowProc(hwnd , msg , wp , lp); } int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { HWND hwnd; MSG msg; WNDCLASS winc; winc.style = CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = WndProc; winc.cbClsExtra = winc.cbWndExtra = 0; winc.hInstance = hInstance; winc.hIcon = LoadIcon(NULL , IDI_APPLICATION); winc.hCursor = LoadCursor(NULL , IDC_ARROW); winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winc.lpszMenuName = NULL; winc.lpszClassName = TEXT("KITTY"); if (!RegisterClass(&winc)) return -1; hwnd = CreateWindow( TEXT("KITTY") , TEXT("Kitty on your lap") , WS_OVERLAPPEDWINDOW | WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , NULL , NULL , hInstance , NULL ); if (hwnd == NULL) return -1; while(GetMessage(&msg , NULL , 0 , 0)) DispatchMessage(&msg); return msg.wParam; } これにクリック実装のプログラムを付け加えていただけると嬉しいです。
- ベストアンサー
- C・C++・C#
お礼
ダイレクトインプットを少し試してみました。 そもそもVC++の知識がほとんど無いため、悪戦苦闘です・・・ もうほとんどあきらめに近い心境です。
補足
できた!できました! ダイレクトインプットで希望の動作ができました。 ありがとうございましたm(_ _)m