Win32API質問箱 Build124

■ このスレッドは過去ログ倉庫に格納されています
2017/11/11(土) 19:23:00.69ID:TpLoCFAx
Win32APIについての質問はこちらへどうぞ。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
 英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

■過去スレ
Win32API質問箱 Build123
http://mevius.2ch.net/test/read.cgi/tech/1475897582/
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
Win32API質問箱 Build121
http://echo.2ch.net/test/read.cgi/tech/1438695290/
Win32API質問箱 Build120
http://echo.2ch.net/test/read.cgi/tech/1428570962/

■関連スレ
Visual Studio 2017 Part4
http://mevius.2ch.net/test/read.cgi/tech/1509244956/
【C++】 DirectX初心者質問スレ Part40 【C】
http://mevius.2ch.net/test/read.cgi/tech/1474782237/
2017/11/11(土) 19:26:38.85ID:TpLoCFAx
■番外編
WindowsDDK各種についてのスレ
http://mevius.2ch.net/test/read.cgi/tech/1049116134/
D言語 Part34
http://mevius.2ch.net/test/read.cgi/tech/1422155249/
Cygwin + MinGW + GCC 相談室 Part 8
http://mevius.2ch.net/test/read.cgi/tech/1411399211/
Borland Developer Studio 2006 No.13
http://mevius.2ch.net/test/read.cgi/tech/1175861395/
Borland C++ Compiler オ ワ タ
http://mevius.2ch.net/test/read.cgi/tech/1206951221/
2017/11/11(土) 19:28:04.05ID:TpLoCFAx
■ネイティブなやつとか
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
http://mevius.2ch.net/test/read.cgi/tech/1270793556/
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18
http://mevius.2ch.net/test/read.cgi/tech/1488948543/
●●●●TCL/TKなら俺に聞け 4●●●●
http://mevius.2ch.net/test/read.cgi/tech/1375678740/
Gtkプログラミング on Windows!!!
http://mevius.2ch.net/test/read.cgi/tech/1147024203/
4デフォルトの名無しさん
垢版 |
2017/11/11(土) 19:29:50.88ID:TpLoCFAx
■需要あるかしらん
OpenGL 2.0 専用スレ
http://mevius.2ch.net/test/read.cgi/tech/1126268759/
OpenGL/Vulkanスレ Part22©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1440666771/
SDL=Simple DirectMedia Layerでゲームだ
http://mevius.2ch.net/test/read.cgi/tech/1103655588/
Google NaCl プログラミング 2mol
http://mevius.2ch.net/test/read.cgi/tech/1298614677/
【boot】nasm【loader】
http://mevius.2ch.net/test/read.cgi/tech/1377053129/
MASM32 - 選ばれし本物のプログラマ
http://mevius.2ch.net/test/read.cgi/tech/1348574727/
2017/11/11(土) 19:33:10.06ID:i7HL5TEm
>1 乙
6デフォルトの名無しさん
垢版 |
2017/11/11(土) 19:43:41.81ID:4LNBDgYy
いちもつ
2017/11/11(土) 20:47:03.12ID:yAvgRxQb
>>1
乙ですー
2017/11/12(日) 17:49:57.76ID:k+Q3OR2Q
>>1
9デフォルトの名無しさん
垢版 |
2017/11/12(日) 18:55:13.45ID:g8teYUTq
Win32API標準 のリストビュー(クラス名 SysListView32) 上のリストアイテムに対して、keybd_event()やmouse_event() を使わずに
プログラムからキー押下やクリックのイベントを起こすにはどうしたらよいですか。
2017/11/12(日) 19:03:29.37ID:hcIx1LXl
SendMessage(hLV, WM_LBUTTONDOWN, ...);
SendMessage(hLV, WM_LBUTTONUP, ...);
2017/11/12(日) 19:06:05.53ID:hcIx1LXl
LVM_ENSUREVISIBLE
LVM_GETITEMRECT
12デフォルトの名無しさん
垢版 |
2017/11/12(日) 19:25:07.33ID:g8teYUTq
>>10,11
スレの性質上、意味のない無駄な書き込みはやめてもらえますか。お願いします。
意味もなくAPI名やキーワードを羅列することは、情報が冗長になりスレの価値を下げることになります。
2017/11/12(日) 19:38:02.33ID:hcIx1LXl
>>9
LVM_ENSUREVISIBLEメッセージで、リストビューの項目を表示させる。
LVM_GETITEMRECTメッセージで、項目の位置を取得する。
取得した場所に対して、WM_LBUTTONDOWN/UPメッセージを呼ぶ。
2017/11/12(日) 19:59:30.69ID:yKCfx7dw
>>12
若いな
15デフォルトの名無しさん
垢版 |
2017/11/12(日) 20:17:24.65ID:g8teYUTq
>>13
リストビューにフォーカスがない状態でWM_LBUTTONDOWN/WM_LBUTTONUPを2回送信して、
ダブルクリックが仮想的に実行できるか試してみましたが、選択位置(フォーカスがないので灰色)が変わるだけで反応なしでした。
WM_LBUTTONDBLCLKだと灰色位置の変化もなし。
WM_LBUTTON*系のメッセージを使わない正規の方法があるかと思ったのですが、なさそうですね。
回答ありがとうございました。別の方法考えます。
2017/11/12(日) 20:19:35.68ID:hcIx1LXl
クライアント座標とスクリーン座標があって、クライアント座標系はウィンドウごとに場所が違うから注意が必要だ。
2017/11/12(日) 20:29:12.30ID:hcIx1LXl
http://forums.codeguru.com/showthread.php?415399-ListView-double-click-in-code-c
これが役に立つかも知れない。
2017/11/12(日) 20:43:32.51ID:hcIx1LXl
https://stackoverflow.com/questions/974722/send-a-double-click-to-a-listview-c-not-net
これはどうかな?
19デフォルトの名無しさん
垢版 |
2017/11/12(日) 21:45:52.37ID:g8teYUTq
>>18
当方、送信したい相手はdllから読み込んだ同一プロセス上のリストビューなので、GetWindowLongPtr(GWLP_WNDPROC)でイベントをフックして使った。
NM_DBLCLKイベント自体はフックしたプロシージャにちゃんと送られていることは確認できた。
NM_DBLCLKイベント送受信は成功したが、期待するダブルクリック時の振る舞いをしてくれないので、求めていた機能は成功していない状態。
これ以上はdll側の実装依存との格闘になるので、ここでの質問は終わらさせていただきます。
2017/11/12(日) 23:18:10.01ID:Kj+Cizk6
人工無能同士の会話みたい
2017/11/13(月) 12:36:22.40ID:Q60O1ghY
ダブルクリックには常に先行するシングルクリックがあるとか2回目のシングルクリックもあるとかちゃんとやってるよね
2017/11/13(月) 21:39:25.70ID:dnspAOl6
ダブルクリック処理面倒くさい
ドライバーレベルで峻別してくれないかな

