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


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

Win32API質問箱 Build34
501 名前:デフォルトの名無しさん :2005/08/18(木) 01:08:56
IME系のメッセージで質問なのですが、
日本語変換が終わった瞬間に「WM_IME_ENDCOMPOSITION」が来て
そのあと変換された文字が連続して「WM_IME_CHAR」で流れて来るみたいですが、
このWM_IME_CHARが文字数分すべて流れ終わった瞬間を知りたいのですが、
どうしたらよいでしょうか?

502 名前:デフォルトの名無しさん :2005/08/18(木) 04:01:18
すいません、もう一つ質問させてください。
IMEで漢字変換確定後に流れてきた「WM_IME_CHAR」のWPARAMの文字コードを
wstring型の文字列に積んでいくにはどうしたらいいでしょうか。
型変換の方法がわからないので「wstr+=wparam」のように
そのまま積んでみたのですが文字化けして全然ダメでした。

503 名前:デフォルトの名無しさん :2005/08/18(木) 07:57:30
>>496
TerminateProcessを普通は使う
ExitProcessを使いたいなら対象のアプリにもぐりこんでやれば使えるが・・・

504 名前:デフォルトの名無しさん :2005/08/18(木) 08:34:05
>>496
プロセスの終わらせ方のバリエーションとしては、
プロセスをジョブに割り当てて、クオータみたいなもので管理して、
終了させることはできたような気がする。

505 名前:デフォルトの名無しさん :2005/08/18(木) 11:51:49
コンソールアプリで「簡易編集モード」をオフにする方法ありますか?

506 名前:デフォルトの名無しさん :2005/08/18(木) 11:57:22
>>505
「簡易編集モード」を含めたコンソールウィンドウ設定プロファイルは、キャプション文字列ごとにレジストリに保存される。
CreateProcessの引数にコンソールウィンドウのキャプション文字列を指定する項目がある。
・・・あとは判るな?

507 名前:501-502 :2005/08/18(木) 14:01:04
自己解決しました。

508 名前:デフォルトの名無しさん :2005/08/18(木) 15:42:37
解決したなら解決方法うp夜路死苦

509 名前:デフォルトの名無しさん :2005/08/18(木) 16:28:08
>>508
なんで?

510 名前:デフォルトの名無しさん :2005/08/18(木) 16:41:19
同じ疑問持ってる人がこれ見たとき解決方法が書いてないと困るだろ?
あと、只でアドバイス貰ってるんだから、せめてその成果くらい提示するのがマナーってもんだろ。

511 名前:デフォルトの名無しさん :2005/08/18(木) 17:55:31
winsock2でsocketでエラーが出ますか?

512 名前:デフォルトの名無しさん :2005/08/18(木) 17:59:01
は?

513 名前:デフォルトの名無しさん :2005/08/18(木) 18:05:49
そりゃでるだろうな。
資源は有限だから。

514 名前:デフォルトの名無しさん :2005/08/18(木) 20:08:06
リッチエディットコントロールについて質問があります。

EM_LIMITTEXTでエディットの容量を3文字にして、
普通に入力すると3文字分でEN_MAXTEXTのメッセージを受け取れるんですが

SendMessage(hEdit, EM_REPLACESEL, 0, (LPARAM)"ABCDE");
という具合に3文字以上挿入した時エディットの上限を超えた
メッセージ(EN_ERRSPACEだと思うんですが)を
受け取りたいのですがうまくいきません。

考え方間違ってるんでしょうか。よろしくお願いします。

515 名前:デフォルトの名無しさん :2005/08/18(木) 20:16:47
うまくいかないとは?

516 名前:デフォルトの名無しさん :2005/08/18(木) 20:27:19
>>515
すみません。
メッセージを受け取って処理したいんですが。
メッセージが受け取れないってことです。




517 名前:デフォルトの名無しさん :2005/08/18(木) 21:57:04
EN_ERRSPACEはバッファの割当てに失敗した時に送られるのであって、LIMITTEXTを越えたら送られるのでは無いはず

518 名前:デフォルトの名無しさん :2005/08/18(木) 23:12:26
>>502
MSDNに思い切り書いてある。

519 名前:ya-su :2005/08/18(木) 23:36:11
Getdibitsで、DIB_PAL_COLORSを最後の引数として、パレット番号を取得したいのですが、期待した値が返ってきません。
ReDim Pix(x, y) as byte に入れているのですが、
ペイント系ツールのパレットと違う値が入っています。
とりあえず、0から12の値が返っています。
そもそも、Getdibitsでパレット番号を取得できるのかということも、
ぐぐっても確認できません。
DIB_PAL_COLORSを最後の引数として返ってくるものは、
パレット番号なのでしょうか?
格納するReDim Pix(x, y) as byte が悪いのでしょうか?

520 名前:デフォルトの名無しさん :2005/08/18(木) 23:39:58
>>496
リモートスレッド

521 名前:デフォルトの名無しさん :2005/08/19(金) 00:31:22
MSNメッセンジャーのアイコンとか変更するAPIとかあったりします?

522 名前:デフォルトの名無しさん :2005/08/19(金) 00:49:38
あるわけねぇだろ

523 名前:デフォルトの名無しさん :2005/08/19(金) 04:51:14
>>404
>>405
>>407
>>409

524 名前:514 :2005/08/19(金) 11:00:44
>>517
LIMITTEXTを越えたら送られるメッセージとかあるんでしょうか。



525 名前:デフォルトの名無しさん :2005/08/19(金) 14:08:09
クリップボードにファイルのデータを転送し、エクスプローラなどで貼り付けを行えるようにしたいのですが、
その場合、SetClipboardData関数の第一引数にどれを使えばいいのかわかりません。
CF_TEXTなどは単に文字列を転送する場合のみに使用するから、ファイルのデータを転送したい場合は使わないんですよね?
第一引数を何にすればいいのか。ファイルのデータをどういうフォーマットで転送すればいいのか、
教えてください。

526 名前:デフォルトの名無しさん :2005/08/19(金) 14:23:37
詳しくは知らないけど、
クリップボードへのファイルのコピーって、
たんにショートカットをコピーしているだけじゃないのかな。

527 名前:デフォルトの名無しさん :2005/08/19(金) 14:43:13
エクスプローラでディレクトリにファイル送るんでしょ?
中身じゃなくてファイル名渡すべきじゃない。
それ以外のことがしたいの?

528 名前:デフォルトの名無しさん :2005/08/19(金) 14:49:44
>>527
SetClipboardData(CF_TEXT, ファイル名の文字列を格納したメモリオブジェクト);

↑で出来るってことですか?

529 名前:デフォルトの名無しさん :2005/08/19(金) 15:18:36
CF_HDROPじゃないかな

530 名前:デフォルトの名無しさん :2005/08/19(金) 15:20:09
クリップボードなんて数年さわってないのであてずっぽうだけど

531 名前:478 :2005/08/19(金) 15:37:06
>489
レスありがとうございます。

>>>478
>その方法じゃデスクトップは取れない
>あと、他のウィンドウのメッセージは何を取ろうとしてる?
>例えばWM_LBUTTONDOWNはクライアント領域じゃないと送られてこない
>非クライアント領域だったら別のメッセージが飛んでくる
>あと、リストビューとかもWM_LBUTTONじゃ取れない

具体的にやろうとしてることは、アプリのウインドウからマウスが外れた事を察知させようとしてます。
そこで、とりあずグローバルフックを掛けて流れてくるメッセージで使えそうなものを探そうと思ってました。
また何か情報ありましたよろしくお願いします。


