[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/06 20:25 / Filesize : 198 KB / Number-of Response : 948
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build74



1 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 16:30:27 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

過去スレ、関連リンクは>>2-10くらい。

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

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build73
pc11.2ch.net/test/read.cgi/tech/1227934931/

321 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 19:54:33 ]
>>318
不可視で最小化ボタン付けちゃえ

322 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 21:14:37 ]
>>321
ども。上手くいきましたです ノ
最小化ボタンの有無がタスクボタンでの最小化に影響を与えるわけではないようですね。

でも、タイトルバーが付いてないウインドウとかでは駄目ですね、
こちらはクリッピングリージョンで非表示にしてしまうくらいしかないのかな。。。

323 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:07:24 ]
てか、最小化ボタンが無いのに最小化したいってどういう状況なんだ?
いわゆるスキンとかそういうのか?

324 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:19:14 ]
何らかの理由で最小化ボタンは付けたくないけど(タイトルバーも消したいっぽいし)、

最小化できないとユーザーがさすがに不便だろうからその方法は用意しておきたい、ってことだと予想してみる。

325 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:22:44 ]
普通は通知領域にアイコン表示したうえでSW_HIDEじゃないか?
今時、中途半端に最小化とかされても、そのなんだ・・・困る

326 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:40:47 ]
Delphi製アプリのように、メインウィンドウとタスクバー上のウィンドウを別々にするとか。
連携が面倒そうだけど。

327 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:25:03 ]
>>326
最小化するときにアニメーションしないバグがあるけどな

328 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:33:10 ]
いつの話よ?Delphi 2007で修正済。まぁ実装はいささかトリッキーだとは思うけど。

329 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:40:47 ]
ホントだ、最近のDelphiだと直ってる
正直これ直すの無理だと思ってたから内部でどういう処理してるのか気になる



330 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 08:47:48 ]
2007年まで放置してたってのもある意味凄いなw

331 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 13:24:13 ]
/* 最前面へ */
ThreadID1 = GetWindowThreadProcessId(GetForegroundWindow(), NULL);
ThreadID2 = GetCurrentThreadId();
AttachThreadInput(ThreadID2, ThreadID1, TRUE);
SetForegroundWindow(hDlg);
AttachThreadInput(ThreadID2, ThreadID1, FALSE);
BringWindowToTop(hDlg);

/* 最前面維持 */
SetWindowPos(hDlg, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);

とあるダイアログを最前面に表示するために
上記のようにしているのですが、このダイアログが
表示されているときに「デスクトップの表示」をすると
ダイアログ上に描画している文字列が消えてしまいます。
この文字列はWM_PAINTで処理しているのですが
「デスクトップの表示」をしたときはWM_PAINTが
来ないのでしょうか?
何か対処方法はありますでしょうか?


332 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 14:08:38 ]
AttachThreadInput(ThreadID2, ThreadID1, TRUE);
SetForegroundWindow(hDlg);
AttachThreadInput(ThreadID2, ThreadID1, FALSE);

未だにこんな下手なコード書く人がいるんだね

333 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 14:18:40 ]
ていうか強引に最前面表示させる行儀悪いソフト作る人ってまだいるのか

334 名前:331 mailto:sage [2008/12/25(木) 14:23:50 ]
>>333
お客さんのどうしてもという要望なので仕方なしに

335 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 15:00:59 ]
まあそのコードでは運用してからクレームが来るのは時間の問題
「ダイアログを最前面に出せ」なんてアホな要望する客なら尚更
ご愁傷様>>331

336 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 15:10:13 ]
たんに最前面に表示させるだけなら、Zオーダーを
TOPMOSTにする方がいいと思うが。
一瞬だけTOPMOSTにして、すぐにNOTOPMOSTに
するという方法もある。

これなら、フォーカスを奪わずに最前面に表示される。

337 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 17:45:17 ]
SetWaitableTimer()の開始時間の指定で絶対時刻はUTC時間を使えとありますが、
これはどういうことでしょう?1601/1/1 0:0:0.000からの経過時間かと思ったんですが・・・

338 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 17:51:45 ]
FILETIMEにUTCで指定すりゃ良いだけだろ