ところでGetDoubleClickTime()にあわせてタイマーイベントすると
体感長く感じるんだがどう処理するのが正しいのかな
2017/11/14(火) 00:02:34.16ID:FWNbLyCJ
ブラウザゲームとかダブルクリック使わないので
ダブルクリックなしのUIに慣れてきている自分
2017/11/21(火) 18:35:19.43ID:t2ie3Fqr
Windows7などでタスクバー上の自身のアプリにマウスを置いたときに表示される
サムネイルを別の画像にしたいのですが、やり方やサンプルなどはありませんか?
2017/11/21(火) 18:57:28.67ID:IqvSRvvZ
ITaskbarList3
2017/11/22(水) 13:33:15.33ID:NgxFNsMl
エディットコントロールに値を手入力した後、フォーカスを失った時点で飛んでくるメッセージはありませんか?
エディットコントロールの値を、作業する直前に取り込む、という方法では、いろいろと不都合が出てきました。(たとえばレジストリへのバックアップなど)
27デフォルトの名無しさん
垢版 |
2017/11/22(水) 13:39:07.14ID:TZAtmSaI
あります
2017/11/22(水) 15:59:34.39ID:QYl/HC3N
EN_KILLFOCUS
2017/11/22(水) 17:44:14.54ID:NgxFNsMl
>>28
ありがとうございます。
強制的に、フォームに配置しているすべてのエディットコントロールへのフォーカスを失わせる方法はありますか?
関係ないコントロールにフォーカスを移す方法でもいいです
2017/11/22(水) 18:08:51.27ID:QYl/HC3N
フォーカスのあるコントロールにWM_KILLFOCUSを送信。
2017/11/22(水) 18:21:42.81ID:QYl/HC3N
SendMessage(GetFocus(), WM_KILLFOCUS, 0, 0);
2017/11/24(金) 13:46:55.30ID:HWVyDVmi
SetWindowHookExのグローバルフックってもう使えないのかな?
64bitと32bitのアプリケーションが混合してる世の中だけど
2017/11/24(金) 14:10:48.48ID:+7IWktV2
使える
2017/11/24(金) 15:30:15.15ID:HWVyDVmi
>>33
64bitのアプリケーションに32bitDllをマッピングしたら当然エラーが起きてプログラムが死んだんだけど・・・
マッピングするDllを切り替える方法とかが有るのですか?
2017/11/24(金) 15:40:48.12ID:ZNkp8uW6
>>28
このたびはありがとうございました。無事に実装を完了させました。
2017/11/24(金) 15:41:26.89ID:pohwH8o0
最初から64bitDLLをマッピングすりゃいいんじゃないの?
2017/11/24(金) 16:01:57.91ID:+7IWktV2
If a 64-bit application installs a global hook on 64-bit Windows, the 64-bit hook is injected into each 64-bit process, while all 32-bit processes use a callback to the hooking application.
2017/11/24(金) 20:44:09.53ID:Y2cmNidj
ウィンドウメッセージを監視するVisualStudioの付属ソフト Spy++ でさえ32bitアプリ監視向けと64bitアプリ監視向けで別々に必要なのだからしょうがない。
2017/11/25(土) 01:59:09.56ID:QwJx+kFY
32と64のexeからそれぞれhookをするしかないよ。
SetWinEventHookとかで代用できるなら片方のみでもいける。
2017/11/25(土) 08:23:45.59ID:WF+T0grB
インジェクションとグローバルフックが混同してる
2017/11/25(土) 15:27:02.72ID:J6q+ZC/L
Windows10上で 64ビット開発してListViewを使う