532 名前:デフォルトの名無しさん :2005/08/19(金) 15:46:32
ActiveXでやりとりされる情報を解析したいんですが、ツールはありませんでしょうか?
やろうとしてる事はActiveXのメソッドに送られるパラメータや、プロパティーへ読み書きされる値などを見たいと思ってます。
よろしくお願いします。


533 名前:デフォルトの名無しさん :2005/08/19(金) 16:15:38
誰も答えてくれなかったのでもっかい質問

コンボボックスでスクロールバーが表示されるようにするにはどうすればいいんですか?
WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST
だと大きさをオーバーした項目はキーボードの↑↓を押してやらなければ見えません
CBS_DISABLENOSCROLLなどのスクロールのスタイルがあるということはスクロールバーって出ますよね?

534 名前:デフォルトの名無しさん :2005/08/19(金) 16:42:47
オマエいったいどうやってコンボボックス作ってんだ?


535 名前:デフォルトの名無しさん :2005/08/19(金) 16:53:46
>>531
WM_MOUSEMOVEでTrackMounseEvent使って
WM_MOUSELEAVE処理すればいいんじゃね?

536 名前:デフォルトの名無しさん :2005/08/19(金) 20:52:16
>>533
WS_VSCROLL

537 名前:デフォルトの名無しさん :2005/08/19(金) 20:56:36
>>519
MSDN読め。
> DIB_PAL_COLORS
> カラーテーブルは、現在の論理パレットへの 16 ビットのインデックスの配列です。


538 名前:デフォルトの名無しさん :2005/08/20(土) 00:23:02
>>532
同じインタフェイスとGUIDを持ったActiveX作ってハックする。

539 名前:デフォルトの名無しさん :2005/08/20(土) 00:45:01
>>532
使ったことないから当てずっぽうだけどOLESPY

540 名前:デフォルトの名無しさん :2005/08/20(土) 19:04:05
CardWirthというフリーのゲームがあるのですが、
DirectXは使っておらずエディターを使えば
綺麗なアニメーションのようなものも作れます。
より綺麗にちらつきのないアニメーションを作るには
ダブルバッファリングとかいう事が必要らしいのですが
DirectXを使わないと難しいのでしょうか?

541 名前:デフォルトの名無しさん :2005/08/20(土) 19:12:19
> CardWirth ダブルバッファリングに該当するページが見つかりませんでした。

スレ違いじゃね?

ダブルバッファリングってのは一つ一つウィンドウに描画せずに
一度裏で全部描いてからそれを一気にウィンドウに描画するって技術だから
DirectXとは直接関係ない

542 名前:デフォルトの名無しさん :2005/08/20(土) 19:46:07
>一度裏で全部描いてからそれを一気にウィンドウに描画するって技術だから
ここは大当たりだけど

>ダブルバッファリングってのは一つ一つウィンドウに描画せずに
ここは大外れ


正しくは、
最初から前面の画面に直接描画せずに、
一旦別の場所で全ての描画処理(合成など)をしてから、
最終的な結果の画像のみを前画面に描画する技法

543 名前:デフォルトの名無しさん :2005/08/20(土) 19:49:25
いや、そう言う意図で言ったんだが……ウィンドウって表現はまずかったか。言葉って難しいね。

544 名前:デフォルトの名無しさん :2005/08/20(土) 20:00:49
Win32 では致命的な言い間違え

545 名前:デフォルトの名無しさん :2005/08/20(土) 20:04:11
言葉が難しいのではない。言葉の使い方が拙いだけだ。

546 名前:デフォルトの名無しさん :2005/08/20(土) 20:24:03
いや、解釈の仕方が拙いだけだ

547 名前:デフォルトの名無しさん :2005/08/20(土) 20:26:36
( ^ω^)

548 名前:デフォルトの名無しさん :2005/08/20(土) 21:07:11
何が違うのかよくわからん

549 名前:デフォルトの名無しさん :2005/08/20(土) 21:18:45
>>540
(・ε・)HSPでも触ってくればぁ?

プラグイン開発用のドキュメント見とけばグラフィック周りの実装が分かりやすい仕様になってるから理解するにはいいかと。

550 名前:デフォルトの名無しさん :2005/08/20(土) 23:47:48
>>549
馬鹿にしやがって

551 名前:デフォルトの名無しさん :2005/08/21(日) 00:02:40
HSPを馬鹿にしやがって?

552 名前:デフォルトの名無しさん :2005/08/21(日) 01:09:08
>>551
そうだよ。

553 名前:デフォルトの名無しさん :2005/08/21(日) 06:20:05
特定のプログラムのみについてキーボードフックをするプログラムを作っているのですが、
そのために、特定のプログラムが生成されたことを監視したいのですが、

新たなウインドウが生成された場合にシステムからウインドウメッセージを受けとるようなことって出来るのでしょうか?
できるのであれば、ヒントになるキーワードを教えてください。

それとも、10秒おきぐらいに、自らFindWindowで特定のウインドウが起動されていないかチェックする必要があるのでしょうか?


554 名前:デフォルトの名無しさん :2005/08/21(日) 06:34:14
いや、君が今やろうとしているキーボードフックで使うのと
同じAPIで出来るんだけど…
フックタイプを隅から隅まで読んで見ると良い。

555 名前:553 :2005/08/21(日) 06:39:14
>>554
そっか。他のウインドウ生成もフックで監視できるんですね。ありがとうございました。

556 名前:デフォルトの名無しさん :2005/08/21(日) 09:27:49
ListCtrlをウィンドウサイズに合うようにMoveWindowをしているのですが、
右下のつまみでサイズ変更をする時に、ListCtrlの描画がちらつきます。

BackGroundをいったん消してから描画しているからなのでしょうが、
そのBackGroundの消去作業をしないようにするにはどうすればいいのでしょうか?
通常のRegisterClassExでウィンドウ登録をする場合だとWM_BKERASEを呼び出して、背景の消去をしないようにできますが、
一般的にコントロールはウィンドウプロシージャを持たないので、それを使えません。

557 名前:デフォルトの名無しさん :2005/08/21(日) 09:30:01
サブクラス化

558 名前:556 :2005/08/21(日) 11:03:45
>>557
さんきゅーーーー!

559 名前:デフォルトの名無しさん :2005/08/21(日) 11:45:50
どうやってサブクラス化するのですか?と来ると予想

560 名前:556 :2005/08/21(日) 11:56:20
もう来まへん来まへん
オナドロとそのサブクラを実装したかっただけです

午後から待ち合わせがあるのでグッバイ

またよろしくね。

561 名前:556 :2005/08/21(日) 12:00:44
りすドピュ〜してきます

562 名前:デフォルトの名無しさん :2005/08/21(日) 13:04:01
>>560
オナドロって言うとなんかやらしい。

563 名前:ya-su :2005/08/21(日) 16:49:42
その一文を読みましたが、「インデックスの」という表現が分かりません。
パレット番号のことではないとうことなのか、なんなのかが分かりません。
誰か分かりやすく説明してくれませんか?


>>519
MSDN読め。
> DIB_PAL_COLORS
> カラーテーブルは、現在の論理パレットへの 16 ビットのインデックスの配列です。

564 名前:デフォルトの名無しさん :2005/08/21(日) 19:02:10
>>563
まず「パレット番号」という言葉の意味を理解したほうがいい。

565 名前:デフォルトの名無しさん :2005/08/21(日) 20:33:53
つうか、仕事なら金払え

