■過去ログ置き場に戻る■ 1- 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build35
1 名前:Omoti@世界一の大金持ち ◆rzOmotimAo :2005/09/05(月) 01:08:16
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんたちが答えてくれるかも。

  ∧_∧
 ( ´∀`) < 0x22

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

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

-前スレ
Build34:http://pc8.2ch.net/test/read.cgi/tech/1122723009/

2 名前:Omoti@世界一の大金持ち ◆rzOmotimAo :2005/09/05(月) 01:08:56
-過去スレ
Build33:http://pc8.2ch.net/test/read.cgi/tech/1120153520/
Build32:http://pc8.2ch.net/test/read.cgi/tech/1117271829/
Build31:http://pc8.2ch.net/test/read.cgi/tech/1114762194/
Build30:ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/
Build29:ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/
Build28:ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/
Build27:ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/
Build26:ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/
Build25:ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
Build24:ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
Build23:ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
Build22:ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
Build21:ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
Build20:ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
Build19:ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
Build18:ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/
Build17:ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/
Build16:ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/
Build15:ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/


3 名前:Omoti@世界一の大金持ち ◆rzOmotimAo :2005/09/05(月) 01:09:50
Build14:ttp://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
Build13:ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
Build12:ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
Build11:ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
Build10:ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
Build9:ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
Build8:ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
Build7:ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
Build6:ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
Build5:ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
Build4:ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
Build3:ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
Build2:ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Build1:ttp://pc.2ch.net/tech/kako/991/991576947.html


4 名前:Omoti@世界一の大金持ち ◆rzOmotimAo :2005/09/05(月) 01:10:39
- MSDN Online
http://www.microsoft.com/japan/msdn/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
- Google
http://www.google.com/

- WindowsR Server 2003 SP1 Platform SDK Full Download
http://www.microsoft.com/downloads/details.aspx?familyid=EBA0128F-A770-45F1-86F3-7AB010B398A3&displaylang=en
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
Win32 プログラミング入門
http://www7.plala.or.jp/keny01/windows/win32/
Win32 SDK Programming
http://usr_vogel.at.infoseek.co.jp/Win32SDK/

■書籍
Advanced Windows
http://www.amazon.co.jp/exec/obidos/ASIN/4756138055


5 名前:デフォルトの名無しさん :2005/09/05(月) 01:10:54
スレ立て乙・・・と思ったらウザスOmotiかよ。

6 名前:デフォルトの名無しさん :2005/09/05(月) 01:12:20
0x22ってどういう意味なの?


7 名前:デフォルトの名無しさん :2005/09/05(月) 01:14:21
>>6
34...

8 名前:デフォルトの名無しさん :2005/09/05(月) 01:14:53
-おまけ
dat落ちしている過去スレが見れるかも。Part19が見たい人、余裕のある人は●でも買ってやってくれ。
http://makimo.to/cgi-bin/search/search.cgi?q=Win32API&andor=AND&sf=2&H=&view=table&shw=&D=tech

9 名前:デフォルトの名無しさん :2005/09/05(月) 01:24:25
Omotiの名前の由来は何ですか?

10 名前:デフォルトの名無しさん :2005/09/05(月) 01:31:35
>>9
当時、W3CとかGNUとかの翻訳をやったり
ウルティマオンラインの外国サーバーで遊んだりとか
IRCでアメリカ人としゃべったりDiabloで外人と遊んだりとか
インターネット時間の95%を外人と過ごしていたので、彼らにも
覚えやすく、タイプしやすく、短めの名前で日本風のもの、ということで
つけました 昔はあんまりネットに日本人はいなかった 外人向けの名前ということです

11 名前:デフォルトの名無しさん :2005/09/05(月) 01:46:52
MessageBox(NULL, TEXT("乙"), TEXT(">>1"), MB_OK);

12 名前:デフォルトの名無しさん :2005/09/05(月) 02:04:29
なんでマイクロソフトはMSDNの日本語化を進めないんだ?


13 名前:デフォルトの名無しさん :2005/09/05(月) 02:05:35
金かかるし誤訳多いし

14 名前:デフォルトの名無しさん :2005/09/05(月) 02:42:54
せめて検索機能をONにしてください
誰かMSDN専用検索サイト立ち上げてよ

15 名前:デフォルトの名無しさん :2005/09/05(月) 02:50:42
日本語版があるに越したことは無いが、MSDNの資料ぐらい英語のままでも問題ないだろ
下手に誤訳が有る上に更新の遅い資料読むぐらいなら、大元の資料読んだ方がいい

16 名前:デフォルトの名無しさん :2005/09/05(月) 02:57:07
誤訳以前にサイト内検索にひっかからないのをどうにかしてほしい。
たどりつくのが大抵googleからとか、喪前らほんとにそれでいいのかと小一時間(ry

17 名前:デフォルトの名無しさん :2005/09/05(月) 03:12:30
>>16
今みてみたら見当たらないが、この間は日本語版は検索できなくなってて
直してるから待てと告知されてたが
英語版は正常に機能してるし、問題ないだろ

18 名前:デフォルトの名無しさん :2005/09/05(月) 03:26:59
なんで10年も前から存在するAPIすらまともに検索できないんだよ
英語版だと日本の単語で検索できないのが問題
英語が得意でも和英は答えが一つじゃない
対訳表もなしにやってられるか

19 名前:デフォルトの名無しさん :2005/09/05(月) 03:39:49
>>17
2、3年前からひっかかってない気がするんだが、まだ直らないのか・・・・。
まあ本気で読みたければローカル版読めばいいから俺個人は別にいいんだが。

20 名前:デフォルトの名無しさん :2005/09/05(月) 03:52:43
Omotiはそんな昔からPC触ってんのにいまだにそんなアホなんか

21 名前:デフォルトの名無しさん :2005/09/05(月) 04:12:19
最新の日本語版の情報が無いのは良いとして、
Win95で実装されたAPIのドキュメントで英語版しか
無い物があるなんて…
「VisualStudio ver x.xx "日本語版"」って
もう何年前のドキュメントだよ?
Microsoft Japanは仕事する気あるのかなぁ??

22 名前:デフォルトの名無しさん :2005/09/05(月) 05:38:41
前スレ1000が爆弾発言wwww

>1000 :デフォルトの名無しさん [sage] :2005/09/05(月) 02:21:24
>0x3E8だったら秀丸超えるテキストエディタ作る

23 名前:デフォルトの名無しさん :2005/09/05(月) 06:29:11
日本語ヘルプが更新されないことに加えて、MSDN ONLINEから
Win32APIのカテゴリがごっそり抜け落ちてたり、メジャーなAPI関数
ですらサイトの検索でヒットしないところを見ると、これは日本法人の
意図が働いていると見るのが妥当だろう。

で、その意図が何かと読み解くと、日本の場合、Win32APIの日本語
ヘルプが充実してしまうと、Borland製品の売れ行きが良くなってしまう
のでは?という仮説に行き着く。

かつて、その圧倒的な生産性の高さから、口コミなどもあって日本では
Delphiの旋風が吹き荒れていた。その名残は数多くのフリーソフトが
Delphi製という形で残ってはいるのだが、そのDelphiも2.0までだったかは
Win32APIの日本語ヘルプが付いていた。

24 名前:デフォルトの名無しさん :2005/09/05(月) 07:08:49
MSDN見てるとアンケートが出てくることあるでしょ?
あれが出たら書いとこうな。
適当な英語でもきっと通じるから。
I want more documents translated into Japanese.
とか。

25 名前:デフォルトの名無しさん :2005/09/05(月) 08:50:27
MSDNのWM_CREATEの記述って間違っていませんか?

ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_create.asp

 >Return Value
 >If an application processes this message, it should return zero to continue creation of the window. If the application returns A?A?1, the window is destroyed and the CreateWindowEx or CreateWindow function returns a NULL handle.

WM_CREATEが飛んできたときにゼロを返すと、ウインドウが生成されないのですが。
で、0以外(-1も含む)を返すと生成されます。

26 名前:デフォルトの名無しさん :2005/09/05(月) 08:56:09
>>25
コード出せや。エスパーに答えてもらいたいんか?

27 名前:デフォルトの名無しさん :2005/09/05(月) 09:21:37
>>25
間違ってません。
return 0;でちゃんと作成されます
return -1;でちゃんと破棄されます

おかしいのはアンタのコード

28 名前:デフォルトの名無しさん :2005/09/05(月) 09:22:28
>25
あなたのプログラムがおかしい可能性が非常に高いです。
CreateWindowに渡す引数等を見直してみてください。
コールバック関数はちゃんと__stdcallになってますか?

29 名前:25 :2005/09/05(月) 09:49:02
あれ、普通に書いたらうまくいった。
なぜかメッセージクラッカーを使った場合だけ失敗する。

やはりどこかおかしかったみたいです。

30 名前:デフォルトの名無しさん :2005/09/05(月) 09:49:09
前スレ990ですが、
メモリ上でビットマップを重ね合わせるような
ことが可能なのですか?

31 名前:デフォルトの名無しさん :2005/09/05(月) 09:51:49
>>29
おかしいのは藻前

メッセージクラッカーの定義を読め

32 名前:デフォルトの名無しさん :2005/09/05(月) 09:59:19
>>23
BCB6でも付いてるぞ > Win32API日本語ヘルプ

33 名前:25 :2005/09/05(月) 10:02:19
>>31
なるほどOrz

34 名前:デフォルトの名無しさん :2005/09/05(月) 10:05:52
>>30
はい

35 名前:デフォルトの名無しさん :2005/09/05(月) 10:19:44
>>30
ていうか、メモリ上で処理できんかったら画像処理がなんもできん

36 名前:デフォルトの名無しさん :2005/09/05(月) 10:31:26
ビットマップなんて所詮はただのRGB値の入ったメモリ配列じゃないか

37 名前:デフォルトの名無しさん :2005/09/05(月) 10:36:41
そうとも限らないけど

38 名前:30 :2005/09/05(月) 11:29:05
すみません。質問の仕方が遠まわしすぎました。
読み込んだビットマップをメモリDC上に
座標を指定して貼り付けることはできますか?

39 名前:30 :2005/09/05(月) 11:30:33
スマソ追記
あるなら、その方法を教えてください。

40 名前:デフォルトの名無しさん :2005/09/05(月) 11:31:33
BitBlt

41 名前:30 :2005/09/05(月) 12:16:01
>>40
ありがとうございます。そうなんですが…。
BitBltの前にSelectObjectでビットマップを当てはめるDCを指定しなくちゃならないので
hBuf2 = CreateCompatibleDC(hdc);
SelectObject(hBuf2 , hBitmap);
BitBlt(hBuf , 0 , 0 , 400 , 200 , hBuf2 , 0 , 0 , SRCCOPY);
の様にhdcに互換するメモリDCを二種類用意しなくてはいけないと思うのですが、
これっていいんですか?

42 名前:デフォルトの名無しさん :2005/09/05(月) 12:17:18
それでよし。

43 名前:30 :2005/09/05(月) 12:33:17
>>42
ありがとうございます。助かりました。

44 名前:デフォルトの名無しさん :2005/09/05(月) 15:50:07
フォルダの内容が変更されたことを検出するにはどうしたらよいのでしょうか?

45 名前:デフォルトの名無しさん :2005/09/05(月) 15:55:55
FindFirstChangeNotification

46 名前:デフォルトの名無しさん :2005/09/05(月) 17:28:38
WH_CBTタイプのローカルフックで質問です。

HCBT_CREATEWNDを調べてCreateWindow関数や
DialogBoxParam関数で設定したアプリケーションデータを
取得したいのですが、ダイアログボックスの時だけ取得出来ません。

アプリケーションデータは
CBT_CREATEWND→CREATESTRUCT→lpCreateParams
に入ってる筈なのですが。

ちなみにウィンドウの時は取得できましたが、ダイアログボックスの時はNULLが入ってました。

47 名前:デフォルトの名無しさん :2005/09/05(月) 17:31:30
>>46
DialogBoxParamのパラメータはWM_INITDIALOGで受け取るからそれでは無理なのでは?

48 名前:46 :2005/09/05(月) 17:49:03
>>47
DialogBoxParam関数のヘルプを見るとCreateWindowEx関数を使って
ダイアログボックスを作ってると書いてあるんですよね。

つまり、ウィンドウで出来るなら、ダイアログボックスでも出来るんじゃないかと
思ってるんですが…。

49 名前:デフォルトの名無しさん :2005/09/05(月) 18:05:02
SetWindowsHookExでは駄目なのか?

50 名前:デフォルトの名無しさん :2005/09/05(月) 18:05:47
…間違ったorz
WH_MSGFILTERでは駄目なのか?

51 名前:デフォルトの名無しさん :2005/09/05(月) 18:07:29
>>48
> HCBT_CREATEWND
> 1 個のウィンドウが作成されようとしています。
> システムは、このウィンドウへ WM_CREATE または
> WM_NCCREATE メッセージを送信する前に、
> このフックプロシージャを呼び出します。

「DialogBoxParamはCreateWindowExを使ってるし、それならウィンドウでできるんだからダイアログでもできるハズ」
なんて身勝手な妄想する前にヘルプをちゃんと読め

HCBT_CREATEWNDでフックできるのはWM_CREATE or WM_NCCREATE
これらは普通のウィンドウへ送られるメッセージ

DialogBoxParamに限らず、ダイアログが作られるときに送られるのはWM_INITDIALOG
そもそもメッセージが違うのにフックできるわけが無い

52 名前:46 :2005/09/05(月) 19:07:01
>>51
でも、HCBT_CREATEWNDでダイアログボックスが作成されたのを知る事ができ、
そのダイアログボックスのハンドルも取得できるんですよ。

それに、CREATESTRUCT構造体のlpCreateParams以外の値はちゃんと
入っていました。lpCreateParamsだけNULLなのが何故なのかなぁと思いまして。

53 名前:デフォルトの名無しさん :2005/09/05(月) 19:36:12
OCXを作ってます。
ブラウザに貼り付けた時にMOUSEWHEELを感知できません。
どうやら、ブラウザ本体の方にメッセージが取られて
OCXのプロシージャに到達していないようです。
ちなみに、ACCESSのフォームに貼ったら感知しました。
で、フックを使おうと思い、WH_MOUSEで待ってみると
0x20Aを探知できて、ホイールイベント自体は行えるようになったのですが
ホイールの移動方向の情報が来ません。
しょうがないので、WH_GETMESSAGEで待ってみると0x20A自体が来ませんでした。
WH_MOUSE_LLを使うとDLLを作らないといけないらしいので躊躇しています。
ご存知の方いましたら、解決方法を教えてください。

54 名前:デフォルトの名無しさん :2005/09/05(月) 19:38:29
>>51
ダイアログボックスはウィンドウクラス(WNDCLASS)がシステム定義のものってだけで
通常のウィンドウと何ら変わりない。

>>52
lpCreateParamsを使わずにパラメータ渡してるんだろ。

55 名前:デフォルトの名無しさん :2005/09/05(月) 19:47:29
1000 デフォルトの名無しさん sage 2005/09/05(月) 02:21:24
0x3E8だったら秀丸超えるテキストエディタ作る


よろ

56 名前:Mathiz@前スレ1000 ◆Ho9erQuSOQ :2005/09/05(月) 19:56:52
半年待ってね :-)
必ず作ってこのハンドルで公開宣言します。

57 名前:デフォルトの名無しさん :2005/09/05(月) 19:58:33
そう言って何人もが消えていったよ…。
ガンガレw

58 名前:46 :2005/09/05(月) 20:01:41
>>54
> >>52
> lpCreateParamsを使わずにパラメータ渡してるんだろ。

やっぱりそういう結論になりますよね。何でlpCreateParams使ってくれないんですかねぇ。
まぁそれはそれとして、どうも回答有難うございました。

59 名前:99 :2005/09/05(月) 20:14:11
http://pc8.2ch.net/test/read.cgi/tech/1122001458/99-100
どうですか・・・。

60 名前:デフォルトの名無しさん :2005/09/05(月) 20:15:15
>>54,58
おまいらはWM_INITDIALOGをMSDNで調べたりしてないのか?

61 名前:デフォルトの名無しさん :2005/09/05(月) 20:17:58
>>52
取得できてんのは内部的に呼び出されたCreateWindowExがダイアログを作成した時の
WM_INITDIALOGとDialogBoxParamに伴うlParamのデータはその後でDialogBoxParamから送られる
CREATESTRUCTの中に入ってるわけが無い

>>54
おいおい・・・

62 名前:デフォルトの名無しさん :2005/09/05(月) 20:44:13
>>60
だから何?

63 名前:デフォルトの名無しさん :2005/09/05(月) 20:58:29
>>62
ちゃんと調べてたら、DialogBoxParamを使ってるのにCREATESTRUCTだの、
その中のlpCreateParamsだの見ても必要なデータが取得できないと分かるはずだからだろ

64 名前:46 :2005/09/05(月) 20:58:35
>>61
つまり、DialogBoxParam関数に伴うlParamのデータは
WM_INITDIALOGメッセージの時に取得できるもの。
      ↓
HCBT_CREATEWNDではWM_CREATEやWM_NCCREATEをフックする。
      ↓
DialogBoxParamに伴うlParamのデータはWM_INITDIALOG時に取得
出来るものだから、WM_CREATEやWM_NCCREATEフック時には取得できない。

と、いうことですか?

65 名前:デフォルトの名無しさん :2005/09/05(月) 21:00:15
>>64
そういうこと、あと渡される構造体データもまったく違う

66 名前:46 :2005/09/05(月) 21:28:17
>>65
どうも有難うございました。理解できました。

67 名前:デフォルトの名無しさん :2005/09/05(月) 21:52:35
>>56

どんな点で秀丸を超えるつもりなんだ?

値段か? アイコンのセンスか?
アイコンのセンスなら結構簡単そうだぞ。

ユーザー数とかなら不可能だ。


68 名前:デフォルトの名無しさん :2005/09/05(月) 22:06:05
名前の駄目さとかでも至難の業だな。

69 名前:デフォルトの名無しさん :2005/09/05(月) 22:21:51
値段も簡単じゃね?
いっそフリーにしてしまえばいいし

70 名前:デフォルトの名無しさん :2005/09/05(月) 22:22:46
値段で秀丸を超えるなら1本1万とかにしないと

71 名前:デフォルトの名無しさん :2005/09/05(月) 22:26:07
有料の場合、最低1人は本当に払った価格でないと。
言うだけならタダだからナ

72 名前:Mathiz ◆Ho9erQuSOQ :2005/09/05(月) 22:26:54
儲けるつもりは無いのでフリーで、ソースも公開しようと思います。

73 名前:デフォルトの名無しさん :2005/09/05(月) 22:29:53
スレ違いだから新しくスレを立てれ。応援してやるよ

74 名前:デフォルトの名無しさん :2005/09/05(月) 22:33:05
秀○

伏せれてねぇー

75 名前:デフォルトの名無しさん :2005/09/05(月) 22:34:03
いや、ダイレクトな字じゃないから一応伏字だw

76 名前:デフォルトの名無しさん :2005/09/05(月) 23:11:43
AT○K

77 名前:デフォルトの名無しさん :2005/09/05(月) 23:21:07
○157

78 名前:デフォルトの名無しさん :2005/09/05(月) 23:35:09
WIND○WS

79 名前:デフォルトの名無しさん :2005/09/05(月) 23:43:12
何で伏字スレになってるんだw
しかもわかりやすーw

80 名前:デフォルトの名無しさん :2005/09/06(火) 00:06:32
9xでも使えるText○utW。

81 名前:デフォルトの名無しさん :2005/09/06(火) 01:07:07
http://pc8.2ch.net/test/read.cgi/tech/1052919371/
一応此処。

82 名前:デフォルトの名無しさん :2005/09/06(火) 02:07:11
DirectInputを使わずにゲームPADの入力を得たいのですが、
検索のためのキーワードとなる単語や関数名など教えて頂けませんか。

83 名前:デフォルトの名無しさん :2005/09/06(火) 02:19:39
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_multimedia_joystick_functions.asp

84 名前:デフォルトの名無しさん :2005/09/06(火) 02:29:56
うお、素晴らしい!ありがとうございます。

85 名前:デフォルトの名無しさん :2005/09/06(火) 11:08:41
3つのウィンドウから成るアプリケーションを作っています。
最小化ボタンなどを持つメインウィンドウが1つ、
残り2つはボタンを一切持たないタイトルバーだけのサブウィンドウという位置付けです。
メインとなるウィンドウ以外から終了させたくないので、
メインとなるウィンドウだけをタスクマネージャの
アプリケーションタブに表示させるにはどうしたら良いのでしょうか?
よろしければ、教えて下さい。


86 名前:デフォルトの名無しさん :2005/09/06(火) 11:26:42
>>85
サブウィンドウをメインウィンドウの被所有ウィンドウにすればいいんでね?

87 名前:デフォルトの名無しさん :2005/09/06(火) 11:27:56
>>85
http://www.asahi-net.or.jp/~HA3T-NKMR/vcl3-2.htm

88 名前:デフォルトの名無しさん :2005/09/06(火) 11:35:04
>>86
被所有ウィンドウとは、サブウィンドウをメインウィンドウの
子ウィンドウとするという事でしょうか?

89 名前:デフォルトの名無しさん :2005/09/06(火) 11:52:54
>>88
ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowfeatures.asp?frame=true#owned_windows

Owned Windowsのとこ嫁

90 名前:デフォルトの名無しさん :2005/09/06(火) 13:19:51
親子関係と所有被所有関係を混同してる人大杉

91 名前:デフォルトの名無しさん :2005/09/06(火) 13:48:09
だって日本語訳みたらわかんないよ
「オーナーウィンドウ」と「親ウィンドウ」って同じような感じだし
親からみたら子は所有してるわけだし

92 名前:デフォルトの名無しさん :2005/09/06(火) 13:51:04
オーナーと親の区別もつかんとは・・・

93 名前:デフォルトの名無しさん :2005/09/06(火) 13:55:17
親は所有者を兼ねるというか、
所有者が親である可能性(複雑な家庭事情)もあるとか

94 名前:デフォルトの名無しさん :2005/09/06(火) 14:02:17
そこで義母さん登場ですよ

95 名前:デフォルトの名無しさん :2005/09/06(火) 14:10:49
■結論■
>>85はDelphiかC++Builder使いなさい。

96 名前:デフォルトの名無しさん :2005/09/06(火) 14:46:00
>>89
解決しました。
メインウィンドウを親にしてみたら、
サブウィンドウのZオーダーが上に来てしまったので、
ダミーの透明親ウィンドウを作って回避しました。
助言、どうもありがとうございました。

97 名前:デフォルトの名無しさん :2005/09/06(火) 14:47:27
メモリの無駄だな

98 名前:デフォルトの名無しさん :2005/09/06(火) 15:15:48
メモリはこれから1Gがデフォになるからモウマンタイ。

99 名前:デフォルトの名無しさん :2005/09/06(火) 15:20:24
何もしない状況で指定した時間(たとえば30秒)が経過したら
自動バックアップを取るアプリを考えています。
が、MSDNによるとOnIdleはの第一引数lCountは
アイドル状態になって呼ばれるごとに増えるカウンタですよね?

このOnIdleが呼ばれる時間間隔はどのように取得できるのでしょうか?
それとも他の方法を考える必要があるのでしょうか?

ご助言頂けると幸いです。

100 名前:デフォルトの名無しさん :2005/09/06(火) 15:21:12
タイマー使えよ

101 名前:デフォルトの名無しさん :2005/09/06(火) 15:22:20
MFCスレ逝け

102 名前:99 :2005/09/06(火) 15:28:46
スレ違い失礼しました。
逝ってきます。

103 名前:デフォルトの名無しさん :2005/09/06(火) 23:01:29
今課題でチャットプログラム作っていて困っているんで教えてください。
メインとなるウインドウ(文字などが表示されるウインドウ)と
チャットを打つためのウインドウで構成されているんですが
チャットのほうがアクティブになるとメインウインドウのほうがアクティブではなくなってしまい
こまっています。チャットウインドウがアクティブの時でもメインウインドウがアクティブになっていてほしいのです。

なんかわかりづらい文章ですいませんが、よろしければ教えてください。

104 名前:デフォルトの名無しさん :2005/09/06(火) 23:43:56
両方アクティブってできんの?
常に前面に出すのじゃだめ?

あと質問
AddIPAddressってのあるけどSetしたいときはどうすんの?

105 名前:デフォルトの名無しさん :2005/09/06(火) 23:51:05
Releaseで実行ファイルを作って動作を確かめると
プログラムが落ちてしまいます。

落ちるのは、リッチエディットを使った時なのですが、
Releaseするときは、使用しているライブラリriched32.dllなどは
用意しないといけないのでしょうか。

106 名前:デフォルトの名無しさん :2005/09/06(火) 23:59:04
>>105
そんなことないから安心してデバッグしろ。

107 名前:デフォルトの名無しさん :2005/09/07(水) 00:36:06
>>103
そのメインウィンドウが非アクティブで困る事って何?

108 名前:デフォルトの名無しさん :2005/09/07(水) 06:02:52
自前のウインドウからコンソール画面を出さずにコンソールアプリを起動させて
その出力結果などを自前のウインドウ内で表示(Visual Studioの下の方に出るみたいな形)
させるには、どういうアプローチで取り組めば良いのでしょうか?
検索をするにも何がキーワードとなるのかが分かりません。

109 名前:デフォルトの名無しさん :2005/09/07(水) 06:20:38
>>108
子プロセスの標準出力を横取りしたい場合
 パイプ:CreatePipe()

子プロセスのコンソールアプリを、コンソールなしで実行したい。
 CreateProcess()について調べる。
 STARTUP構造体のwShowWindowあたりかな。
 9x系サポートしないならdwCreationFlagsもありかと思うけど。

110 名前:デフォルトの名無しさん :2005/09/07(水) 06:29:07
wShowWindowで消すと見えないコンソールウィンドウが残って
どんどんリソースが減ってく危険がある

111 名前:109 :2005/09/07(水) 06:34:55
それってコンソールアプリが終了しなかった場合?

あと訂正

×STARTUP構造体
○STARTUPINFO構造体

112 名前:デフォルトの名無しさん :2005/09/07(水) 07:24:25
コンソールを表示させないといえば、DETACHED_PROCESSだろ。
2k以上ならCREATE_NO_WINDOWもあるけどな。

113 名前:105 :2005/09/07(水) 08:23:23
>>106
ありがとうございます。

解決しました。
Debugではエラーチェックを通過しているところがありました。

114 名前:デフォルトの名無しさん :2005/09/07(水) 12:00:54
マウスカーソルの下にあるウィンドウの水平垂直スクロールバーのハンドルを取得したいですが、どのようなAPIを使えばよいでしょうか?


115 名前:デフォルトの名無しさん :2005/09/07(水) 12:03:18
垂直スクロールバーにハンドルがあるとは限りません
ハンドルがあったとしたら、逆に「どのウィンドウの」という結びつきはありません。

116 名前:114 :2005/09/07(水) 12:10:38
>>115
なるほどそうなのですか。
やりたいことは、マウスカーソルの下にあるウィンドウのスクロールバーを動かしたいということだったのですが、
こういうケースではどのようにするものなのでしょうか?


117 名前:デフォルトの名無しさん :2005/09/07(水) 12:17:48
>>116
ttp://forums.belution.com/ja/vc/000/324/98.shtml

118 名前:114 :2005/09/07(水) 12:31:11
>>117
ウィンドウハンドルさえ取れればメッセージを送ってなんとかなるだろうと思っていたのですが、甘いようですね。
とても参考になります。ありがとうございます。
ただ大変恐縮なのですが、それ以前に「マウスカーソルの下にあるウィンドウを取得」する方法がわからないのです・・・


119 名前:デフォルトの名無しさん :2005/09/07(水) 12:38:33
>>114
ChildWindowFromPoint
WindowFromPoint

120 名前:114 :2005/09/07(水) 13:06:59
>>119
ソレダ!
ありがとうございます!

121 名前:デフォルトの名無しさん :2005/09/07(水) 16:19:58
質問です。
自分のコンピューターが参加している
ワークグループ名またはドメイン名を
取得したいのですが、そのような情報を
取得するAPIはありますか?


122 名前:デフォルトの名無しさん :2005/09/07(水) 16:42:14
>>121
ttp://www.google.com/search?num=50&hl=ja&q=%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E5%90%8D+%E5%8F%96%E5%BE%97+API&lr=lang_ja


123 名前:デフォルトの名無しさん :2005/09/07(水) 20:16:22
こんばんは、よろしくお願いいたします。
ListView を2つwindow に引っ付けているのですが、
どちらのListViewが、選択されているかを知りたいのですが、
どうすれば分かるのでしょうか・
ListView_GetItemState(HWND,item,LVIS_FOCUSED)
でしらべても、両方のリストから、選択されてしまうのです。


124 名前:デフォルトの名無しさん :2005/09/07(水) 20:22:24
GetFocus();

125 名前:デフォルトの名無しさん :2005/09/07(水) 20:23:59
>>123
Form1.ActiveControl

126 名前:デフォルトの名無しさん :2005/09/07(水) 20:25:13
スマン 激しくスレ勘違い。
>>123 どっちも選択されてない場合もあるかもよ

127 名前:デフォルトの名無しさん :2005/09/07(水) 20:51:01
>>123です
>>124-126さんありがとうございます。
GetFocus()でできました。
他は、試してないのですが。

128 名前:デフォルトの名無しさん :2005/09/07(水) 20:53:20
他は試す必要なし
GetFocusで十分
>>125なんぞVB.NETじゃし

129 名前:デフォルトの名無しさん :2005/09/07(水) 21:20:15
>>128
Form1って名前から察するにVCLのTCustomForm.ActiveControlじゃね?

130 名前:デフォルトの名無しさん :2005/09/07(水) 21:36:45
じゃDelphiかよ。
Delphiスレに引きこもってろ。こっちにまで出てくんな

131 名前:デフォルトの名無しさん :2005/09/07(水) 21:38:14
MS謹製の開発環境を使ってきた俺にしたら
Form1って言われたら真っ先にVBが出てくら

あの糞VB、新規プロジェクト作ったら問答無用でForm1とかダサい名前付けやがんの

132 名前:デフォルトの名無しさん :2005/09/07(水) 21:41:53
DelphiなんてVBのパクリ
http://www.g.dendai.ac.jp/lecture/vbasic/img/vb02/fig07.gif

133 名前:デフォルトの名無しさん :2005/09/07(水) 21:43:11
よそでやれや

134 名前:デフォルトの名無しさん :2005/09/07(水) 22:04:14
質問です。
LineToで線をメモリDCに書き込んで表示しようと思ったんですが、
表示できないみたいなんです。仕様ですか?

135 名前:デフォルトの名無しさん :2005/09/07(水) 22:15:29
表示されないのなら、貴方のやり方が悪いだけです

136 名前:デフォルトの名無しさん :2005/09/07(水) 22:29:06
>>134
メモリDCに書くだけじゃ表示しない

137 名前:134 :2005/09/07(水) 22:43:15
スマソ。説明不足でした。
hBitmap = CreateCompatibleBitmap(hdc , 400 , 500);
hBuf = CreateCompatibleDC(hdc);
SelectObject(hBuf , hBitmap);
こんな感じでビットマップに描画してます。
なぜ描画されないんでしょうか?

138 名前:デフォルトの名無しさん :2005/09/07(水) 22:46:53
    /\___/ヽ
   /        :::\
  . | (○),  、(○)、 .:|
  |     |_,     .:::|
.   |    r―-、   .:::::::|   ・・・
   \  `ニニ´  .:::::/
   /`ー‐--‐‐―´\

139 名前:134 :2005/09/07(水) 22:52:19
ああ。もういいわ。
自分でもよく分からん様なってきた。
逝ってきます。

140 名前:デフォルトの名無しさん :2005/09/07(水) 22:59:22
(‥;)レスも読めんのか

141 名前:デフォルトの名無しさん :2005/09/07(水) 23:00:58
LineToはどこへ消えた

142 名前:デフォルトの名無しさん :2005/09/07(水) 23:02:23
>>111
9xでDOSプロセスを走らせたコンソール窓は
中のDOSプロセスが終了しててもキーを押すまで閉じなかったような。
もちろん隠してたら閉じられない

143 名前:デフォルトの名無しさん :2005/09/07(水) 23:05:34
>>142
DOS窓上でEXEを指定して実行したならそうだが、
EXEをダブルクリックで開いたDOS窓なら勝手に消える

144 名前:デフォルトの名無しさん :2005/09/07(水) 23:32:23
質問です。Windows XP で、IsWindowUnicode() で FALSE が返るような
コモンコントロール(リストビュー等)を作成する方法がありましたら教えてください。
一般的には RegisterClassExA() と RegisterClassExW() のどちらで
ウィンドウクラスを登録したかで決定されるということですが、システムが
用意しているウィンドウクラスについてはどのような扱いになっているのでしょう。
UNICODE が #define されていたら、自動的に CreateWindowExA() が呼ばれて、その結果
ANSI 版のコントロールが作成されると思っていたのですが、どうやらそうではないようで…。

145 名前:デフォルトの名無しさん :2005/09/07(水) 23:45:41
>>143
いや、コマンドプロンプトに戻るのを言ってるんじゃなくて
「この窓を閉じるには何かキーを押してください…」とか何とか出て
止まった記憶があるんだが。
.pifファイルの設定によるんだっけ

146 名前:デフォルトの名無しさん :2005/09/08(木) 00:04:24
>>144
無理なんじゃない?
NT系では全てUNICODEとして作られてると思うよ。

147 名前:146 :2005/09/08(木) 00:07:54
やっぱ無理だわ。
comctl32.dllのインポートテーブル見てみたけどRegisterClassExA自体無かった。

148 名前:144 :2005/09/08(木) 00:28:06
>>146 >>147
な、なるほど。そういうことですか…。
どうもありがとうございました。

149 名前:デフォルトの名無しさん :2005/09/08(木) 03:11:08
>>139
WM_PAINT で呼ばれたウインドウに対して、BeginPaint() を始めたとき
その HDC に、作っておいたビットマップの絵を移せばイイのでは。

BeginPaint() の度に LineTo() とかするのは鬱陶しいので、動画でない
なら予め絵を作っておいて、ウインドウの GWL_USERDATA に持たせておいて
WM_PAINT のときはその絵を取り出して移すと、作った絵であろうと読み込んだ
絵であろうと WM_PAINT の処理が簡単になる。

150 名前:デフォルトの名無しさん :2005/09/08(木) 10:59:42
>>147
バカ?
RegisterClassExはuser32だ・・・
そんでもってWもAも両方とも有るわ・・・

>>148
UNICODEのCreateWindowやら使ってやればIsWindowUnicodeはTRUEを返す
ANSIの関数使って作ればIsWindowUnicodeはFalseを返す

151 名前:デフォルトの名無しさん :2005/09/08(木) 11:16:14
>>150
すごく勘違いしてるぞ。


152 名前:デフォルトの名無しさん :2005/09/08(木) 11:17:45
Win32APIの日本語訳が充実すると一番うれしいのが
ボーランドとすれば、ボーランドがカネをだして
日本語訳をすすめればいいんだ
それくらいのカネはあるだろう

153 名前:デフォルトの名無しさん :2005/09/08(木) 11:50:19
DrawTextやTextOutで表示する文の途中で色を変えたいのですが
GetTextExtentPoint32を使って座標を調整しながら色ごとに分けた文を
順番に表示していくしかないですかね…?
例えば、"あいうえお"の"あい"を青、"う"を赤、"えお"を黒で表示したい時です。

154 名前:デフォルトの名無しさん :2005/09/08(木) 11:53:54
それしかないです

155 名前:デフォルトの名無しさん :2005/09/08(木) 11:57:06
そうですか。どうもありがとうございます。

156 名前:デフォルトの名無しさん :2005/09/08(木) 13:00:52
>>150 インポ

157 名前:デフォルトの名無しさん :2005/09/08(木) 16:20:17
APIからはちょっと外れるかと思うんですが、次の「URLDownloadToFileW」のコールバック処理について教えてください。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/apippc/html/ppc_urlmon3_cnxd.asp
コードは、次のような感じで実装しています。
URLDownloadToFileW( NULL , L"data.dat" , L"http://SAVE_URL" , 0 , NULL ) ;
一応これで機能は果たすんですが、エラーや回線の状況などを考慮してコールバックして状況を取得したいんですが、
その方法がわかりません。
サンプルなど、参考になりそうな情報がありましたら、教えてください。
よろしくお願いします。


158 名前:デフォルトの名無しさん :2005/09/08(木) 16:22:25
あぁ〜。もういいわ。
自分でもよく分からん様なってきた。
逝ってきます。


159 名前:デフォルトの名無しさん :2005/09/08(木) 16:41:47
>>157
COMインタフェイスの実装の仕方はわかる?


160 名前:デフォルトの名無しさん :2005/09/08(木) 16:46:00
>>157
・IBindStatusCallbackを実装する
・そいつのインスタンスをURLDownloadToFileの最後に引数に渡す
・ダウンロード経過に応じてIBindStatusCallback::OnProgressが呼ばれるので、そこで好きにする

161 名前:157 :2005/09/08(木) 17:14:13
159さん
160さん
レスありがとうございます。

>160
>・IBindStatusCallbackを実装する
>・そいつのインスタンスをURLDownloadToFileの最後に引数に渡す
>・ダウンロード経過に応じてIBindStatusCallback::OnProgressが呼ばれるので、そこで好きにする

「IBindStatusCallback」インスタンス化する方法がわかっていません。
とりあえず次のような感じで書いてみましたが・・・

#include <atlfile.h>
class CURLDownloadCB : public CBindStatusCallback<CURLDownloadCB>
{
}

compileしますと、次のようなエラー出てしまい先に進めずにいます。
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlctl.h(3403) : error C2039: '_ThreadModel' : 'CURLDownloadCB' のメンバではありません。
c:\prj\test.h(121) : 'CURLDownloadCB' の宣言を確認してください。
c:\prj\test.h(122) : コンパイルされたクラスのテンプレートのインスタンス化 'ATL::CBindStatusCallback<T>' の参照を確認してください
with
[
T=CURLDownloadCB
]
(このあとエラーが続きます)

恥ずかしながら、C++のテンプレートの理解が乏しく解決できずにいます。
参考になりそうなサンプルコードなどがどこかにありましたら紹介いただけないでしょうか。
よろしくお願いします。


162 名前:デフォルトの名無しさん :2005/09/08(木) 23:47:04
SHGetFileInfoで取得したシステムイメージリストの中から、マイコンピュータやデスクトップなどのアイコンのインデックスを取得したいです。
マジックナンバー的な定数とかありますか?
もし無い場合、取得する方法はありますか?
よろしくお願いしますえろいお兄さん。

163 名前:160 :2005/09/09(金) 19:07:28
>>161
私はATLを使わずに自前でIBindStatusCallbackを実装したクラスを作りました。
class CBindStatusCallbackImpl : public IBindStatusCallback {.…}
使うときはnewしたオブジェクトをAPIに渡すだけです。

ATLのCBindStatusCallbackを使ったサンプルであればMSDNにあるようです。
私は使ったことがありませんが、一度見てみてはどうでしょうか。

ASYNC サンプル : データの非同期ダウンロード
ttp://www.microsoft.com/japan/msdn/library/ja/vcsample/html/_sample_atl_ASYNC.asp?frame=true

164 名前:デフォルトの名無しさん :2005/09/09(金) 21:29:41
>>157
http://home.inreach.com/mdunn/code/URLDownload/URLDownload.html

165 名前:デフォルトの名無しさん :2005/09/10(土) 13:23:34
SetWindowsHookExでコンソールアプリがフックできないんですけど????
注意点とかあれば教えてください。

166 名前:デフォルトの名無しさん :2005/09/10(土) 13:28:08
フックの仕方が悪いだけじゃろ

167 名前:名無しさん@そうだ選挙に行こう :2005/09/10(土) 17:35:28
>>165
たしかスレッド単位でフックしたと思ったから理論上はコンソールアプリにでもフックできる…はずだが
キーボードとかマウスメッセージなんてのをフックしようとしてないだろうな
そもそも単なるコンソールアプリだけであればメッセージそのものが無関係というか…

あと、SetWindowsHookExするのはDLLですよってのは大丈夫だな、きっと。


168 名前:名無しさん@そうだ選挙に行こう :2005/09/10(土) 18:48:11
>>167
もちろんDLLを作ってる。
コンソールアプリでなければフックできてる。

169 名前:名無しさん@そうだ選挙に行こう :2005/09/10(土) 19:28:09
ウィンドウの外にマウスカーソルが出たとき、
ドラッグ中だったらそれを解除することがやりたいのですが
なにかいい方法はありませんか。


170 名前:165 :2005/09/10(土) 19:57:26
そーすうp
http://with2ch.net/up/data/1126349655.zip

GetProcAddressをAPIフックします。
GetProcAddressが呼ばれたときにOutputDebugStringで出力するだけのものです。
実行すると、タスクトレイに入り、左クリックでメニューを出して終了するまで常駐し続けます。
しかし、コンソールアプリには効果がありません。
どうにかできませんかね。

171 名前:名無しさん@そうだ選挙に行こう :2005/09/10(土) 23:27:29
>>168
user32.dllを使わないプロセスはSetWindowsHookExやAppInit_DLLsでは
フックできません。CreateRemoteThreadでどうぞ

172 名前:名無しさん@そうだ選挙に行こう :2005/09/10(土) 23:29:24
>>169
ドラッグ開始時にSetCaptureすればその後のマウスメッセージはすべて
キャプチャしたウィンドウに来るのでWM_MOUSEMOVEでウィンドウ外に出たかどうか
判定できます。

173 名前:165 :2005/09/11(日) 00:29:37
>>171
WindowsMEで使う予定です。
CreateRemoteThreadが使えません。

WriteProcessMemoryでターゲットを書き換えて、
LoadLibraryでuser32.dllをロードさせた後ならSetWindowsHookEx
でフックできるでしょうか。

174 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 00:46:23
>>173
> WindowsMEで使う予定です。
じゃああとはDebugActiveProcessくらいしかないなあ。
デバッガを切り離せないからDebugActiveProcessはダメなら
コンソールプログラムをフックできる移植性のある公開された方法はないと思う。
> LoadLibraryでuser32.dllをロードさせた後なら
どうやるつもりなのか知らんけどuser32.dllをロードさせられるんだったら
そこで直接ターゲットのDLLをロードしたほうが早いんじゃない?

175 名前:デフォルトの名無しさん :2005/09/11(日) 06:24:46
質問です。
wavを鳴らそうと思ったのですが、再生した瞬間だけがくっと処理落ち(?)します。
mciSendCommand, WaveOut〜, PlaySoundをそれぞれ試してみたのですが、同じように処理落ちしました。
またマルチスレッドも使ってみましたが、やはり処理落ちしました。
試しにHSPで似たようなことをすると、ちゃんと処理落ちせずに再生できるようなので環境の問題ではないかと思うのですが、
具体的にどうしたら処理落ち回避できるのか見当もつかず途方にくれているしだいです。
処理落ちを回避するにはどうしたらいいでしょうか? よろしくお願いします。

176 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 06:56:45
>>172

>WM_MOUSEMOVEでウィンドウ外に出たかどうか 判定
SetCapture()の後、WM_MOUSEMOVE中にPtInRect()を使ったらできました。
ありがとうございます。

WM_MOUSEMOVEに色々処理を書くと動作が重くなったり
CPUの使用率が上がってしまうと思うんですが
これはしょうがないんでしょうか。


177 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 07:59:05
WM_MOUSEMOVEに書いたらとか関係無いから

178 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 09:29:51
>>175
SND_MEMORYフラグ立ててやれば処理落ちせんと思うが‥‥

179 名前:178 :2005/09/11(日) 09:32:59
VCL混じりのコードでいえばこんな感じな

void __fastcall TForm1::PlayResourceSound(const AnsiString& name)
{
//TODO: この下にコードを追加してください
TResourceStream* resource = new TResourceStream(reinterpret_cast<int>(HInstance), name.c_str(), "WAVE");
sndPlaySound(reinterpret_cast<char*>(resource->Memory), SND_MEMORY | SND_SYNC);
delete resource;
}


180 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 09:48:08
>>179
あらかじめTMemoryStreamに読み込んでおいたらどうなるの?

181 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 10:00:45
GetWindowText()であるウィンドウの文字列を受け取ることができますが、
文字列を受け取らずに、文字の長さだけ受け取りたい場合のapiはありますか?

182 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 10:08:44
全然探してないだろ
MSDNでその1つ2つ下にあるAPIが見えませんか?

183 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 11:35:06
>>180
TResourceStreamもTMemoryStreamもTCustomMemoryStreamの派生クラスだろうが。
MemoryプロパティはTCustomMemoryStreamのメンバだし。


184 名前:175 :2005/09/11(日) 12:55:32
sndPlaySound(lpSound, SND_MEMORY | SND_ASYNC);
SND_MEMORY | SND_SYNC
SND_MEMORY | SND_ASYNC | SND_NOSTOP
SND_MEMORY | SND_SYNC | SND_NOSTOP
とか多少いじくってみましたが変化なしでした。
ただSND_MEMORY | SND_ASYNC | SND_LOOPで最初に一回だけ再生してやると
でれれれれれれれって感じでスムーズに連続再生されます。

もしかしてPlaySoundの連続使用は拙かったでしょうか?

185 名前:175 :2005/09/11(日) 13:30:26
VC6.0なのですがreleaseでF5キーでデバッグ実行をしていたのがまずかったようで、
ctrl+F5で普通に実行するとがくがくすることもなく綺麗に再生されました。
うーん。

大変お手数をかけて申し訳ありませんでしたorz
ちなみにdebugモードで実行すると処理落ちどころか目も当てられな

186 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 13:32:17
    _, ._
  ( ゚ Д゚)   ガシャ
  ( つ O. __
  と_)_) (__()、;.o:。
          ゚*・:.。

187 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 15:34:34
        /つ_∧
  /つ_,∧ 〈( ゚д゚)
  |( ゚д゚) ヽ ⊂ニ) こりゃひどい
  ヽ__と/ ̄ ̄ ̄/ |
   ̄\/___/ ̄ ̄


188 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 16:59:51
システムで設定されている警告音を鳴らすAPIってあるんでしょうか?
コントロールパネルのサウンドで設定している「メッセージ(警告)」とかのアレです。

189 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 17:02:21
MessageBeep

190 名前:188 :2005/09/11(日) 17:05:37
>>189
どうもありがとう

191 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 19:15:00
VS.NET2003、リソース関係の質問なのですが、
IDR_IMAGE1 IMAGE "p1.pic"
で組み込んだリソースにアクセスしようと思い
FindResource(hInstance, TEXT("IDR_IMAGE1"), TEXT("IMAGE"));
と書いたのですが NULL が返って来てしまいました

その後、試行錯誤で
第1引数を hInstance -> NULL に
第2引数を TEXT("IDR_IMAGE1") -> MAKEINTRESOURCE(IDR_IMAGE1)
第3引数を TEXT("IMAGE") -> RT_RCDATA
としたのですが、未だ有効なリソースハンドルを取得できないでいます
実行ファイルのサイズからは、p1.pic は組み込まれているとは思うのですが、何か他に必要な事柄があるのでしょうか?

あと VS.NET2003 は jpg をリソースの中に入れようとすると強制的に 256 色 BMP に変換するのがウザイです

192 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 19:43:57
.picってなんだ?


193 名前:191 :2005/09/11(日) 19:55:08
jpg で入れると 256 色 BMP に変換されてしまうんで、適当な拡張子に変えて回避したんです

194 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 20:01:07
TEXT()じゃなくて _TEXT() じゃなかったか?

195 名前:191 :2005/09/11(日) 20:05:50
TEXT の筈。TEXTA(quote) が L##quote で TEXTW(quote) が quote に置換されるマクロ。
文字列直接入れてる解説サイトもあったんで、これが直接の原因ではないとは思うんですが……

……ソース UP した方が良いですか?

196 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 20:17:29
IDR_IMAGE1がresource.hで#defineされてるんだろ

197 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 20:21:11
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_generic.2d.text_mappings_in_tchar..h.asp

        どちらも定義無し _MBCS      _UNICODE
_TCHAR      char      char        wchar_t
_TINT        int       int         wint_t
_TSCHAR     signed char  signed char   wchar_t
_TUCHAR     unsigned char unsigned char  wchar_t
_TXCHAR     char       unsigned char wchar_t
_T または _TEXT 影響なし    影響なし     L(次の文字または文字列を対応する Unicode に変換する)


OK?

198 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 20:25:13
>>193
これじゃね?
拡張子変えてもファイルの内容が変わるわけじゃないのはわかってるよね?

199 名前:191 :2005/09/11(日) 20:28:44
>>197
ttp://66.102.7.104/search?q=cache:j-h9rzifXsUJ:www2.ocn.ne.jp/~cbmaho/homepage/vc/Help/WINDOWSH.htm+%22%23define+TEXT(quote)%22&hl=ja&inlang=ja
大丈夫。だとおもう。

>>198
だから .jpg でリソースのインポートをすると bmp に変換されちゃうんだって
任意のファイル形式を入れられるんだから、ファイル名を変えても動作しなくちゃおかしい筈

200 名前:191 :2005/09/11(日) 20:35:14
>>195
ごめん。TEXTA と TEXW が逆だった……ってかもしかしたら直接 _TEXT を定義してたかも知んないけど

201 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 20:43:34
とりあえず、自身のリソース内にあるのなら、第一引数は自分のHINSTANCE

FindResource(hInstance, TEXT("IDR_IMAGE1"), TEXT("IMAGE"));
これを
FindResource(hInstance, TEXT("IDR_IMAGE1"), RT_RCDATA);
でやって見てくれる?

202 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 21:17:16
RT_BITMAPでもだめ?

203 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 21:18:37
複数のディレクトリを監視して、どちらかに指定のファイルが生成されたら・・・ってのをやりたいんですが、どうすればいいでしょうか。
ReadDirectoryChangesW, FindFirstChangeNotification + WaitForMultipleObjects など見てみましたが、どうも複数ディレクトリに指定したファイルを・・・には向かないような感じです。

FindFirstFile, FindNextFile をぐるんぐるんまわすのが楽そうなんですが、これだと処理的に無駄が増えてしまうんでしょうか?
この場合、検索にワイルドカードは使用しません。

204 名前:191 :2005/09/11(日) 21:18:50
だめですた orz

ソース上げてみます
ttp://www2.ranobe.com/test/src/up2724.zip.html

205 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 21:25:01
>>203
>どうも複数ディレクトリに指定したファイルを・・・には向かないような感じです。

そう感じた理由は?

206 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 21:33:24
あ・・・すみません、シングルスレッドでやってるので、
ReadDirectoryChangesW の場合片方のディレクトリしか監視できず、
FindFirstChangeNotification の場合ファイルが見つかった後また別のファイルを監視したい時に間が生じるのではないかと。
できればスレッド一つで済ましたいんですが、スレッド増やしたほうが現実的でしょうか。

207 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 21:40:25
ttp://nienie.com/~masapico/api_ReadDirectoryChangesW.html
見る限りでは、スレッド1つでも平気なような気がするけど

208 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 22:55:00
>>204
HRSRC hImgRc = FindResource(NULL, MAKEINTRESOURCE(IDR_IMAGE1), "IMAGE");
でやってみな?

209 名前:名無しさん@そうだ選挙に行こう :2005/09/11(日) 23:03:01
>>208
thx。やっと有効なハンドルが取得できました m(_ _)m

"IDR_IMAGE1" じゃ駄目だったのか……
ちなみに "IMAGE" を RT_RCDATA や RT_BITMAP に変えたらアウトでした
相変わらず挙動が不明ですな orz

210 名前:デフォルトの名無しさん :2005/09/12(月) 02:10:59
質問です。
VB6でメモリ上にテキストを描画してそれをフォーム上にコピーしてるんですが
ビットマップ作成時のサイズを設定するためにGetTextExtentPoint32を行うと
フォーム上に表示されたテキストにアンチエイリアスがかかりません。
GetTextExtentPoint32を行わないとアンチエイリアスがかかります。
なぜなんでしょうか?

hMemDC = CreateCompatibleDC(Form1.hdc)
SetBkMode hMemDC, OPAQUE
SetBkColor hMemDC, RGB(255, 0, 0)
SetTextColor hMemDC, RGB(255, 255, 0)
hFont = CreateFont(48, 0, 0, 0, _
             FW_NORMAL, 0, 0, 0, _
             DEFAULT_CHARSET, _
             OUT_DEFAULT_PRECIS, _
             CLIP_DEFAULT_PRECIS, _
             ANTIALIASED_QUALITY, _
             DEFAULT_PITCH Or FF_DONTCARE, _
             "MS Pゴシック")
SelectObject hMemDC, hFont
GetTextExtentPoint32 hMemDC, txt, LenB(txt), udtSIZE
hBitmap = CreateCompatibleBitmap(Form1.hdc, udtSIZE.cz, udtSIZE.cy)
SelectObject hMemDC, hBitmap
TextOut hMemDC, 0, 0, txt, LenB(StrConv(txt, vbFromUnicode))
BitBlt Form1.hdc, 0, 0, udtSIZE.cx, udtSIZE.cy, hMemDC, 0, 0, SRCCOPY

211 名前:デフォルトの名無しさん :2005/09/12(月) 02:56:05
textやRichEditに表示されている任意サイズのフォントの高さを得るにはどうすれば良いでしょうか?

212 名前:デフォルトの名無しさん :2005/09/12(月) 03:45:12
GetTextMetrics

213 名前:デフォルトの名無しさん :2005/09/12(月) 06:51:43
>>209
不明じゃないだろ
TYPE IMAGEのリソースとして取り込んでるんだから、
RCDATAやらBITMAPやら他のタイプ指定してもダメなんは当たり前だよ

ちゃんとIDR_IMAGE1で登録してるのに、名前指定で取れないのが不思議だが
まぁ、文字列での指定より整数識別子での指定を推奨してるし、いいんじゃね?

214 名前:デフォルトの名無しさん :2005/09/12(月) 20:41:38
GetTextMetricsはフォントを変更するとデータが成城じゃなくなるからダメですた。

RichTextで行間変えるにはどーすればいいんですかね

215 名前:デフォルトの名無しさん :2005/09/12(月) 20:58:57
PARAFORMAT2

216 名前:デフォルトの名無しさん :2005/09/12(月) 21:17:59
>210
よくわからないが、GetTextExtentPoint32を無効にしたときの
コードを出せ、といいたい。

217 名前:デフォルトの名無しさん :2005/09/12(月) 22:06:10
>>216
無効にしたときのコードは、
GetTextExtentPoint32をコメントにして
CreateCompatibleBitmapの第2、3引数に
数値を直接入れてやりました。

218 名前:デフォルトの名無しさん :2005/09/13(火) 02:18:08
拡張子に関連付けられたアイコンのファイル名とインデックスを取得するにはどうすればいいでしょうか?

219 名前:デフォルトの名無しさん :2005/09/13(火) 04:44:06
・メモリ使用量
・メモリ使用量デルタ
・最大メモリ使用量
・ページフォルト
・ページフォルトデルタ
・仮想メモリサイズ
・ページプール
・非ページプール

タスクマネージャにて見られる、これらの項目について解説してる文書などはありますか?

220 名前:デフォルトの名無しさん :2005/09/13(火) 08:15:36
http://www.microsoft.com/Japan/Terminology/query.asp?ui=L

221 名前:デフォルトの名無しさん :2005/09/13(火) 08:54:59
>>218
SHGetFileInfo

222 名前:デフォルトの名無しさん :2005/09/13(火) 15:46:41
USB仮想COMポートをハブ経由でPCに接続して、CreateFileでOpenすると
8割方エラーになり、最悪ハング(フリーズ)します。
ハブ接続故にCOMポートからのレスポンスに遅れがある為?ではないかと
思うのですが、何か好い解決策はありませんか?

ちなみに、ハブ無しでPCに直接接続した場合はエラーしません。
(あたりまえですが。。。)

223 名前:デフォルトの名無しさん :2005/09/13(火) 16:16:21
ハブ入れても動くと思うけどなー
ハブかそのデバイスがなんかおかしいのかね・・・

ハブを変えてみるとか、
バスパワーハブなら、セルフパワーにしてみるとかで、様子は変わらない?

224 名前:218 :2005/09/13(火) 16:22:15
>>221
SHGetFileInfo('C:\Hoge.txt', 0, sfi, SizeOf(sfi), SHGFI_ICONLOCATION);
としても、sfi.szDisplayName は空(szDisplayName[0] が NULL) でした。
与えるパスがフォルダの場合は成功するのですが・・・

225 名前:デフォルトの名無しさん :2005/09/13(火) 16:27:45
>>222
そのハブが悪い。別ので試してみ?

226 名前:デフォルトの名無しさん :2005/09/13(火) 16:49:18
>>223さん
>>225さん

レス、ありがとうございますm(__)m

使っているハブはELECOM社のU2H-G4SSVと、LOAS社のUH-284Wで、
ELECOMの方が若干エラーする確率が低いような気がしますが、
どちらも基本的には同じ状況です。
また、どちらともセルフパワーで使用しており電流容量的には
問題無しです。

何か他に試してみることありますか?

227 名前:デフォルトの名無しさん :2005/09/13(火) 17:15:51
OSが98/ME使ってるなら、2k/XPにしてみるとか
メーカーのサイトに、新しいドライバないかとか

テキトーなことしか言えないなー、スマソ

228 名前:デフォルトの名無しさん :2005/09/13(火) 18:47:07
ListViewの拡張スタイルで表示した罫線の色は変えれませんか?

ListView_SetExtendedListViewStyleで
拡張スタイルにLVS_EX_GRIDLINESです

229 名前:デフォルトの名無しさん :2005/09/13(火) 18:48:22
BITMAPリソースを読み込むにはLoadBitmapがありますが
JPGを読み込むにはどうすればよいでしょうか?

230 名前:デフォルトの名無しさん :2005/09/13(火) 18:50:31
ペゾルド本について質問させてください。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/922.txt
上の本に載っていたソースを忠実に打ったのですが、WM_PAINTメッセージの処理を無限に行ってしまいます。
何度も見ながらチェックしていますがどこを打ち間違えたのかさっぱりわかりません....。
どなたかどこが異なっているか指摘をお願いします。

231 名前:デフォルトの名無しさん :2005/09/13(火) 18:54:47
打つから間違うんだ。
コピーしろ。

232 名前:デフォルトの名無しさん :2005/09/13(火) 18:59:20
caseのdefaultが抜けてる

233 名前:デフォルトの名無しさん :2005/09/13(火) 19:09:52
>>229
OleLoadPictureとかGDI+とか

234 名前:デフォルトの名無しさん :2005/09/13(火) 19:13:02
>>230
オリジナルとかなり違ってるな
メッセージループの間違いが致命的

235 名前:デフォルトの名無しさん :2005/09/13(火) 19:31:54
>>229
TResourceStream* res = new TResourceStream(HInstance, "JpegImg1", "RT_RCDATA");
TJpegImage::LoadFromStream(res);

236 名前:230 :2005/09/13(火) 19:36:09
かなり根本的なミスをしていました....。
DispatchMessageが抜けていました。
ありがとうございました。

237 名前:デフォルトの名無しさん :2005/09/13(火) 22:43:07
日本語入力するときとかって、
最初にひらがながわらわら出てきて、
スペースを押して、変換を確定しますよね。
私が知りたいのは、その変換を確定したこ
とを知らせるWM_XXXです。

MSDNで調べているのですが、なかなか知
りたい情報にたどり着けません。

なにか検索のヒントとなる単語を教えていただけませんか?

238 名前:デフォルトの名無しさん :2005/09/13(火) 22:46:12
WM_IME_XXX

239 名前:デフォルトの名無しさん :2005/09/13(火) 22:47:39
確定するとWM_CHARがわらわらとやってきます。

240 名前:デフォルトの名無しさん :2005/09/13(火) 23:07:46
WM_IME_COMPOSITION
WM_IME_NOTIFY
WM_IME_ENDCOMPOSITION
WM_IME_SETCONTEXT

とりあえず、こんだけ見つけてきました。
これから調べてきます。
ヒントありがとうございました。

241 名前:デフォルトの名無しさん :2005/09/13(火) 23:22:34
SetFilePointer( hFile, 0, NULL, FILE_END ) とやると、ファイルポインタはファイルの最後に
移動する、という理解でいいんだよね?(実際、やってみると、そうなっているようだし)

いや、MSDNには
>Note You can use SetFilePointer to determine the length of a file. To do this,
>use FILE_END for dwMoveMethod and seek to location zero.
とあって、「seek to location zero」(←先頭に移動???)ってのが気になって...

242 名前:デフォルトの名無しさん :2005/09/13(火) 23:35:35
ちゃんと訳して理解しろ。

243 名前:デフォルトの名無しさん :2005/09/13(火) 23:40:41
ちゃんと訳すと、どうなるん?

244 名前:デフォルトの名無しさん :2005/09/13(火) 23:44:26
ちゃんと訳さないとこうなる。

MSDNの日本語訳
>SetFilePointer 関数を使って、ファイルの長さを判断することもできます。
>この場合、dwMoveMethod パラメータで FILE_END を指定し、
>位置 0(ファイルの先頭)への移動を行います。

FILE_ENDの0位置だから、ファイルの最後が正しいと思われ。

245 名前:デフォルトの名無しさん :2005/09/13(火) 23:45:02
お前が見当違いな注釈に悩んでいるのがわかる。

246 名前:デフォルトの名無しさん :2005/09/13(火) 23:56:39
脳みそに焼き付けろですぅ おまえはそのファイルの長さを測定するするため、SetFilePointerを使うことが可能なのですーぅ
dwMoveMethodにFILE_ENDを指定、そしたら位置0へシークするですぅ

キモイ訳を考えてるうちに先を越されるは、MSDN日本語版に掲載されてるわで散々ですわ
http://www.microsoft.com/japan/msdn/library/ja/jpfileio/html/_win32_setfilepointer.asp

247 名前:デフォルトの名無しさん :2005/09/13(火) 23:59:23
修行が足りないな

248 名前:デフォルトの名無しさん :2005/09/14(水) 00:00:24
うーむ、【ファイルの先頭】 の注釈は、どこから湧いてきたんだろ('A`)

249 名前:デフォルトの名無しさん :2005/09/14(水) 00:03:08
>>248
訳した人が>>241と同レベルだったんじゃね?

250 名前:デフォルトの名無しさん :2005/09/14(水) 00:04:58
日本語版でおかしな訳が乗るのは、もう変わることのない仕様です。

何を訳しているのか知らない人に外注出してんだろーねー


■過去ログ置き場に戻る■ 1- 次250 最新50
DAT2HTML 0.33f Converted.