レポート形式で列を複数作り、カラムの幅の総和がリストビューの幅を超えるようにする。
項目をマウス左右(どちらでも)ドラッグで複数選択しようとすると、列の末尾にスクロールが発生し、
このときマウスカーソルがディスプレイの右下や右上に吹っ飛ぶ。
win32(x86)では発生しない。
専用テストプログラム組んで発生したのでこの場合コントロールのバグ確定でいいかな。
古めのSDK(2008とか)使っているので、最新の開発環境で作っている人の発生状況を知りたい。
4241
垢版 |
2017/11/25(土) 17:17:50.99ID:J6q+ZC/L
追加条件
ビジュアルスタイルを適用で発生・・・代替案不明
2017/11/25(土) 18:13:49.32ID:KR9Edo9E
>>41
対処法は俺も知らんけど
FCU入れるとコモンコントロールのListView使ってるアプリは全部同じ挙動になるから
OS側の不具合で間違いないと思うよ
4441
垢版 |
2017/11/25(土) 18:52:47.69ID:J6q+ZC/L
>>43
情報サンクス
しばらく様子見かな・・・
45デフォルトの名無しさん
垢版 |
2017/11/28(火) 12:44:11.35ID:EqW/cfNY
e糞plorereで再現
2017/11/28(火) 18:01:50.95ID:TWDwWwDO
た、す、け、て!
https://teratail.com/questions/102359?nli=5a1d03c4-2eb8-452f-88e5-5b2b0a000162
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況