566 名前:デフォルトの名無しさん :2005/08/21(日) 23:57:21
こんばんは、よろしくお願いします。
メニューのボタンのENABLEDプロパティーを
FALSEに、変更したいのですが、
どうすればいいのでしょうか。

567 名前:デフォルトの名無しさん :2005/08/22(月) 00:06:18
EnableMenuItem

ちったぁ自分で調べてみやがれ

568 名前:デフォルトの名無しさん :2005/08/22(月) 01:19:36
MSDNめんどいもんな。
あんな糞資料で良質なプログラマーが育成されると思ってるのかぁ?

569 名前:デフォルトの名無しさん :2005/08/22(月) 01:52:56
プロパティならAPI関係ないじゃん

570 名前:デフォルトの名無しさん :2005/08/22(月) 01:58:11
Win9xとNT系の両方でBIOSの情報(シリアル、バージョン等)を取得するにはどうすればよかとですか?
ヒント下さい

571 名前:デフォルトの名無しさん :2005/08/22(月) 03:08:58
確かにMSDNの資料はひどい。
わからせよう、という気がない。

まあ、だから本が売れるわけだが。

572 名前:デフォルトの名無しさん :2005/08/22(月) 03:54:08
VC++とAPIだけでゲームを作ろうと思っています。
windowsゲームプログラミングを読み終わったのですが、
まだゲームを作るための知識は不十分に感じます。
そこで何か本を買おうと思っているんですが、何がオススメでしょうか?
今の所、プログラミングWindowsあたりにしようと思っています。
この本についての意見もお願いします。

573 名前:デフォルトの名無しさん :2005/08/22(月) 04:17:22
>>572
明らかにスレ違い

574 名前:デフォルトの名無しさん :2005/08/22(月) 07:31:05
>>572
ゲ製作技術
http://pc8.2ch.net/gamedev/

575 名前:デフォルトの名無しさん :2005/08/22(月) 09:39:42
列の幅を変更するListView_SetColumnWidthがありますが、
行の高さを変更するListView_???はありますか?

576 名前:デフォルトの名無しさん :2005/08/22(月) 12:10:19
spyが使いたくて、>>4のマイクロソフトのところから
Platform SDKをインストールしたんですが、spyがありませんでした。
Platform SDKにはspyはないのでしょうか?
当方、VB6の評価版でプログラムつくっているのでMSDNもありません。
c++かVisual Studio買わないとだめでしょうか?


577 名前:デフォルトの名無しさん :2005/08/22(月) 12:13:17
>>576
PSDKにはspyあったと思うけどなぁ。

サンプルソースをもう一度探してみ。

578 名前:デフォルトの名無しさん :2005/08/22(月) 12:14:34
ありません

579 名前:デフォルトの名無しさん :2005/08/22(月) 12:15:08
しまった。>578>575宛てでw

580 名前:デフォルトの名無しさん :2005/08/22(月) 13:11:41
任意のウィンドウに自分がクリックされたと思わせる方法ありますか?
SetForegroundWindow(hWnd);
SetFocus(hWnd);
SetCursorPos(mousex,mousey);
mousepos=mousex|(mousey<<16);
SendMessage(hWnd,WM_LBUTTONDOWN,mousepos);
SendMessage(hWnd,WM_LBUTTONUP,mousepos);
としてもクリックされたと認識してくれないので
お願いします



581 名前:デフォルトの名無しさん :2005/08/22(月) 13:21:42
>>580
私はこんなことやってた。
::PostMessage(m_hBtns[btnNo], WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(0, 0));
Sleep(1);
::PostMessage(m_hBtns[btnNo], WM_LBUTTONUP, 0, MAKELONG(0, 0));


582 名前:デフォルトの名無しさん :2005/08/22(月) 13:24:25
>>576
binディレクトリ内あたりにあるはずだけどなぁ‥‥まあ使いやすい物じゃないけどな。
って今入ってるPSDK見たら見あたらないorz

うちはWinspectorってフリーソフト使ってるけど



583 名前:575 :2005/08/22(月) 13:34:50
e?e???

ListViewって、行の高さを変えられないんですか?

・・・。
使えない。

584 名前:デフォルトの名無しさん :2005/08/22(月) 13:37:59
というかListViewの使い所じゃないってだけだろ

585 名前:デフォルトの名無しさん :2005/08/22(月) 13:44:48
>>583
変えられます。

586 名前:580 :2005/08/22(月) 13:46:41
>>581
あー認識してくれないです…
こういうのも試してみたんですけど
SendMessage(hWnd,WM_NCLBUTTONDOWN,(WPARAM)HTCLIENT,(LPARAM)(x|(y<<16)));
Sleep(1);
SendMessage(hWnd,WM_NCLBUTTONUP,(WPARAM)HTCLIENT,(LPARAM)(x|(y<<16)));

対象ウィンドウがdelphiだとだめとかあるんでしょうか

587 名前:デフォルトの名無しさん :2005/08/22(月) 13:49:19
>>586
実際にマウスをクリックしたときに、どんなメッセージが流れるか見てみたら?
>581もそれであたりをつけたし。

588 名前:デフォルトの名無しさん :2005/08/22(月) 14:03:40
タスクバーのツールチップを強制的にバルーンにしてみようと思って
Shell_TrayWndを親にもつtooltips_class32を探し出して、
そのウインドウスタイルにTTS_BALLOONをSetWindowLongAしました。
(WS_BORDERも消しました。)

バルーンにはなるんですがなぜか場所がかなり上によってしまいます。
これを修正する方法を御存知の方いらっしゃいませんか?
対象OSはXPでVisualStyleが適用されています。

589 名前:572 :2005/08/22(月) 15:03:29
>>573>>574
ゲーム製作のためだけに読むには適していないのか
などのAPI関連の書籍についての意見を伺いたかったのですが、
目的がゲームなだけでスレ違いでしょうか?
APIに関してはゲ製作板よりはこちらの方が詳しいと思ったのですが。

590 名前:デフォルトの名無しさん :2005/08/22(月) 15:11:14
本について質問するのはどうだろう。
それこそ、Advanced Windows嫁、という決まり文句になってしまうけど。

591 名前:デフォルトの名無しさん :2005/08/22(月) 15:14:20
>>580
使ったこと無いけどSendInputはどうだろうか?

592 名前:デフォルトの名無しさん :2005/08/22(月) 15:15:18
>>589
「VC++とAPIでゲームを作りたい」
こんな曖昧な情報でどう判断しろと。


まあ、マインスイーパーとかならどうにでもなるが‥‥

593 名前:580 :2005/08/22(月) 15:22:53
>>591
おー、こんなAPIがあったんですね!!!!!
あれ、、、MSDNにINPUT構造体の説明がない…



594 名前:デフォルトの名無しさん :2005/08/22(月) 15:27:09
MSDNの検索はホント引っかからなくなったな。
ttp://www.google.co.jp/search?hl=ja&c2coff=1&q=MSDN+INPUT+Structure&lr=

595 名前:デフォルトの名無しさん :2005/08/22(月) 15:28:28
>>580
あるいはmouse_eventを使うとか。

596 名前:デフォルトの名無しさん :2005/08/22(月) 15:29:39
>>593
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputstructures/input.asp
あるじゃねーか

597 名前:デフォルトの名無しさん :2005/08/22(月) 15:30:34
>>593
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/sendinput.asp

まず目次を同期させて、そのカテゴリのReference>Structuresに関連構造体の情報はある。
日本語版の場合は構造体の説明ページそのものがないから投げ捨てろ。

598 名前:デフォルトの名無しさん :2005/08/22(月) 15:30:57
>>595
mouse_eventがmousou_eventに見えなくもない。

599 名前:デフォルトの名無しさん :2005/08/22(月) 15:32:57
>>597
つーかSendInputの引数の説明のところにINPUTへのリンク張ってあるじゃん。

600 名前:デフォルトの名無しさん :2005/08/22(月) 15:35:31
しかしなんでmouse_eventとkeybd_eventはAPIの命名規則から外れてるんだろうな。

601 名前:597 :2005/08/22(月) 15:36:14
>>599
( ノ∀`)アチャー
PlatformSDKとかだとParametersの説明にもリンク張られてるからWeb版の下の関連項目に気付かなかったわ

ついでにURLがSendInputだし‥‥

     ||
     ||  バッ
   ∧||∧
  (∩ ⌒ヽノ
   \  _⊃ アラヨット
    ∪  Σ
        ≡| ̄ ̄ ̄ ̄|


602 名前:580 :2005/08/22(月) 15:43:36
>>594-601
みなさんありがとうございました できました!!
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,NULL);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,NULL);

SendInputのほう試してみました
同じ悩みを抱えてたひとどうぞ
static const DWORD click[] = {
 INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_LEFTDOWN, 0, 0,
 INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_LEFTUP, 0, 0,
};
SendInput(2,click,sizeof(INPUT));



603 名前:デフォルトの名無しさん :2005/08/22(月) 17:11:15
解決手段の見当がつかず困っています。。

USBのキャプチャユニットとそれに接続するCCDカメラがあります。
USBキャプチャにはドライバとキャプチャソフトが付属しており、
それを使うとGUIから任意のタイミングで画像を取り込むことがで
きます。

今回はCCDカメラに映った映像をコマンドラインから操作して画像
を取り込む必要があります。

※イメージとしてはCygwinなどでコマンドを打てばそのタイミングで
  画像をフォルダに保存するといったようなことをしたい。

要はGUIソフトの機能をCUIで実現したいのですが、どのような方法
で取り組めばよいのでしょうか。

環境はWin2000で実現するのに使う言語はなんでもいいです。


604 名前:デフォルトの名無しさん :2005/08/22(月) 17:11:55
最近WIN32APIを学び始めました。
マウス操作をmouse_event関数で扱いたいのですが、
任意の場所のマウス座標を取得して、他の場所にマウスを移動させても
キーを押せば元に戻ってくるような、プログラムはどうすればできるんでしょうか?
座標取得にGetCursorPosを使うんでしょうか?座標の値が違うんですが・・・

605 名前:デフォルトの名無しさん :2005/08/22(月) 17:14:20
>>603
DirectShowとかでやるんじゃないかなあ

606 名前:デフォルトの名無しさん :2005/08/22(月) 17:17:48
>>604
任意の場所のマウス座標を取得して、他の場所にマウスを移動させても
キーを押せば元に戻ってくるようにプログラムする。

>座標の値が違うんですが・・・

どう違うんだ?

607 名前:デフォルトの名無しさん :2005/08/22(月) 17:26:05
>>606
すみません。
SetCursorPosを使ったら解決しました。
mouse_eventが使いたかったのは左右クリックの機能があったからですが、
dx と dy の各パラメータが 0〜65,535と書いてあったし、 DWORDとintでは型が合わん・・・と思ったら
機能を分けて使えばよかったんですね。
失礼しました。

608 名前:603 :2005/08/22(月) 17:26:33
>>605
確かにキャプチャソフトはDirectXを入れないと動きませんでした。
とりあえずWin32APIプログラミングで実現するというアプローチ自体は
合っているのですね。


609 名前:デフォルトの名無しさん :2005/08/22(月) 17:30:21
>>606
違うだろ
GetCursorPosで手に入るのは、0 ≦ x ≦ 現在の画面サイズ の値だけど
mouse_eventで使うのは 0 ≦ x ≦ 65535 だ

画面サイズの設定が800*600だとすれば、GetCursorPosでは左上(0,0)、右下(799,599)だが
mouse_eventは常に左上(0,0)、右下(65535,65535)だ
画面が長方形なのに対して、mouse_eventのは正方形なんだよ

610 名前:デフォルトの名無しさん :2005/08/22(月) 17:56:52
>>607
画面の解像度が1024*768なので
xx = 65535 / 1024;
yy = 65535 / 768;
として、GetCursorPos座標を掛けたら(x * zz, y * yy)
mouse_eventで無理やりですができました。
自分のパソコンでしか使わないプログラムなので
今は何とか困りませんが・・・・

611 名前:デフォルトの名無しさん :2005/08/22(月) 18:28:25
MCIを使用しようと思いwinmm.libにリンクをして、ビルドしたこところ
以下のエラーが出てしまいビルドできませんでした。

error C3861: 'mciSendString': 識別子は、引数依存の照合を使用しても見つかりません。

原因がまったく分かりません。
偉い人教えてください。お願いしますm(_ _)m

OS:WindowsXP
エディタ:VC++.NET


612 名前: 611 :2005/08/22(月) 18:52:26
すいません、自己解決できました。

613 名前:デフォルトの名無しさん :2005/08/22(月) 18:52:36
>>610
GetSystemMetrics(SM_CXSCREEN)とかつかえばいいんでない?

614 名前:デフォルトの名無しさん :2005/08/22(月) 19:32:04
>>609
純粋な疑問だがマルチディスプレイだとどうなるのかな。

615 名前:デフォルトの名無しさん :2005/08/22(月) 22:19:02
>>566
>>567さんありがとうございます。
結構探し回ったつもりなんですが、すみませんでした。

616 名前:デフォルトの名無しさん :2005/08/22(月) 23:37:16
case WM_CREATE:
mop.dwCallback = (DWORD)hWnd;
mop.lpstrDeviceType = NULL;
mop.lpstrElementName = "bgm0006.mp3";

iErr = mciSendCommand(
NULL, MCI_OPEN, MCI_OPEN_ELEMENT,
(DWORD)&mop
);
if (iErr) {
mciGetErrorString(iErr, strErr, 1024);
MessageBox(hWnd, strErr, NULL, MB_OK);
return -1;
}
mciSendCommand(mop.wDeviceID,MCI_PLAY, MCI_NOTIFY, (DWORD)&mpp);
break;

case MM_MCINOTIFY:
MessageBox(NULL,"ポスト",NULL,MB_OK);
mciSendCommand(mop.wDeviceID, MCI_PLAY, MCI_NOTIFY, (DWORD)&mpp);
break;

case WM_DESTROY:
mciSendCommand(mop.wDeviceID, MCI_CLOSE, NULL, NULL);
PostQuitMessage(0);
break;

上記のソースでmp3のループ再生をしようとしたのですが。
MM_MCINOTIFYメッセージがmciSendCommand(mop.wDeviceID, MCI_PLAY, MCI_NOTIFY, (DWORD)&mpp);でポストされません。
どなたか教えしえてください。お願いします。


617 名前:はる :2005/08/22(月) 23:57:50
 アプリを起動していて、Windows を終了させた場合、アプリに届くメッセージは何かあるのでしょうか?


618 名前:デフォルトの名無しさん :2005/08/23(火) 00:02:43
>>617
ある

619 名前:はる :2005/08/23(火) 00:19:50
何か教えてください。お願いします。

620 名前:デフォルトの名無しさん :2005/08/23(火) 00:26:41
>>619

       おっぱい! おっぱい!
    おっぱい おっぱい! おっぱい!
  おっぱい! ∩   ∩ ノ)   おっぱい!
 おっぱい!  川 ∩ 川彡'三つ  おっぱい!
おっぱい! ⊂ミ∩∧η∧∩彡⊃    おっぱい!
おっぱい!⊂三ミ (,,・Д・)彡三彡三⊃ おっぱい!
おっぱい! ⊂彡川⊂彡川ミ⊃    おっぱい!
おっぱい!⊂彡川∪⊃ U川彡⊃   おっぱい!
 おっぱい! (ノ ∪  川 ∪ミ)  おっぱい!
  おっぱい!      ∪     おっぱい!
    おっぱい! おっぱい! おっぱい!
        おっぱい! おっぱい!

621 名前:デフォルトの名無しさん :2005/08/23(火) 00:28:15
>>617
ttp://www.google.com/search?hl=ja&lr=&ie=UTF-8&oe=UTF-8&q=Windows+%E7%B5%82%E4%BA%86%20%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8&num=50


622 名前:はる :2005/08/23(火) 00:37:10
検索結果が多すぎて分かりません。
私でも分かるようなメッセージを教えてください。

623 名前:デフォルトの名無しさん :2005/08/23(火) 00:38:54
>>621
>Windowsが終了するときのメッセージを取得

そのまんまのがある雀

624 名前:デフォルトの名無しさん :2005/08/23(火) 06:33:29
>>622
オマエでも分かるようなメッセージを自分で探し出せ

625 名前:デフォルトの名無しさん :2005/08/23(火) 07:32:03
なんと言えばいいかよくわかりませんが、独自の仮想ドライブを追加したいです。
たとえば zipファイルを Xドライブにマウントして、あたかも普通のドライブであるかのように振舞いたい、ということです。
zipファイルをマウントするというのはあくまで例ですが、ようするに仮想ドライブへのアクセスを自分でハンドリングしたいという
ことになるのでしょうか。
ドライブが無理なら、ディレクトリに見えるのでもいいです。
これを実現するために必要なAPIや、あるいは調査をするためのキーワードなどを教えてください。

これができたらやりたいことはいっぱいあるのですが、たとえばCD(ROM)に書き込みができるように振舞う、なんてのがやりたいです。
書き込み可能に見えるドライブX を作り、最初ドライブX は CDと同内容一が見え、このドライブに対して書き込みが発生すると
その差分をHDDの適当なディレクトリに作って行き、次にドライブX を読むときには差分の方を優先して見せる、といった感じです。


626 名前:デフォルトの名無しさん :2005/08/23(火) 07:35:15
ドライバ書け

627 名前:デフォルトの名無しさん :2005/08/23(火) 07:49:30
>>625
ソース付きの実例。
http://chitchat.at.infoseek.co.jp/vmware/vdkj.html

628 名前:625 :2005/08/23(火) 08:36:18
>>627
ありがとう!
とりあえずそれが参考にしたという filedisk を落としてきた。
ソースが短くて読むのにはいいのですが、make の仕方がわかんないので困ったものです。
でも、ソース中に含まれるキーワードをぐぐると、結構それっぽいものがヒットするので、いつの日か何か作れることでしょう。
また、>>627 のリンクを少し見ただけでも、ディスクドライバとファイルシステムドライバがあるってことがわかりました。
自分のやりたいことは、きっとファイルシステムドライバも関連してくるんだろうと思います。


629 名前:デフォルトの名無しさん :2005/08/23(火) 17:19:04
マルチスレッドで、共通変数への同時アクセスを防ごうとしてますが、
クリティカルセッションではさむ(サンドイッチみたいな)かたちでよろしいのでしょうか?

よろよろ。

630 名前:デフォルトの名無しさん :2005/08/23(火) 17:27:36
>>629
それでいい

631 名前:デフォルトの名無しさん :2005/08/23(火) 17:28:08
>>629
どうした、具合でも悪いのか?睡眠と食事はちゃんと取れよ。

632 名前:デフォルトの名無しさん :2005/08/23(火) 17:31:10
>>629
クリティカルセクションな

633 名前:629 :2005/08/23(火) 17:33:50
おぉ、悩める同士。

返事してくれてサンクス。

またよろしくなぁ。
おらはらへったぞ。

634 名前:デフォルトの名無しさん :2005/08/23(火) 17:42:39
悟空かよ

635 名前:デフォルトの名無しさん :2005/08/23(火) 17:44:21
らへったぞ、って何?

636 名前:デフォルトの名無しさん :2005/08/23(火) 17:45:54
ああ「腹減ったぞ」か。

637 名前:デフォルトの名無しさん :2005/08/23(火) 19:08:21
Interlocked〜() もたまには使ってあげてくださいね♪

638 名前:デフォルトの名無しさん :2005/08/23(火) 19:35:14
winsockってwin32APIに含まれますか?

639 名前:デフォルトの名無しさん :2005/08/23(火) 19:43:30
含まれるんじゃね?

640 名前:デフォルトの名無しさん :2005/08/23(火) 20:15:46
ふと疑問に思ったんだが、zipファイルをディレクトリにマウントするシェルエクステンションって、
インターフェースは公開されてなかったか?
ぐぐってもそれらしいのが見つからないんだが・・・


641 名前:デフォルトの名無しさん :2005/08/23(火) 20:18:33
cabviewのソースならある

642 名前:デフォルトの名無しさん :2005/08/23(火) 20:25:09
GetOpenFileName()を用いて複数ファイル名を取得したいのですが
OPENFILENAME の lpstrFileに複数ファイル情報を受け取るために
必要なバッファサイズを事前に知るにはどうしたらいいのでしょうか?


643 名前:デフォルトの名無しさん :2005/08/23(火) 21:19:36
>>642
まずはユーザーがいくつのファイルを選択するか
事前に知る方法を考えよう。

644 名前:デフォルトの名無しさん :2005/08/24(水) 01:22:47
ゲーム製作のために今APIを勉強しているのですが
大学で情報系を専攻しているのでAPIを本格的に勉強すべきか迷っています。
そこで質問なんですが、APIを勉強する利点ってどんな事があるんでしょか?
ググッてみてもAPIの勉強サイトは出てくるのですが、
APIを利用してできる事などの情報がなかなか見つかりません。
APIを利用してできる事を具体的に教えてください。

本当に初心者の質問で申し訳ありません。

645 名前:デフォルトの名無しさん :2005/08/24(水) 01:23:54
なんかすごい本末転倒な感じがするな

646 名前:デフォルトの名無しさん :2005/08/24(水) 01:30:35
感じじゃなくて、そのものズバリだべし

647 名前:デフォルトの名無しさん :2005/08/24(水) 01:33:00
窓用のプログラムを作りたい場合、
選択幅は Win32API だけじゃない事を伝えておこう。

648 名前:デフォルトの名無しさん :2005/08/24(水) 01:43:01
>>644
興味があるのに自分で試しもせずにぐーぐるやら人の意見をあてにしてるようじゃ
勉強する必要ないんじゃないかな。
仮に勉強を始めたとしても本格的にやってるつもりになるだけで終わると予想。

649 名前:デフォルトの名無しさん :2005/08/24(水) 01:46:03
>>644
俺も情報系の大学行ってるが、1回生って事もあって内容が物足りないので
純粋に新しい事を覚えたいって理由でCやらWin32APIやらをやってる。
やりたきゃやる、やりたくないならやらない。それで十分だろ>APIをすべきかどうか

覚えることの利点なんてやってりゃ分かると思ってるが

650 名前:デフォルトの名無しさん :2005/08/24(水) 02:00:50
習うより慣れろ。

651 名前:デフォルトの名無しさん :2005/08/24(水) 02:44:33
>>648
何のために勉強するかっていう目的も持たずに
気分次第で手探りにやる程、向上心は低くありません。
自由な時間は限られているので自分のためになる事を
やろうと思って質問したつもりだったんですが、すいません。
もう興味本位に時間を潰せるほど責任感のない年齢じゃないんで。

652 名前:デフォルトの名無しさん :2005/08/24(水) 02:49:55
ていうか、
>ゲーム製作のために今APIを勉強しているのですが
とか言ってる割にWin32APIが何を指すのかすら理解して無くない?

653 名前:デフォルトの名無しさん :2005/08/24(水) 02:52:59
そんな年齢なのに>>644の文章なんだ…

654 名前:デフォルトの名無しさん :2005/08/24(水) 03:02:47
ゲーム作りならHSPが楽とかたまに聞くからそっちにしたら?
俺はやったことどころか興味すらないからどんな言語かも知らないけど

655 名前:デフォルトの名無しさん :2005/08/24(水) 03:26:22
俺的には
>大学で情報系を専攻しているのでAPIを本格的に勉強すべきか迷っています。
が意味不明。大学で教えてくれるのならあえて勉強する必要など
ないと思っているのか?だとしたら向上心低いな。

つーか興味本位に時間潰せないとか言うほど心的余裕のない奴には無理だと思う。
素直にやめとけ。それでもやりたいというのならまずはちゃんとした文章書いて来い。

656 名前:デフォルトの名無しさん :2005/08/24(水) 03:27:42
きっと>>644の中ではAPIとは
Action game Programing Interface
の略なんだな。

657 名前:デフォルトの名無しさん :2005/08/24(水) 03:38:20
>>644
ゲーム製作ならDirectXSDKの勉強の方が直接的だろうね。

ゲーム以外のWindowsアプリを(.NETFrameWord使わず)作る必要があるなら
まあ、Win32APIの勉強はまず必要になってくるが、その必要に応じてその都度おぼえていけばいいんじゃないか?

658 名前:デフォルトの名無しさん :2005/08/24(水) 03:40:24
本当はまだ大学初年度でまだAPIどころか基本的な言語の勉強すらきちんとしてないのに、
APIについて少しだけ勉強してそれにどんな利点があるのか調べようと努力したんだけどわからなかったと
適当にアピールしとけば誰か答えてくれると思ったんじゃない?
んで、返答が>>645-651だったからちょっと大人ぶった発言をしてみた若者だと予想w

659 名前:デフォルトの名無しさん :2005/08/24(水) 04:02:30
APIなしで組みます
int main(){
  return 0;
}

660 名前:デフォルトの名無しさん :2005/08/24(水) 04:43:17
>>640
それ知りたい!
だれか知ってる人いない?

661 名前:デフォルトの名無しさん :2005/08/24(水) 06:03:08
巨大ファイルの部分的な削除挿入を
クラスタがチェーンしてることを利用して高速化する方法ってありますか?

662 名前:デフォルトの名無しさん :2005/08/24(水) 06:13:25
セクタ単位のアクセスはあるから可能だろうけど、
削除挿入したい情報が物理境界と一致することにどんな期待が持てるんだ?
俺だったらオンディスクでリスト構造やポインタ配列を作るだろうな、そういうことを考えているときは

663 名前:デフォルトの名無しさん :2005/08/24(水) 07:00:27
>>660
>>641


664 名前:デフォルトの名無しさん :2005/08/24(水) 12:02:32
file://***、http://***ftp://****などのファイル名?(リクエスト?)を一元的に読み込めるような仕組みってありませんでしょうか?
よろしくおねがいします。


665 名前:デフォルトの名無しさん :2005/08/24(水) 12:02:46
大学でAPIなぞわざわざ教えるわけないだろ。
英語の授業でいちいち単語の意味を教えないのと同じだ。
リファレンスで引っ張ってくるだけの単純作業を大げさに「勉強」と呼ぶ時点で終わってる。

666 名前:デフォルトの名無しさん :2005/08/24(水) 12:08:10
>>664
求むエスパー

667 名前:664 :2005/08/24(水) 12:10:09
すいません、説明不足と思ったのでもう少し。
ブラウザのアドレス入力部って、file://***、http://***ftp://****などプロトコール問わず一元的に読み込み事が可能じゃないですか、
そんな感じで、たとえば次のような感じで
FILE *fp = fopen( "http://www.yahoo.co.jp" , "r" ) ;
的な事が出来ればなぁ〜と考えてます。


668 名前:デフォルトの名無しさん :2005/08/24(水) 12:20:45
>>667
それもみんなWindowsでは関連付けでやっているからShellExecuteが使える。
ShellExecute(0, 0, TEXT("http://www.google.co.jp"), 0, 0, SW_SHOW);

669 名前:デフォルトの名無しさん :2005/08/24(水) 12:21:38
と書いたけどこれはブラウザで開くことになるから664が望んでいるのとは違うか?

670 名前:デフォルトの名無しさん :2005/08/24(水) 12:24:36
>>667
IEコンポーネントはどーよ

671 名前:デフォルトの名無しさん :2005/08/24(水) 12:35:58
URLDownloadToCacheFileかURLDownloadToFileかな?

672 名前:664 :2005/08/24(水) 12:36:05
668さん、670さんレスありがとうございます。
>668さん
file://***、http://***ftp://****などから取得出来るデータをファイルとして扱いと考えてます。

>670
>IEコンポーネントはどーよ
とりあえず「wininet.dll」ってのを今調べてみてます。


673 名前:デフォルトの名無しさん :2005/08/24(水) 13:55:14
>>IEコンポーネントはどーよ
>とりあえず「wininet.dll」ってのを今調べてみてます。

話がかみ合ってないのに正しい答えを見つけてるのは何故だろう

674 名前:デフォルトの名無しさん :2005/08/24(水) 14:03:35
ESPだな

675 名前:デフォルトの名無しさん :2005/08/24(水) 16:54:20
>>665
中学校からやり直しておいで

676 名前:デフォルトの名無しさん :2005/08/24(水) 17:48:04
>>673-674
ワロタ

677 名前:デフォルトの名無しさん :2005/08/24(水) 19:36:44
>>651
率直に言って、興味本位で動けないような奴はろくな技術者にはなれない。
業務系PGならそれでもなんとかなるが(周囲に大迷惑かけるけどな)、
ゲーム関係ならなおさら「興味本位」は重要だぞ。

>>673
才能って奴じゃないか。
少なくとも>>644にはなさそうなものを持ってそうだ。

678 名前:デフォルトの名無しさん :2005/08/24(水) 20:54:37
おまえらもAPI勉強しとけよ。APIを

679 名前:デフォルトの名無しさん :2005/08/24(水) 21:38:25
MFCよりかは、APIのほうが10000倍いいぞ。
ほんとに。

680 名前:デフォルトの名無しさん :2005/08/24(水) 21:44:06
Win系全てに最初から標準で入っててくれりゃあ別にMFC使うんでもいいんだけどな
.NETは今んとこ論外、重すぎ

681 名前:デフォルトの名無しさん :2005/08/24(水) 21:45:24
>>679
Win32APIはVisualComponentLibraryの何倍いいですか?

682 名前:デフォルトの名無しさん :2005/08/24(水) 22:26:28
>>681
VCLはよく知らないが、使いやすくなったMFCみたいなもんだろ?
それならVCLでできることは全てWin32APIで出来るし、VCLじゃ出来ないこともできる
その代わりややこしい

683 名前:デフォルトの名無しさん :2005/08/24(水) 22:41:30
そこでATL/WTLですよ。

684 名前:デフォルトの名無しさん :2005/08/24(水) 22:47:52
雑談はま板でドゾー

685 名前:デフォルトの名無しさん :2005/08/24(水) 23:07:32
Windowsでできることは全てAPI使ってできる

686 名前:デフォルトの名無しさん :2005/08/24(水) 23:17:12
ATLはWin32APIのラッパとは言っても
そもそもCOMコンポの開発労力を削減するために設計されたもんだから、
Win32APIを網羅してるわけじゃないでしょ。

まあ、俺は結構好きなんだが。

687 名前:デフォルトの名無しさん :2005/08/25(木) 00:00:55
API雑談スレみたいなのあった気がしたので、発掘してみた。
http://pc8.2ch.net/test/read.cgi/tech/1049790146/
質問という趣旨からズレはじめた(発展しそうな)ネタはこっちでやらないか。

移動した途端とぎれそうだが。

688 名前:デフォルトの名無しさん :2005/08/25(木) 00:23:04
>>687
おっ。俺はそのスレの339。
盛り上がってくれるとうれしい。

689 名前:デフォルトの名無しさん :2005/08/25(木) 00:29:44
なんだその自己主張

690 名前:デフォルトの名無しさん :2005/08/25(木) 02:24:09
>>686
ATLとWTLで、GUI周りのAPIはほとんど面倒見てくれるが。
正直、あとはAPI直に使ってもいいし、自分でラッパ書いてもいいんじゃないかと。
GUIだけは面倒だから自前で書きたくない。

691 名前:デフォルトの名無しさん :2005/08/25(木) 06:49:18
高級言語でできることはすべてアセンブラでできるみたいな。
いくら理論上は可能でもアセンブラでオブジェクト指向のプログラムとか
組みたくない

692 名前:デフォルトの名無しさん :2005/08/25(木) 06:50:17
そういう高度な議論は他所でやれや

693 名前:デフォルトの名無しさん :2005/08/25(木) 12:19:38
アセンブラからAPI呼び出しか、おめでてーな

694 名前:デフォルトの名無しさん :2005/08/25(木) 13:05:51
↑ここ数レスで一番の大馬鹿

695 名前:デフォルトの名無しさん :2005/08/25(木) 13:12:05
俺はGUIもAPIで書いてる。
というより手元にVCLやMFCがないだけだが。
それ以外に直接API使わずにGUI書く方法があったとしても難しそうだし。

696 名前:デフォルトの名無しさん :2005/08/25(木) 17:40:38
>>694
御意

697 名前:デフォルトの名無しさん :2005/08/25(木) 22:07:54
>>695
今のところ俺も。

698 名前:デフォルトの名無しさん :2005/08/25(木) 22:11:44
そんなおまいらにはWTLを。
と言いたいがそんなおまいらにはATLがないんだろうな。

699 名前:デフォルトの名無しさん :2005/08/25(木) 22:21:19
はいはい

700 名前:デフォルトの名無しさん :2005/08/25(木) 22:29:56
軽くタイムリーな所で
ttp://www.codeguru.com/Cpp/controls/menu/alternativemenu/article.php/c189/
この独自メニューを使わせてもらおうと思ったのですが、
日本語の項目をAppendすると文字化けしてしまいます

もちろん日本語フォントを指定済みです
原因が分かる方、教えて頂けないでしょうか

701 名前:デフォルトの名無しさん :2005/08/25(木) 22:31:16
それのどこがWinAPIと関係するのか説明できたら教えてやるよ。

702 名前:デフォルトの名無しさん :2005/08/25(木) 23:08:54
ANSI_CHARSETm9(^Д^)プギャー


703 名前:700 :2005/08/25(木) 23:14:03
>>702
ここでしたか!ありがとうございます、無事動作しました
WinAPIと関係あって良かったですw

704 名前:デフォルトの名無しさん :2005/08/25(木) 23:19:08
今日のMVPは701か

705 名前:デフォルトの名無しさん :2005/08/26(金) 11:08:44
http://yokohama.cool.ne.jp/chokuto/urawaza/api/CreateWindowEx.html
CreateWindowをするさいにクラス名を渡しますが、
そのクラス名を取得したい場合、どうすればいいんでしょうか。
GetWindowLongで取得できますか?

706 名前:705 :2005/08/26(金) 11:13:24
かいけつ

707 名前:デフォルトの名無しさん :2005/08/26(金) 11:47:47
>>706
きくまえにえむえすでぃーえぬ(えいごばん)よめ

708 名前:デフォルトの名無しさん :2005/08/26(金) 17:10:30
WinMainとプロシージャのWM_CREATEってどっちが先に実行されますか?

709 名前:デフォルトの名無しさん :2005/08/26(金) 17:12:19
WinMainが走らないとプロシージャも登録できんだろうが

710 名前:デフォルトの名無しさん :2005/08/26(金) 17:42:04
>>708
WM_CREATEはCreateWindow(Ex)の中の人が呼ぶ。

711 名前:デフォルトの名無しさん :2005/08/26(金) 17:58:21
>709-710
レスありがとうございます

712 名前:デフォルトの名無しさん :2005/08/26(金) 19:01:27
チャットバーみたいな文字列入力できる物ってどうやって作るんですか?

713 名前:デフォルトの名無しさん :2005/08/26(金) 19:13:10
CreateWindow

714 名前:デフォルトの名無しさん :2005/08/26(金) 19:47:05
教えてください。

PathAddBackslashA などの ANSI 版 Path API は、
マルチバイト文字(CP932)を含むパスを
何の問題も無く利用することが出来ますでしょうか?

715 名前:デフォルトの名無しさん :2005/08/26(金) 20:09:25
全く問題なし。
Windowsはひらがなや漢字をフォルダ名に使えるし。

716 名前:デフォルトの名無しさん :2005/08/26(金) 20:10:00
ファイル名もだが

717 名前:デフォルトの名無しさん :2005/08/26(金) 20:11:40
MultiByteToWideChar等での
CP_OEMCPとCP_ACPの違いを教えてください。
ANSIコードページとOEMコードページということですが、
調べてもいまいちよく理解できません。

718 名前:デフォルトの名無しさん :2005/08/26(金) 20:15:40
そもそも日本語Winの基本文字コードが2バイトなのに、
マルチバイト文字が扱えなかったら糞だろう

719 名前:デフォルトの名無しさん :2005/08/26(金) 20:21:57
↑ここ数レスで一番の大馬鹿

720 名前:デフォルトの名無しさん :2005/08/26(金) 20:57:46
>>719
自虐しちゃダメよ?

721 名前:デフォルトの名無しさん :2005/08/26(金) 21:13:03
質問です。
XPビジュアルスタイルを適用してCEditを使用しています。
そこで日本語を入力して再変換を行うと文字が化けます。

・ATOCKでは発生しません。
・コンテキストメニューから再変換を選択しても発生しません。

_UNICODEを宣言しないで回避する方法ってありますか?


722 名前:デフォルトの名無しさん :2005/08/26(金) 21:29:44
>>721
WindowsのAPIにCEditなんてないお(;^ω^)

723 名前:デフォルトの名無しさん :2005/08/26(金) 21:32:44
MFCスレへドウゾ

724 名前:721 :2005/08/26(金) 21:34:05
正直すまんかった…


;y=-( ゚д゚)・∵ターン

725 名前:MathC ◆Ho9erQuSOQ :2005/08/26(金) 23:40:32
やっと今日C言語の学習が一通り終わったのでWindowsプログラミングをやりたいと思っているのですが、
なにぶん、貧乏学生なもので>>1-4に書かれている書籍はとてもじゃありませんが手が出せそうにありません。
初めのほうに書いてある「猫でもわかるWindowsプログラミング」というサイトと「Win32 API入門」を訪れたのですが、
後者のほうは次から次へと専門用語が出てきて困っています。
前者のサイトから学びたいと思うのですが理論的な解説なしに学ぶのは自殺行為でしょうか?

726 名前:デフォルトの名無しさん :2005/08/26(金) 23:43:12
まずは動くものをどんどん作って、雰囲気をつかむのがいいと思う。
雰囲気がつかめれば理論(?)も理解しやすい。

727 名前:デフォルトの名無しさん :2005/08/26(金) 23:48:18
貧乏学生なら貧乏学生なりに倹約して金貯めて買え
どうでもいいことに金使わんと、必要なものにまず使えよ

728 名前:デフォルトの名無しさん :2005/08/26(金) 23:50:58
本を買わない学生に未来はない

729 名前:デフォルトの名無しさん :2005/08/26(金) 23:53:09
わからない単語があれば調べればいいじゃない

730 名前:デフォルトの名無しさん :2005/08/26(金) 23:53:59
>>725
Win32 API入門も専門用語の羅列は 1. Win32 APIとは だけだと思うけど。

731 名前:MathC ◆Ho9erQuSOQ :2005/08/27(土) 00:04:15
>>726-730
沢山のレスありがとうございます。
Advanced Windows は切り詰めながら買いたいと思います。
それまでは「猫でもわかる.....」で頑張ります。

732 名前:デフォルトの名無しさん :2005/08/27(土) 00:29:37
>>731
Advanced Windowsは、調べても調べても手元の資料には答えが
見つからなくなったときでいいとオモタ。

733 名前:デフォルトの名無しさん :2005/08/27(土) 00:29:56
>>731
俺もC終わってWin32APIの勉強してるが、推薦図書スレの
VisualC++の1読んでるがわかりやすいと思った

734 名前:デフォルトの名無しさん :2005/08/27(土) 00:54:03
>>728
5千オーバーの本を何冊も買うのは学生には辛い

735 名前:デフォルトの名無しさん :2005/08/27(土) 01:03:14
買ってたオレは何だったんだろうな

736 名前:デフォルトの名無しさん :2005/08/27(土) 01:28:59
>>725
とりあえずPlatformSDK入れてサンプル「Generic」のソース読んで理解。
それができたら改造してみる。

このあたりから初めてみれ。

737 名前:デフォルトの名無しさん :2005/08/27(土) 01:52:11
>>733
その「C終わって」っつのはいったい何だ。

738 名前:デフォルトの名無しさん :2005/08/27(土) 02:02:56
少しワロタ

739 名前:135 :2005/08/27(土) 05:56:14
>>136
コンソールアプリは確かにそれでいいんですが・・・

>>137
Win98では、system("echo \a")でちゃんとDOS窓が出現してビープ音が出ます。
CreateProcessA(NULL, "command.com /cecho \a", &sa, &sa, ...);
などとしても鳴ります。
私は、単なるビープ音だけではなく、例えばユーザー補助でマウスキーを設定していると、NumLockで有効になる時と無効になる時で周波数が変わっていて音で識別できるようになっている、とかそういう面白いこともやりたいわけですが・・・
例えばDeviceIoControl()なんかに特別なデバイスを指定したりとか、マルチメディア系のインターフェースでビープ音を扱える、とかはないですかね・・・? DOS時代にはビープ音で演奏するソフトが色々ありましたが・・・

なお、Win2000も使ってみました。確かにsystem("\a");でビープ音、出ますね・・・「''は内部コマンドまたは外部コマンド、操作可能な・・・」というエラーメッセージも一瞬出ますが・・・
それで
CreateProcesA(NULL, "command.com /cecho \a", &sa, &sa, ...);
はWin2000では音が鳴りません。
CreateProcesA(NULL, "cmd.exe /cecho \a", &sa, &sa, ...);
にすると音が鳴ります。

残念なのは、Win2000(のWin32)ではI/Oポートがすべてマスクされ、しかもシミュレートもない、ということですね・・・Win98では61hはアンマスクになってたりしますし、マスクされたポートも適当にシミュレートしてくれますね。スルーされるだけだったりしますが・・・

なお、MessageBeep(-1)ですが、Win98では確かに極めて短いビープ音(ボツッというような音)が鳴るのですが、Win2000ではサウンドカードからの音(MB_OKと同じ音)ですね。MSDNにはビープ音だと書いてあるのに、やはりウソが書いてあるのか・・・orz
NT3.1とかではビープ音だったんですかね?

740 名前:デフォルトの名無しさん :2005/08/27(土) 07:04:31
>>739
そもそもハード的にM/Bのスピーカは周波数とか変えられるんだろか…

741 名前:デフォルトの名無しさん :2005/08/27(土) 08:16:06
DrawTextで \n やワードラップで改行されるときの
行間の幅を変えるにはどうすればいいですか?

742 名前:デフォルトの名無しさん :2005/08/27(土) 08:26:44
>>740
あっはっは。面白いこというなぁ。
昔はBEEPでBGMとか当たり前だし、
BEEPを通常のサウンドデバイスとしてあつかうドライバもあるのに。

743 名前:デフォルトの名無しさん :2005/08/27(土) 08:39:00
単音BGMか?
今後製造されるM/Bでもスピーカの周波数が変えられることは保証されてるのか?

744 名前:デフォルトの名無しさん :2005/08/27(土) 08:46:55
>>743
結果に対して仮定を持ち出す
そいつは詭弁という奴ですよ〜

745 名前:743 :2005/08/27(土) 09:00:10
>>744
勝手に討論を始めないでくれ

746 名前:デフォルトの名無しさん :2005/08/27(土) 09:04:46
>>743
アナクロな技術を使うならば、単音単一周波数単一音量でもパルス制御すれば三重奏に聞こえる程度の音は作れる。

>>739
目的がよく判らんのだが、自分の端末だけでやりたいのか、他人も同じ目に遭わせたいのかその辺りは?
それから、サウンド機能を使わずにビープだけでやりたいと言う理由もよく判らんな。

747 名前:デフォルトの名無しさん :2005/08/27(土) 09:32:24
>>739
つか、MessageBeep()でもまえの要求は完全に満たしてるじゃん。

・サウンドカードから音を出したい
・状況によって音を変えたい

何を前スレからうだうだ気にしてるんだ?
あとM/BのBEEP全然関係ないし。

748 名前:デフォルトの名無しさん :2005/08/27(土) 09:37:28
>>739
流れがよーわからん(スレ境界またいでるの追う気力がない)が
PlaySound じゃあかんのか?

749 名前: :2005/08/27(土) 09:44:21
test


750 名前:デフォルトの名無しさん :2005/08/27(土) 10:20:12
>>746
むかーし、リレースイッチ?の「カチ」っていう音で
サンプラーっていうのもあったなあ。


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