339 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 17:54:09 ]
ローカル時刻で指定すんなってことかと。



340 名前:318 mailto:sage [2008/12/25(木) 18:25:03 ]
>>326
>メインウィンドウとタスクバー上のウィンドウを別々にするとか。

取りあえずその方法でそれっぽい動作が可能になりました♪
(うむ〜、こんな手があったとは。。。

まだいくつか問題はありますがまあ調整できそうです。ありがとうございました ノシ

341 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 23:26:23 ]
cecile, il offre sa confiance et son amour.

342 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 18:25:56 ]
Owned windowに関する質問です。

通常はオーナーウインドウが破棄されると、Ownedウインドウも一緒に破棄されますが、
他プロセスが作成したウインドウをオーナーにしているとオーナーだけ閉じてしまいます。

これを一緒に閉じるようにしたいんだけど、オーナーウインドウに対してポーリングするのと
フックを仕掛ける以外で、何かスマートな方法はないですか?
オーナー側のプログラムはいじれません。

Spy++でメッセージログを見た感じでは、特に何もメッセージは来ていませんでした。

343 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 21:58:54 ]
オーナーウインドウを破棄する時に、Ownedウインドウに適当なメッセージを投げる。

344 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 22:06:04 ]
(; `ハ´)「アイヤー、日本の女子高生の耐寒性は異常アルネー」
up.mugitya.com/img/Lv.1_up81881.jpg


345 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 23:15:00 ]
>>344
コピペ君って馬鹿だな、まで読んだ。



346 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 23:18:17 ]
MSDNによると、GetFullPathNameの引数lpFilePartの型ってLPTSTRのポインタになってるけど、
これってどう解釈したらいいのかな?

変数から返ったとき、この変数にはlpBufferで渡したバッファ内のアドレスが
入ることになるわけだから、普通に考えると「LPTSTRのポインタ」ではなく
LPTSTRそのものでないとおかしい気がするんだけど……

347 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 23:19:34 ]
[訂正]
変数から返ったとき ⇒ 関数から返ったとき

348 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 23:23:57 ]
>>346
C言語を勉強しましょう。

349 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 23:24:28 ]
LPTSTRは文字列の先頭ポインタだからポインタそのものは受け取れない



350 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 23:30:32 ]
>>349
冷静に考えたらそうだねw
実に初歩的な考え違いってわけか。

351 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 01:35:43 ]
レベルが低すぎる

352 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 01:38:52 ]
最近のパスの最大長っていくつになってるの?
256じゃねーだろ絶対

353 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 01:45:55 ]
>>352
unicodeでMAX_PATH(=260)

理論上はそれ以上も可能だがExplorerが扱えない

354 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 01:54:42 ]
>>353
それってつまり何バイト?w

355 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:02:08 ]
>>354
それってどういう冗談?w

356 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:06:05 ]
4バイト?
260x4=1040っすか?

357 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:21:20 ]
やれやれ・・・
冬休みになって小学生がやって来たみたいだね

358 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:29:40 ]
>>357
マジでわからん
解説頼む

とりあえず調べた感じだとユニコードって4バイトまであることがわかった
だから>>356だと思ったんだけど違うの?

359 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:30:20 ]
わからないなら4096とっとけよ



360 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:47:34 ]
いやいや64KBくらいは確保しといたほうが安全だぞ

361 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:49:25 ]
実際1040以上くるから俺は2048を勧める

362 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:50:17 ]
全角のよくわからん文字を連打してためしたから間違いない

363 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:53:26 ]
>>362
それ手打ちだろ?w
msdn.microsoft.com/ja-jp/library/930f87yf(VS.80).aspx

32,768 文字でFA

364 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 02:54:53 ]
>>363
バイト数ぅぅううううううううううううううううううううううううう!でいくら?

365 名前:デフォルトの名無しさん [2008/12/27(土) 03:13:49 ]
>>364
MAX_PATHって文字だけでバイト数答えられるやつが居たらエスパー認定するね俺は。
自分で気が済むだけ確保しとけばいいじゃん?

366 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 03:14:47 ]
具体的にはFileDialogで流れ込んでくる文字列

367 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 10:39:56 ]
Unicode 1文字4バイトってサロゲートペアのこと言ってるなら、
あれは2文字にカウントする。
だからUTF-16は1文字2バイト。

UTF-8は最大6バイトだったり4バイトだったり…

368 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 10:47:15 ]
結合文字もあるだろ

369 名前:デフォルトの名無しさん [2008/12/27(土) 12:35:18 ]
ツリービューにドラッグドロップした際、カーソルの下にあるノードを取得するにはどうしたらいいんでしょうか?




370 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 14:01:20 ]
>>368
知らないならレスしないでください。ウザイだけです。

371 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 14:50:22 ]
>>369
とりあえずツリーコントロールのドラッグ&ドロップ当たりは参考にならないだろうか?
www.alpha-net.ne.jp/users2/uk413/vc/VCT_TVdrag.html

372 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:08:08 ]
>>371
それMFCのサンプルなんだが

373 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:11:45 ]
>>372
いや、MFC知らなくても読めばHitTest関数使うんだなってなんとなく分かるだろ

374 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:35:19 ]
>>372
ここまで応用が効かないヤツってどうやったら日本の教育で排出されるの?

375 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:41:35 ]
日本ノ教育関係ナイ

376 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 15:41:59 ]
>>374
?オレ別に質問した人間でもないし興味もないが、せっかく挙げるのならもうちょっと適切なサンプル上げてやったらどうかと思ってな

377 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 16:45:42 ]
またゆとり世代プログラマのご乱心か。


378 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 17:09:05 ]
>>376
適切なサンプルがあったらそうするだろ常考・・・

379 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 17:11:27 ]
もうだめだこのスレ



380 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 17:16:28 ]
レスしないで下さい。ウザイだけです。

381 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 17:21:40 ]
img.2ch.net/ico/o_anime_basiin.gif
【依頼75】

パンツにWiiリモコンを装着し女性でも立ちションの気分を味わえる「スパー・ピーピー・ブラーザー」 2008年12月27日 09時00分00秒
gigazine.net/index.php?/news/comments/20081227_super_pii_pii_brothers/

さまざまな変わった商品を取り扱っているThink Geekというサイトで、
女性でも立ちションのきぶんを味わえるWii専用ソフトが販売されているようです。
パンツにWiiリモコンが付いており、そのパンツをはいてプレイするという
非常に斬新なゲームになっているようです。
プレイムービーを見るとかなりシュールで笑ってしまいます。

では、どのようなソフトなのか見てみましょう

これが「スパー・ピーピー・ブラーザー」。本体価格は約35ドル(約3200円)。
gigazine.jp/img/2008/12/27/super_pii_pii_brothers/super-pii-pii-brothers-nintendo-wii-2.jpg

ゲーム中の画像
gigazine.jp/img/2008/12/27/super_pii_pii_brothers/Snap2.jpg
gigazine.jp/img/2008/12/27/super_pii_pii_brothers/Snap6.jpg
gigazine.jp/img/2008/12/27/super_pii_pii_brothers/super-pii-pii-brothers-nintendo-wii-1_m.jpg

プレイ動画
jp.youtube.com/watch?v=yQNKRDFanQE

382 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 17:29:19 ]
>>378
↓こっちのがいいんじゃないの?
support.microsoft.com/kb/214814/ja

てか、"ツリー""ドラッグ"でググってトップに出てくるページを挙げても意味ない気がするんだが

383 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 22:58:29 ]
GetTimeZoneInformationでサマータイムの開始時刻は取得できるのですが、終了時刻もしくはサマータイムである時間
を取得するにはどうすれば良いですか?日付でなく時刻が知りたいのですが・・・。
それともサマータイムって一日のうち何時間てのが決まってるんでしょうか?

384 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 23:20:48 ]
はぁ?

385 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 23:26:18 ]
俺が知ってるサマータイムじゃない

386 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 23:27:01 ]
>>383
特定の日に1時間戻して特定の日に1時間進めて終わりとちがうんか?
つまり年2回時間をいじると

387 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 23:48:53 ]
な、なんだってーーーーーーーーーーーーーー


ありがとうございました。ちなみに
10月3日2:00に始まって、3月3日2:00に終るとしたら、
開始時刻 <= サマータイム < 終了時刻
でいいんでしょうか?

388 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 23:50:25 ]
意味gワカリマセン

389 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 23:51:58 ]
>>387
うっせーな調べろよ
www.geocities.co.jp/SilkRoad/1702/travel/western/sumtime.htm



390 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 00:08:06 ]
>>389ツンデレ乙

391 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 00:10:41 ]
サマータイムを理解してないのに何をするつもりなんだろ

392 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 00:22:20 ]
仕事での客からの依頼、じゃない?

393 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 00:38:30 ]
時刻まわりはたしかに複雑だからわからんでもないけどな
新人で簡単だと思って取り組んではじめにやられる課題だろ>時刻

サマータイム時刻の12時と通常時刻の12時とで
重複カウントされて死ぬシステムに幸アレ!

394 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 01:00:17 ]
仕事なら先輩か上司に訊けよ

395 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 01:57:20 ]
仕事じゃないけど。

396 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 02:43:51 ]
仕事じゃないなら自分で調べろハゲ

397 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 03:16:55 ]
それにしたってサマータイムが1日ごとに設定しなおすものだという
思い込みの状態でプログラム組むとかこいつ馬鹿じゃねーのw

398 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 03:55:13 ]
ま、仕事ならこんな常識外れの人は真っ先にリストラでしょ

399 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 08:11:24 ]
うるう秒がきます。



400 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 08:46:23 ]
きますね。

401 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 08:57:20 ]
こいやぁー

402 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 09:59:19 ]
うるう秒の間、息を止めてないと流星ガスで死ぬらしいよ

403 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 10:23:17 ]
タイヤのチューブに空気入れておこう

404 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 10:49:48 ]
流星ガスでタイヤのゴムが爆発するらしいよ

405 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 11:53:21 ]
バスガス爆発

406 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 12:17:44 ]
バスガスバスハツ

噛んだ

407 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:14:09 ]
getPixelが遅いんですけどどうしたらいいですか

408 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:22:53 ]
イメージを自分の確保したメモリ内で管理する

409 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:52:36 ]
GetPixel/SetPixelは、色がどういうマッピングされるかの確認用とでも思っておいた方が良い。
実際の描画にはほぼ役に立たない。



410 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 16:22:55 ]
メインのプログラムを走らす前に扱いたい画像データの全ピクセルについてgetPixelで得られる値を予め配列に格納しておいて、
メインのプログラムを走らせた時にはその配列データのみを参照するようにすればいいわけね。一つ別にプログラム書かないといけないな。

411 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 16:29:05 ]
別のプログラムにする必要はないだろ・・・

412 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 16:35:24 ]
CreateDIBSection

413 名前:デフォルトの名無しさん [2008/12/29(月) 00:31:24 ]
質問させていただきます.
WM_CREATE
が送られてきたときに、非常に時間のかかる処理(10秒~15秒くらい)をさせるのはやめたほうがいいでしょうか?



414 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 00:40:18 ]
なんで止めた方が良いと思ったん?

415 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 01:06:53 ]
別スレッドでやればいいやん

416 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 01:45:01 ]
>>413
WM_CREATEに限らず、非常に時間のかかる処理はメインスレッドで
やらない方がいい。
メッセージに即座に応答できない状態だとOSから応答無しと判断されるし、
メッセージをブロードキャストするアプリケーションの動作にも影響する。

417 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 02:47:42 ]
ウィンドウプロシージャは0.1秒以内に処理を終えなければいけないみたいな決まりがあるはず

418 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 04:37:05 ]
>>417
詳細orサイトplz

それは意識してなかったorz

419 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 05:55:45 ]
GetMenu()のようにポップアップメニューを取得できないでしょうか?
リストアイテムを選択中に右クリックした場合に出るコンテキストメニュー
(ポップアップメニュー)のハンドルやその要素一覧を取得したいのです。



420 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 06:01:53 ]
> リストアイテムを選択中に右クリックした場合に出るコンテキストメニュー
出ねーよ

421 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 10:47:20 ]
>>420
申し訳ありません、アイテムがメニューをもつわけではないですね。
その選択したアイテムを操作するようなメニュー(アイテムのコンテナが
もつメニュー)のことです。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<198KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef