Win32API質問箱 Build117at TECH
Win32API質問箱 Build117 - 暇つぶし2ch419:デフォルトの名無しさん
14/05/22 01:45:11.40 0c8RCwQ1
GetScrollBarInfo

420:デフォルトの名無しさん
14/05/22 10:01:03.33 o636QPC9
また10レスくらい消えてるな
何が怒ってるんだ?

421:デフォルトの名無しさん
14/05/23 19:29:21.27 WVZoxCv3
てst

422:デフォルトの名無しさん
14/05/24 10:30:35.51 JSv/+N9J
スレリンク(wildplus板)

423:デフォルトの名無しさん
14/05/26 01:59:01.87 0iejePEi
画面上からビットマップ情報を抜き出してそれをウィンドウに表示させたいです
抜き出した直後にGetDC→BitBlt→InvalidateRectだと表示されるんですが
WM_PAINTの中にBitBltしてビットマップからウィンドウに表示させようと
しても表示してくれません
BeginPaintとEndPaintの間に挟んでます
描画処理はWM_PAINTだけでやれみたいに言われたんでそうしたいんですが
どうしたらいいでしょうか

424:デフォルトの名無しさん
14/05/26 02:11:13.30 3fm3+XBc
>>423
自分で答え書いてるじゃん。
ビットマップを取得しておいてWM_PAINT~END_PAINTの間に
取得しておいたビットマップを描画すればいいんじゃないの?

425:デフォルトの名無しさん
14/05/26 02:18:29.44 0iejePEi
それがWM_PAINTの中にビットマップからウィンドウにBitBltしても
表示してくれないんです。
DrawTextはきちんと更新されるんですが

426:片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
14/05/26 03:25:42.65 Y2iJcwcZ
ビットマップはどうやって選択してる? コードをちょっと見せてくれ

427:デフォルトの名無しさん
14/05/26 05:17:20.26 Js6v2rIN
XPまでは動くけどVistaからは動かないコード書いてるんじゃないか

428:デフォルトの名無しさん
14/05/26 07:26:51.97 fNjo4Ias
WM_PAINTの中でInvalidateRect呼んでないだろうな?

429:デフォルトの名無しさん
14/05/26 15:04:35.44 0iejePEi
423です
大変申し訳ありません。チェック用にともう一箇所ビットマップ使ってたんですが
それと共用してたみたいで、すぐに真っ白に上書きしてたみたいです
ものすごくしょうもなくてすいません
WM_PAINTのなかだけで描画することができました

430:デフォルトの名無しさん
14/05/26 15:05:59.56 2JzRM12h
MemoryDC 使うと安全

431:デフォルトの名無しさん
14/05/26 20:12:11.44 SXihz4Wg
> コードをちょっと見せてくれ
こういうカキコにはきおつけようね

432:デフォルトの名無しさん
14/05/27 00:48:14.52 S3d8Rpij
CreateWindowEx(0,TEXT("EDIT") ~で表示される文字を入力する所のフォントを、
メイリオにして大きくしたいんだけど、多数あって1個1個変えるのは面倒なんです。
フォントのデフォルト値を変更する方法教えてください。

433:デフォルトの名無しさん
14/05/28 02:58:38.61 G1qCZ58l
WH_CBTでSetWindowsHookExを呼んでプロシージャ内をこの処理だけにしてもエラーになります

if(0 <= nCode) {
CallNextHookEx(hhookCBT, nCode, wParam, lParam);
return 0;
}
return CallNextHookEx(hhookCBT, nCode, wParam, lParam);

エラーがでるタイミングは通知領域のアイコンをクリックした時で
Program : C:\Windows\System32\SndVol.exe
File : f:\dd\vctools\crt_bld\self_x86\crt\src\vsprintf.c
Line : 280
Expression : ("Buffer too small", 0)
と出ます

解決方法を教えて下さい

434:デフォルトの名無しさん
14/05/28 03:16:04.13 G1qCZ58l
再試行を選択すると問題なくいつも通りの動作をします

435:片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
14/05/29 14:05:35.90 8OTIo9LC
>>432
サブクラス化
>>433
デバッグ実行して、呼び出し履歴をチェックする。

436:デフォルトの名無しさん
14/05/29 23:01:12.80 wIANv80B
DLLを使用してグローバルフックをしてる時に
case DLL_PROCESS_DETACH:内でSendMessageを呼んでプロセス側に知らせている状況で質問があります

・デッドロックが発生する時としない時がある
・SendMessageをPostMessageに変更すればデッドロックが発生しない

発生しない時は何回試しても発生しないのですが、別の箇所を変更したら毎回発生するようになります
SendMessageでデッドロックが発生する時としない時があるのはどうしてですか?

変更内容はデッドロックが発生するような処理ではありません
case DLL_PROCESS_DETACH:内ではSendMessageしかしていません

437:デフォルトの名無しさん
14/05/30 02:41:53.37 SSvUP3u/
>>436
君のいうデッドロックは具体的にはどういう意味か?

438:デフォルトの名無しさん
14/05/30 03:12:21.70 HYrqTs9L
また片山が嘘を教えてるのか
本当に嫌がらせが好きなんだな

439:デフォルトの名無しさん
14/05/30 03:25:16.62 +JiPsEdl
>>436
DllMainの説明に書いてあるけど、
DLL_PROCESS_DETACHのタイミングで
kernel32で使えるAPI以外を呼ぶと謎挙動が発生する可能性がある。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch