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


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

Win32API 質問箱 Build10
751 名前:デフォルトの名無しさん :03/04/27 11:58
WM_APPのほうがいいだろうなあ

752 名前:デフォルトの名無しさん :03/04/27 12:34
>>751
理由は?

753 名前:デフォルトの名無しさん :03/04/27 12:58
>>752
751じゃ無いけれど。。。
ttp://cgi23.plala.or.jp/a-w-h/mfc/message.html
なんか参考になるかと。

754 名前:デフォルトの名無しさん :03/04/27 12:58
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/MessagesandMessageQueues/MessagesandMessageQueuesReference/MessagesandMessageQueuesMessages/WM_USER.asp

755 名前:デフォルトの名無しさん :03/04/27 15:09
>>748
書き直したい画面ってのはViewじゃないの?
そうだけどViewのサイズ変更が掛からないと言う話しなのかな..

756 名前:デフォルトの名無しさん :03/04/27 21:41
while(Msg.message != WM_QUIT){//終了ボタンが押されるまで繰り返し
  if(PeekMessage(&Msg, NULL, 0U, 0U, PM_REMOVE)){//メッセージの取得
TranslateMessage(&Msg);//メッセージの解析
DispatchMessage(&Msg);//メッセージの破棄
  }else//メッセージがない場合
Render();//描画
VC++を扱ったある本のサンプルプログラムをビルドして動かすとこの部分で
メッセージループの先頭でエラーが起こるんですが
これだけで分かるでしょうか?

757 名前:165 :03/04/27 21:46
>>756
分かる訳ないだろ
そもそも Msg の型はなに?


758 名前:756 :03/04/27 21:56
>>757
メッセージ構造体変数です。
サンプルこう書き換えると普通に動くのですが
while(TRUE)
{
  if(PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE))
  {
if(Msg.message == WM_QUIT)
  break;
  TranslateMessage(&Msg);
  DispatchMessage(&Msg);
}
else
  DrawScreen();
}

759 名前:デフォルトの名無しさん :03/04/27 22:02
本当に動かしたときにエラーがでるのか?
コンパイル時ならMsg.message初期化前にアクセスしているから警告が出るかもしれないが

760 名前:デフォルトの名無しさん :03/04/27 22:07
>>759
コンパイルは通ります。
デバックすると
Run-Time Check Failure #3 - The variable 'Msg' is being used without being defined.
とメッセージボックスが出てメッセージループの先頭に矢印が付きます。

761 名前:デフォルトの名無しさん :03/04/27 22:30
>>760
エラーメッセージそのままではないか?


762 名前:756 :03/04/27 22:35
>>761
Msgがdefineなしで使われてるよと伝えているのでしょうか
さっぱり分かりませぬ

763 名前:752 :03/04/27 22:44
>>753
なるほど、ありがとう。
WM_USERだと他で使われる可能性があったのか……

>>756
whileの前にMsgへ何か値を入れていない(PeekMessageしていない)から
不定の値が参照されてエラーになるのでは?

764 名前:デフォルトの名無しさん :03/04/27 22:47
>>756
適当でいいならwhileの前に一度PeekMessage呼び出せば動くと思うよ
本来ならちゃんと初期化しなきゃいけないと思うがw

765 名前:756 :03/04/27 22:59
有難うございました。

766 名前:デフォルトの名無しさん :03/04/28 14:03
Windows2000にあるタスクトレイにメッセージを表示するAPIがしりたいのですが。


767 名前:デフォルトの名無しさん :03/04/28 14:14
>>766 過去スレ読んでみた?ぐぐってみた?

768 名前:デフォルトの名無しさん :03/04/28 14:43
「過去ログも調べないでそんな事聞くな」は不親切
http://qb.2ch.net/test/read.cgi/accuse/1051392742/l50

769 名前:デフォルトの名無しさん :03/04/28 15:22
厨を放置できない香具師も厨とはよく言ったもんで(略

770 名前:デフォルトの名無しさん :03/04/28 15:26
ところで、Windows2000にあるタスクトレイにメッセージを表示するAPIがしりたいのですが。

771 名前:デフォルトの名無しさん :03/04/28 16:05
>>770
メッセージって?


772 名前:デフォルトの名無しさん :03/04/28 16:55
>>771
ダイアルアップしたときなどに出るツールチップのようなそうでないようなやつです。
クリックすると消えたりするやつです。

773 名前:デフォルトの名無しさん :03/04/28 17:19
過去ログ(ry

774 名前:デフォルトの名無しさん :03/04/28 17:20
過去ログにはありませんでした。

775 名前:デフォルトの名無しさん :03/04/28 17:23
以前同じ質問に答えたんだが。
見もしないで「ありませんでした」とか嘘つく厨は逝け

776 名前:デフォルトの名無しさん :03/04/28 17:24
defrag.exeが使ってる(と思われる)ようなセクタを直接読み書きするAPIって非公開?

777 名前:デフォルトの名無しさん :03/04/28 17:30
>>776
http://www.sysinternals.com/ntw2k/info/defrag.shtml

778 名前:デフォルトの名無しさん :03/04/28 17:41
>>775
名前だけでも教えてもらえませんか?
検索するにもキーワードが思い浮かばないのです。

779 名前:デフォルトの名無しさん :03/04/28 18:22
ツールチップ

780 名前:デフォルトの名無しさん :03/04/28 18:55
>>779
それは違うでしょ

781 名前:デフォルトの名無しさん :03/04/28 19:08
>>778
NOTIFYICONDATA の szTip とは違うもの?


782 名前:デフォルトの名無しさん :03/04/28 19:27
>>777
おぉ、サンクス。ついでに777ゲトおめ。

783 名前:デフォルトの名無しさん :03/04/28 20:39
>>781
違うものです。閉じる×とかついてるやつです。

784 名前:デフォルトの名無しさん :03/04/28 21:01
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/tooltip/usingtooltips.asp
これの下の方にある
Balloon Tooltipsってやつじゃない?

785 名前:781 :03/04/28 21:16
>>783
szInfo のほうだね。


786 名前:デフォルトの名無しさん :03/04/28 21:27
>>784
>>785
やったー
ありがとやんす。バルーンかなるほど。

787 名前:デフォルトの名無しさん :03/04/29 03:05
スレ立てるまでもないスレで質問したんですがスルーされちゃったのでこちらで。

ダイアログボックス内にエディットコントロールが複数あるんですが、
そのフォーカスが移動したことを知るメッセージというのはあるんでしょうか。
ダイアログボックスのプロシージャでフォーカスが移動したということだけ判ればいいんです。
もしないのならば、ダイアログ内のすべてのエディットコントロールをサブクラス化して
WM_KILLFOCUSとかを捕まえるという方法になってしまうのでしょうか・・・。
定石みたいな方法を知りたいのですが。


788 名前:デフォルトの名無しさん :03/04/29 03:28
>>787
サブクラス化して WM_KILLFOCUS
他の方法はしらん。

789 名前:787 :03/04/29 03:41
>>788
どうもッ。それで行きます。

790 名前:名無し@沢村 :03/04/29 03:58
>>787
ヌヒよ、サブクラス化なんぞせんでも親ウィンドウにEN_KILLFOCUSが通知されるわい。

791 名前:787 :03/04/29 04:06
>>790
まじすかッ。と思ってやってみたんですが通知されませんッ。


792 名前:787 :03/04/29 04:09
連続すみません!
notificationメッセージはHIWORDでしたッ。
>>790でうまくいきました。ありがとー。

793 名前:デフォルトの名無しさん :03/04/29 19:21
>>786
後半のTooltipsは無視して嘘つき呼ばわりのままですか
そうですか

794 名前:デフォルトの名無しさん :03/04/29 22:34
>>793
ハァ?

795 名前:デフォルトの名無しさん :03/04/30 09:50
テキストエディタを作ろうとしているのですが、
タブや改行などを表示させるのにどうすれば
いいのか悩んでいます。
文字色・背景色をカスタマイズできるエディタを
作りたいため、下の条件を満たしたく思っています

・背景を透過
・簡単に文字色を変更できる

どのようにすれば実現できるでしょうか?
よろしくお願いします。

※タブを「→」改行を「↓」で表示するとという手も
 ありますが、できれば任意のパターンにしたい
 のです。

796 名前:デフォルトの名無しさん :03/04/30 10:10
>>795
まずお前は...

> ※タブを「→」改行を「↓」で表示するとという手も

は実現できるのか ?

797 名前:デフォルトの名無しさん :03/04/30 10:33
指定したフォルダのなかのファイル数を取得するAPIを教えて下さい。

798 名前:デフォルトの名無しさん :03/04/30 10:43
>>797
FindFirstFile(), FindNextFile(), FindClose() 使って自分で数える。

799 名前:デフォルトの名無しさん :03/04/30 10:46
>>798
うっ、やっぱりそれ系で自分で数えるしかないですか、
何かフォルダを監視するAPIとかあるから数かぞえるのあるかなーとか
思ったりしたがやっぱ甘かったか、

800 名前:デフォルトの名無しさん :03/04/30 13:52
質問です。
他のアプリがオープンしているCOMポートを
使用できなくしたり、逆に使えるようにするには
どうしたら良いでしょう?


801 名前:デフォルトの名無しさん :03/04/30 14:09
>>800
おめ

802 名前:デフォルトの名無しさん :03/04/30 18:43
右クリックで表示されるコンテキストメニューを作っているのですが、
ファイルを選択している場合は、アイテムIDリストを使って、
GetUIObjectOf, QueryContextMenu, TrackPopupMenu, InvokeCommandの流れでできるのですが、
エクスプローラ上でアイテムを選択しないで、空白を右クリックしたときの
コンテキストメニューが出せません。どうしたらできるのでしょうか。
よろしくおねがいします。

803 名前:795 :03/05/01 00:49
>>796
矢印を使う場合は、TextOutで出力すればいいかと。
フォントにないパターンを出力する方法があれば
教えてください。m(..)m

804 名前:デフォルトの名無しさん :03/05/01 00:50
目がキモイので却下

805 名前:デフォルトの名無しさん :03/05/01 00:58
m(☣_☣)m

806 名前:デフォルトの名無しさん :03/05/01 01:26
>>803
ビットマップで書く

807 名前:795 :03/05/01 02:45
>>806
ビットマップで描こうと思ったのですが、
2色のビットマップだと、色が強制的に白と
黒になってしまうので困ってしまいまして。

CreateDIBSectionで多色のビットマップを
作成して、自力で重ね合わせを行うという
手も考えられますが、それだと画面中タブ
だらけの時に処理がかなり重たくなりそう
です。

他に方法はないものでしょうか?

808 名前:デフォルトの名無しさん :03/05/01 02:48
>>807

何も毎回CreateDIBSectionせんでもアプリの起動時に一回BITMAP作って
画像入れといて、必要なときBitBltで転送じゃだめなのかな
別にこれならそこまで重くないような気もするが、、
これぐらいを重いっていうのかな?だとしたらスマソ

809 名前:デフォルトの名無しさん :03/05/01 03:00
>>807
> 2色のビットマップだと、色が強制的に白と
> 黒になってしまうので困ってしまいまして。

SetBkColorしてBitBltのROPをいじるとかしてみれ。


810 名前:795 :03/05/01 03:51
>>809
ありがとうございます。
2色のビットマップを用意して、
下のコードを実行するとうまくいきました。

 // くりぬき
 ::SetBkColor( hDC, RGB( 255, 255, 255 ) );
 ::SetTextColor( hDC, RGB( 0, 0, 0 ) );
 ::BitBlt( hDC, x, y, w, h, hMemDC, 0, 0, SRCAND );

 // 赤で描画
 ::SetBkColor( hDC, RGB( 0, 0, 0 ) );
 ::SetTextColor( hDC, RGB( 255, 0, 0 ) );
 ::BitBlt( hDC, x, y, w, h, hMemDC, 0, 0, SRCPAINT );

ご回答下さったみなさま、ありがとうございました。

811 名前:デフォルトの名無しさん :03/05/02 16:48
SetCapture()中、SetCursorで変更したカーソルをウィンドウの外側でも
そのままにしたいのですが、残念ながら外に出ると普通のカーソルに
戻ってしまいます。WM_SETCURSORを拾うとかしてみたのですが上手く
いかず、お手上げ状態です。激しく厨房質問ですがお許しを・・

812 名前:デフォルトの名無しさん :03/05/02 21:33
          ∧_∧
        ⊂(´・ω・`)つ-、キャプチャ取りたい?キャプチャ・・・こぶ茶
      ///   /_/:::::/ ねえ。コンビニでこぶ茶買ってきてくんない。
      |:::|/⊂ヽノ|:::| /」
    / ̄ ̄旦 ̄ ̄ ̄/|
  /______/ | |
  | |-----------| |

813 名前:デフォルトの名無しさん :03/05/02 22:27
最初に描画が可能になったときに一回だけ送られるメッセージってありますか?

814 名前:デフォルトの名無しさん :03/05/02 22:29
2回目からは無視すればいいんじゃないの

815 名前:813 :03/05/02 22:33
>>814
ありがとうございます。
WM_PAINTメッセージでですか?
それしか無いのならそうします。

816 名前:デフォルトの名無しさん :03/05/02 22:37
アホな質問なのですが、Win32でよく使われるアトムって
なんでそう呼ばれるのでしょう?

817 名前:ccc :03/05/02 22:56
自作のフォントをフォントファイルに登録したいのですが、
どのようにやればよいのでしょうか?
ご存じのかた、教えて下さい。


818 名前:デフォルトの名無しさん :03/05/02 23:33
>816
http://www.kab-studio.com/Programing/Dictionary/Words.html#Atomic
を読むと、atom,atomicは「一意なもの」を指すらしい。


819 名前:デフォルトの名無しさん :03/05/02 23:41
>>811
SetCapture()は、ドラッグしないでウィンドウ外にマウスカーソルが
出たメッセージは拾えないけど、それは知ってるよな?


820 名前:デフォルトの名無しさん :03/05/02 23:51
>>813
なんでそんなものが必要なのかと小一時間問い詰めたいです。

821 名前:816 :03/05/03 00:37
>>818
ありがとうございますた。
原子ではなく、これ以上分割できないものと
考えるのでつね。。。


822 名前:デフォルトの名無しさん :03/05/03 00:39
あれだ。フォントその他もろもろの、WM_PAINTのハンドラが呼ばれるたびに逐一
生成するには重い GDIオブジェクトの作成を初回の描画のときにやるっていう
魂胆でない?

823 名前:デフォルトの名無しさん :03/05/03 00:41
>>821
つーか、排他制御とか知らんのか?
初心者の人に言いたいが、APIなんて知らなくていいから、排他制御は覚えてく
れよ…(心の叫び)


824 名前:デフォルトの名無しさん :03/05/03 01:15
>>819
わぎゃん、知らんかった。ドラッグにしたらいけた・・・
LBUTTONDOWNはドラッグしなくても拾えてたので甘く見てました(泣
つまりはドラックなしには無理?

825 名前:デフォルトの名無しさん :03/05/03 01:32
普通アトミックというとデータベースが浮かぶな。知識と知恵を混同する
気は無いのでどうでも良いが。

826 名前:デフォルトの名無しさん :03/05/03 01:35
>>825
データベースが排他制御が最も必要なものの一つだからな。
トランザクションとか、ロールバックとか…

で、そんなもの知らなくていい。

827 名前:デフォルトの名無しさん :03/05/03 01:37
アトミックというとロボキッドが浮かぶな。我ながら駄目人間だな。

828 名前:デフォルトの名無しさん :03/05/03 05:40
SetupDIB(〜)みたいな関数でCreateDIBSectionを使ってるんですが、
その関数から戻ると、CreateDIBSectionでアドを渡した
BMPのデータ領域をさすポインタがNULLになっています。
その関数内ではNULLではないんですが・・・

ちなみにそのポインタはSetupDIB関数に引数として渡しています
なんか変なことしてるのでしょうか?


829 名前:デフォルトの名無しさん :03/05/03 08:41
固定ピッチフォントの半角文字を表示するのに必要な幅
(すべての半角文字が収まる最小限の幅)を知りたいのですが、
どうすればいいのでしょうか?

いろいろ試してみたのですが、つまづいてしまいました。

・GetObjectを使う
→LOGFONTのlfWidthが0の時デフォルト値の意のようだが、
 デフォルト値取得の方法がわからない。

・GetTextMetricsを使う
→TEXTMETRICのtmAveCharWidthの幅に収まらない
 半角文字があった。tmMaxCharWidthは全角文字の幅だった。

・GetTextExtentPoint32を使う
→文字列を"A"にして幅を調べたが、この幅に収まらない
 半角文字があった。

830 名前:デフォルトの名無しさん :03/05/03 11:50
描画時にクリップすれば大きさなんてどうでもいい。
と言ってみるテスト

831 名前:デフォルトの名無しさん :03/05/03 12:09
>>829
200文字くらいしかないんだから全部文字幅調べれば?

832 名前:デフォルトの名無しさん :03/05/03 12:15
>>829
おれは"Z"か"X"で測ってる。
ちなみにGetTextExtentPoint32

833 名前:デフォルトの名無しさん :03/05/03 12:34
収まらない半角文字って何よ?

834 名前:デフォルトの名無しさん :03/05/03 13:38
Wとか?

835 名前:デフォルトの名無しさん :03/05/03 14:08
じゃあ、Wの幅で調べりゃいいと思うよ。
高さは”Wg”で調べるのが主流だね。


836 名前:デフォルトの名無しさん :03/05/03 14:11
>>835
何でそんなあほな策を書き込めるんだ?

837 名前:デフォルトの名無しさん :03/05/03 14:13
Hが|-|みたいな感じで特定の文字だけ幅がやけにでかいフォントだったらどうすんのよ?

838 名前:デフォルトの名無しさん :03/05/03 15:05
じゃあ、文字全部の幅を調べりゃいいと思うよ。


839 名前:デフォルトの名無しさん :03/05/03 15:12
つーかフォントを指定してから幅を計算するべきだと思うが

840 名前:832 :03/05/03 17:38
部外者だけど結局何が定石なの?
おれは自分の手段が正しいとは思っちゃいないっすよ。
今まで問題が出なかったというだけで。

841 名前:デフォルトの名無しさん :03/05/03 17:56
半角文字でループして全部調べればいいと思うよ
つまり>>831

842 名前:デフォルトの名無しさん :03/05/03 19:08
どんなフォントでそんなことが起こるんだ?
正しいフォントをselectしてんのか


843 名前:デフォルトの名無しさん :03/05/03 19:23
全部の幅を調べるなら GetCharABCWidths() あたりを使ったほうが?

844 名前:デフォルトの名無しさん :03/05/03 19:42
勧める割に自信なさげですね。

845 名前:デフォルトの名無しさん :03/05/03 20:14
んだって使ったこと無いんだもの

846 名前:デフォルトの名無しさん :03/05/03 20:51
固定ピッチフォントってfull-widthの半分の幅が
half-widthになるんじゃないの?
XP以前のグリフ選択機能にバグがあっただけかと

847 名前:デフォルトの名無しさん :03/05/03 22:16
エクスプローラのあるフォルダをFindFirstChangeNotificationで監視してるのですが
たとえばそのフォルダに複数のファイルをコピーしているとき
そのコピー処理が終わるまで待機してある処理を開始したいのですが
コピー処理が終わるまで待機というのがどうやったらいいのかわかりません。
どなたかご教授を

848 名前:デフォルトの名無しさん :03/05/04 00:20
>>828
ポインタじゃなくてポインタのアドレスを渡せ。

849 名前:デフォルトの名無しさん :03/05/04 01:44
どれだけの数のファイルがコピーされるか分からないから、
コピー終了を検知するのは不可能

850 名前:829 :03/05/04 06:05
レス遅くなりました。

>>831>>841
うーん、それになってしまうのでしょうか。

>>832-834
わたしが試した中では"@"が収まりませんでした。
"W"が幅広いだろうと思ってはいましたが、
どのフォントでも"W"が一番幅広いという保証はないでしょうし…

>>839>>842
MS ゴシックをCreateFontで作成しました。

>>843
調べてみたところ、このAPIを使うとループを省略できそうですね。

>>846
固定ピッチフォントの半角文字は全部同じ幅だろうと
思っていたらそうではなかったので、その予想もちょっと
不安な気が…

とりあえず、全ての半角文字の幅を調べて、
最大値を採用してみることにします。
ありがとうございました。

851 名前:デフォルトの名無しさん :03/05/04 09:31
>>850
CreateFontがなんか失敗してSystemあたりが使われたりしてないかい?

852 名前:デフォルトの名無しさん :03/05/04 09:37
XPの「並べて表示」で表示されてるような
48*48のアイコンを取得するAPIってありますか?
ExtractIconExでは32*32と16*16しか取得できませんでした。

853 名前:デフォルトの名無しさん :03/05/04 12:26
>>848
助かりました。
よく考えたら当たり前ですね。


854 名前:名無し@沢村 :03/05/04 12:57
>>852
LoadImage

855 名前:デフォルトの名無しさん :03/05/04 12:59
CreateFontの引数を全部書いてちょーだい。

856 名前:デフォルトの名無しさん :03/05/04 13:19
>>847
ひとつ変数をつくってコピー直前に値を変え、コピー後にまた値を元に戻せば
いいんじゃないの? 別のスレッドからそれを定期的に身にいくと。

857 名前:デフォルトの名無しさん :03/05/04 16:57
>>855
MSDN見てちょーだい

858 名前:デフォルトの名無しさん :03/05/04 17:32
>>857
そういう意味ではなくCreateFontに正しい引数を与えていない可能性があるので
全部書いてちょーだいということ。


859 名前:デフォルトの名無しさん :03/05/04 18:49
>>858
よく上読んでなかった・・スマソ

860 名前:デフォルトの名無しさん :03/05/04 20:23
CreateFontに渡す引数は直接作らないで必ず
EnumFontFamiliesExが返す内容を渡す
変えていいのはせいぜいTrueTypeフォントの場合に
サイズとかBold, Italicの有無程度
さもないとどんなフォントが選択されるかわかったもんじゃない

861 名前:デフォルトの名無しさん :03/05/04 20:49
WindowsXPにおいてImagelist_draw()で半透明アイコンが正しく描画されないので
原因突き詰めた。で、マニフェストがあると正しく描画されることが判明(すなわ
ちComCtl32.dll のVer5を使うかVer6を使うか)

半透明アイコンを描画するには、ビジュアルスタイルに否応無しに対応しなければ
ならないということですか?

862 名前:デフォルトの名無しさん :03/05/05 02:28
>>860
シルト本とかペゾルド本では、普通にCreateFont()やCreateFontIndirect()を使っていたと思うけど、それもやめた方がいいの?



863 名前:デフォルトの名無しさん :03/05/05 02:37
>>862
この本に書いてあったことだから
立ち読みでもして適当に判断してくれ
http://www.amazon.co.jp/exec/obidos/ASIN/4774107808/ref%3Dpd%5Fbxgy%5Ftext%5F2/249-9396597-3063545

864 名前:デフォルトの名無しさん :03/05/05 06:53
>>860
まあ確かにLOGFONT::lfFaceNameに"MS ゴシック"なんて書くのはスリリングだな。
しかしジェネリックなコードを書く気ならEnumFontFamiliesよかGetStockObjectちゃうか?

865 名前:852 :03/05/05 07:23
>>854
レスども。
LoadImageでアイコンファイル(.ico)の48ドットアイコンは取得できました。
でも、EXEやDLLのアイコンも取得したいんですよ。

画面のプロパティでアイコンを48ドットに変更して
SHGetFileInfoの引数にSHGFI_SHELLICONSIZEを渡せば取得できたんですが、
これはさすがに間抜けすぎて使えませんでした。

もうちょっと調べてみます。

866 名前:デフォルトの名無しさん :03/05/05 07:48
しっかしSH系のAPIって、どういうつもりで作ったのかね。

867 名前:デフォルトの名無しさん :03/05/05 08:04
>>866
3.1 -> 95
ってことだろ
COMからんでるし

868 名前:デフォルトの名無しさん :03/05/05 09:08
>>864
と言うか、lfFaceName だけ設定してもそのフォントが選択されるとは限らない。
lfCharSet とかもきちんと設定しないと、マッチしないから適当なフォントが選択されたりすることがある。

と言いたいんじゃないか ?

ちょっと前に、そういう実例見たし。

869 名前:デフォルトの名無しさん :03/05/05 09:22
>>864
そうそう、忘れてたけどGetStockObjectについても触れてた

870 名前:デフォルトの名無しさん :03/05/05 10:41
Windows プログラミングって 難しいですね

871 名前:862 :03/05/05 13:04
>>863
サンクス。
今度読んでみる。


872 名前:デフォルトの名無しさん :03/05/05 19:40
>>855 猫の http://www.kumei.ne.jp/c_lang/sdk/sdk_27.htm

873 名前:デフォルトの名無しさん :03/05/05 22:05
WM_CREATEの時にCreatePenで自作(?)のペンを作成しない場合に、
WM_PAINT時にLineToなどで描画した場合ストックペンが使われてるのでしょうか?
API始めたばかりなので質問の仕方も変な気がしますが、
ご教授お願いいたします。

874 名前:デフォルトの名無しさん :03/05/05 22:21
>>873
そうだよ。BLACK_PEN がデフォルト

875 名前:デフォルトの名無しさん :03/05/05 22:25
>>874
ありがとうございます。
参考書の例題でWM_CREATE時に設定してたりしてなかったりなので不安でした。
これで心置きなく次へ進めます。

876 名前:デフォルトの名無しさん :03/05/06 15:10
自アプリのインスタンスのハンドルを
取得する API ってありますか?

GetWindowInstance ( HWND )
↑これは見つけたのですがウィンドウハンドルが
必要みたいで・・・。

877 名前:デフォルトの名無しさん :03/05/06 15:47
GetModuleHandle(NULL);

878 名前:デフォルトの名無しさん :03/05/06 15:56
>>877
ありがとうございます。
助かりました。

879 名前:デフォルトの名無しさん :03/05/06 18:53
VBじゃなくてAccessVBAの話なんですけど、

VB用のサブクラス化テクニックをまねすると、
ウィンドウを閉じるときに70%位の確率で無限ループに陥るのですが、
Accessでは根本的に無理でつか?

880 名前:デフォルトの名無しさん :03/05/06 22:29
質問。
MCIのテストプログラムなのですが、ビルドを行うと、
--------------------構成: mci - Win32 Debug--------------------
コンパイル中...
main.c
リンク中...
main.obj : error LNK2001: 外部シンボル "__imp__mciGetErrorStringA@12" は未解決です
main.obj : error LNK2001: 外部シンボル "__imp__mciSendCommandA@16" は未解決です
Debug/mci.exe : fatal error LNK1120: 外部参照 2 が未解決です。
link.exe の実行エラー
ブラウザ データベースを作成中...

mci.exe - エラー 3、警告 0
と、エラーが出ます。<windows.h>はいれてあります。
ほかのリンクか何かに必要なものってありますか?

881 名前:デフォルトの名無しさん :03/05/06 22:31
そのAPIをMSDNで調べれば必要なヘッダとライブラリが書いてあるが

882 名前:880 :03/05/06 23:14
>881
ほんとだ。
英語の方見てみたら書いてありました。
注意不足でした。THX!

883 名前:デフォルトの名無しさん :03/05/07 19:45
CreatePatternBrush() か CreateDIBPatternBrushPt() で
パターンブラシを作成できます。

このパターンブラシで FillRect() を実行する時の動作について
聞きたいのですが…

第2引数の RECT で塗りつぶす範囲を決めます。
範囲を(10,10)-(60,60)とかにした場合は、
パターンブラシから利用される範囲も(10,10)-(60,60)に
なっている(?)ようなのですが、そういうものなのでしょうか?

パターンブラシから利用される範囲が(0,0)-(50,50)とでも
なりそうな気も少ししたのですが…

884 名前:デフォルトの名無しさん :03/05/07 19:47
●貴方に代って恨み晴らします● 【復讐・特殊業務】
--------●○●別れさせ屋●復讐代行業務●○●----------
●騙された・裏切られた・弄ばれた・逃げられた・捨てられた・
相手に誠意が無い・異性問題・家庭内暴力・不倫疑惑解明・人間関係・金銭トラブル★ http://www.blacklist.jp/i
別離工作・情報収集・トラブル対策・ボディガ―ド・等々!
●真剣にお悩みの方、安心してご相談下さい。解決へ導きます★
□■各種データ・電話番号調査・住民票・戸籍謄本など調査■□
   http://www.blacklist.jp/i
【注意】ジャンプしない場合はURLをコピーしてファイルから開いて下さい●○● http://www.blacklist.jp/
--------------------------
◆リンク◆復讐現場密着24時◆ http://www.123456789.jp/


885 名前:デフォルトの名無しさん :03/05/07 20:03
>>883
言ってる意味がはずれてたらスマソ。
多分それはブラシの原点がずれてる。
UnrealizeObjectとSetBrushOrg使うと原点移動できるはず。
詳しくはググってみると見つかるかと。

もっといい方法があるかもしれないが・・・
俺が知ってるのはこれだけ。

886 名前:デフォルトの名無しさん :03/05/07 20:12
>>883
FillRect ならまだいいが、FillRgn とか Polygon とか Chord と
一貫した動作をさせることを考えると (10,10)-(60,60) の方が
良いのではないかと。

887 名前:デフォルトの名無しさん :03/05/07 22:16
LonghornでいままでのWinAPI殆どばっさり捨てるらしい。
蓄えた知識は出し惜しみせずこのすれへどうぞ。

888 名前:デフォルトの名無しさん :03/05/07 23:34
ListView の report と TreeView が一体になったコントロールを作りたいんですが、
どうすればいでしょうか。ヒントだけでもお願いします。

889 名前:デフォルトの名無しさん :03/05/07 23:41
>>887
ソースほしいな

890 名前:デフォルトの名無しさん :03/05/07 23:43
またGenericのお世話になるのかよ!

891 名前:883 :03/05/07 23:50
どうもありがとうございました。

>一貫した動作をさせることを考えると
これは知りませんでしたが、そういうことなら、
一貫しているとありがたいですね。

892 名前:デフォルトの名無しさん :03/05/08 00:45
>>887
それは困るな

893 名前:デフォルトの名無しさん :03/05/08 00:57
>>887
.NETFrameworkが基底になるってことか?
今のVisualC#.NETみたいな・・
で、Win32APIの呼び出しは不可と

894 名前:デフォルトの名無しさん :03/05/08 02:17
win64APIになるだけだったりして

895 名前:デフォルトの名無しさん :03/05/08 03:58
とりあえず今出てる話だと全てのウィンドウがLayered Window化して、
DirectX上で動くような感じになる、つー話だが。

896 名前:デフォルトの名無しさん :03/05/08 04:15
頼むからソースを

897 名前:デフォルトの名無しさん :03/05/08 04:19
ttp://itpro.nikkeibp.co.jp/free/NT/NEWS/20030506/2/

898 名前:デフォルトの名無しさん :03/05/08 04:26
DirectXの話はハードウェアのスペックの話じゃん・・・
既存のアプリ(=Win32で作ったアプリ)も動くって書いてあるじゃん・・・
確かに今までとはウィンドウのレンダリング方法が変わるとは書いてあるが
プログラミングに関するネタはどこにも無いじゃん・・・

899 名前:デフォルトの名無しさん :03/05/08 09:46
でこかでAPIを8,700まで減らすとかいう英語記事を読んだ記憶がある

900 名前:デフォルトの名無しさん :03/05/08 10:10
>>897
CPUは常時フルスロットルかよ。そのうちパソコンの世界にも「省エネ化」が
義務付けられるような気がしてきたよ。

901 名前:デフォルトの名無しさん :03/05/08 10:59
>>897
>1.5GHz動作のPentium 4に384Mバイトのメイン・メモリー,
>グラフィックス・カードは「ATI Radeon 9700」という
>ロー・レベルのパソコンで実行された。
うちのPCなんて…(以下略

902 名前:デフォルトの名無しさん :03/05/08 11:31
http://www.internetwk.com/breakingNews/showArticle.jhtml?articleID=9400498

903 名前:デフォルトの名無しさん :03/05/08 11:50
コントロールは再描画処理を行わなくても文字などが残ったままになるのは
デフォルトでそういう設定になってるからなんでしょうか?

904 名前:デフォルトの名無しさん :03/05/08 11:52
そんなとこ。

905 名前:デフォルトの名無しさん :03/05/08 11:55
即レスありがとうございました(_ _)

906 名前:デフォルトの名無しさん :03/05/08 11:56
どうしたしまして。てきとうだけどね。

907 名前:デフォルトの名無しさん :03/05/08 11:58
> 他のウインドウがあるかどうかにかかわらず,
> ウインドウ全体のレンダリングを常時実行する。

見えない部分も再描画かける、ってこと?
半透明Window以外でどういう意味があるんだ。

あー、Windowを動かした場合でもリアルタイムで後ろの画面が描画される、
ということなのか?

908 名前:デフォルトの名無しさん :03/05/08 12:31
>>907
隠れてても印刷できるとか

909 名前:デフォルトの名無しさん :03/05/08 13:03
MAPI関連なのですが、
未読メールを既読メールに変更する方法(関数名でも結構です)
をご存知の方お教えください。
MSDN Onlineでは全て英語。
翻訳サイトで和訳したものも読みましたが、
見つけることができませんでした。

環境:Win2000 VC++6.0

よろしくお願い致します。


910 名前:デフォルトの名無しさん :03/05/08 13:04
lnk2001外部シンボル"_WinMainCRTStartup"は未解決です
というエラーがでます。
ググったりヘルプを参照した結果、/ENTRYを設定するのではないか?って
とこまでは行き着いたのですが、どう設定したらいいのかがわかりません。
どなたかこのエラーの対策ご教授お願いいたします。

911 名前:デフォルトの名無しさん :03/05/08 13:04
デフォルトライブラリを無視するのチェックを外す

912 名前:デフォルトの名無しさん :03/05/08 13:11
>>911
すいませんが、どこにソノチェックがあるか教えていただけないでしょうか?
使ってるコンパイラはVisual Studio.NETでして、ヘルプで「デフォルトライブラリ」を検索したり、
プロジェクトのオプションをみたりしたのですが、見つかりません。
よろしくお願いいたします。

913 名前:!911 :03/05/08 16:41
>912 リンカ−入力−すべての規定のライブラリの無視
つーか、オレの2002では「プロジェクトのオプション」なんて
無いんだが...
操作が判らないレベルなら製品名やその他もろもろの情報を書かないと
解らんよキミ。

914 名前:デフォルトの名無しさん :03/05/08 17:36
>>902
ウホッ! いい削減!

915 名前:!902 :03/05/08 18:06
>914
Microsoft Plans Windows API Cleanup
だってさ。

916 名前:デフォルトの名無しさん :03/05/08 18:36
16bit時代の互換用APIは削除されてもかまわんが・・・

917 名前:名無し@沢村 :03/05/08 20:21
おれは就職してから1ヶ月目に絶対に会社をやめないという誓約書を書かされたよ。
会社をやめたら膨大な違約金を取られてしまうんだよ。
また自宅にあるPCも会社に没収されてしまったよ。尾行をつけられたり、電話も盗聴されているんだよ!
会社はおれが他の会社に移ったり自宅でこっそりプログラムをつくったりすることをとても怖れているよ。
困ったもんだね…  

918 名前:デフォルトの名無しさん :03/05/08 21:19
>>917
ネタですか?
犯罪じゃん、それ


919 名前:デフォルトの名無しさん :03/05/08 21:54
誓約書は労基法違反のため無効、今すぐ破り捨てることができる(ただし証拠は残すべき)
没収は刑法の強盗罪の構成要素を満たす
尾行もしくは盗聴による威力業務妨害で生じた遺失利益は損害賠償を請求できる

すべて証拠と記録を残すことを心がけ、弁護士に相談せよ

920 名前:デフォルトの名無しさん :03/05/08 22:08
沢村だよ

921 名前:デフォルトの名無しさん :03/05/08 23:03
荒らしのいう事は真に受けないほうがいい

922 名前:デフォルトの名無しさん :03/05/08 23:27
×荒らし
○なんか可哀想な人

923 名前:デフォルトの名無しさん :03/05/09 00:56
沢村にマジレスする時代が来たか・・

924 名前:デフォルトの名無しさん :03/05/09 13:26
>>909
自己レスですが、
Simple MAPIのMAPIReadMail()
で回避しました。
ありがとうございました。


925 名前:デフォルトの名無しさん :03/05/09 15:37
Popupメニューをプログラム的に消すにはどうするんでつか?

926 名前:デフォルトの名無しさん :03/05/09 15:52
USBの装置が付いているかどうか、
電源が入っているかどうかを調べる方法を教えて下さい。

よろしくお願いします。

927 名前:デフォルトの名無しさん :03/05/09 17:20
>925
ESCキーを押した事にすれば消えるんでは?

928 名前:デフォルトの名無しさん :03/05/09 19:22
>>925
WM_CANCELMODE

929 名前:デフォルトの名無しさん :03/05/09 22:59
いろいろ調べたのですが分かりませんでした。質問させてください。

Num Lock キーを押しても、Num ランプが変化しないようにする
方法はありますか? あれば教えてください。よろしくお願いします。

930 名前:デフォルトの名無しさん :03/05/09 23:06
質問お願いします。
他プロセスのコモンコントロールを、操作することは可能でしょうか。

適当なコントロールのハンドルまでは取得できたので、
試しにSETCURSEL等をSendMessageで送ってみたのですが、
さすがにそれだけでは、変化してくれませんでした。

やり方を御存知の方、よろしくお願いします。

931 名前:デフォルトの名無しさん :03/05/09 23:13
>>929
なんでそんなことしたいんだよ・・・

932 名前:デフォルトの名無しさん :03/05/09 23:18
>>929
VK_NUMLOCKが来たら、
GetKeyStateでトグルか調べてVK_NUMLOCKを送る。

933 名前:デフォルトの名無しさん :03/05/09 23:30
>929
キーフックしてNumLockキーが来たら無視するといった手もある。


934 名前:デフォルトの名無しさん :03/05/10 00:04
NumLockキーが押されたら隣にいる人がすかさず押すという手もある。
「ぽち」「ぱしっ」

935 名前:デフォルトの名無しさん :03/05/10 01:18
>>931
話せば長くなるので割愛しますが、キー配置を
変更する必要が生じてしまったものですから…。

>>932
どうもありがとうございます。
ただ、もっとスマートな方法はないものかなーと思いまして。

>>933
SetWindowsHookEx() を使ってキーフックし、
無視したのですがうまくいきませんでした。

>>934
それは、たぶん本質的には >>932 の方法と同じです(w

936 名前:デフォルトの名無しさん :03/05/10 01:59
>930
他プロセスへは、SendMessage()じゃなくてPostMessage()を使え。
あと、他プロセスにポインタを渡しても意味がないので、文字列なんかを渡すときは注意。

>935
GetKeyboardState()で全ての仮想キー状態をを読み出し、SetKeyboardState()で書き換えるってのはどう?
932に似てるけど、メッセージを使わない分スマートかも。

937 名前:デフォルトの名無しさん :03/05/10 02:04
画像処理の質問ですけど
Win32APIじゃBMPなどの生フォーマットしか対応してないんですか?
JPEGなどは自前でルーチン組むしかないんでしょうか
それかJPEG/PNGグループのルーチン使うとか
MFCにもJPEGライブラリってないみたいだし
エクスプローラーってJPEG/PNG/GIFの画像の縮小とか表示
できますよねアレはどのAPI使ってるんでしょうか?

938 名前:デフォルトの名無しさん :03/05/10 02:09
>>935
もう枯れた技術かも知れないが中の人にry

939 名前:デフォルトの名無しさん :03/05/10 02:51
>>937
Explorer == IE

940 名前:名無し@沢村 :03/05/10 04:30
>>937
ヌヒよ、読み込みならOleLoadPicturePath()だ

941 名前:名無し@沢村 :03/05/10 04:32
>>937
ヌヒよ、GDI+を使うという手もあるぞ

942 名前:デフォルトの名無しさん :03/05/10 05:44
「おにいちゃん、、あたし、おにいちゃんのことが好きなの・・、
だから、あたしにMP3を再生するAPI教えて・・、ね?
・・・あ、あと、、初めてだから、やさしくして・・・」

943 名前:デフォルトの名無しさん :03/05/10 06:37
>>936
>>930じゃないですが、他プロセスにPostMessage()で文字列を渡したい時はどうすればいいんですか?


944 名前:デフォルトの名無しさん :03/05/10 09:07
>>935
OS は ?
WindowsNT 系で、ずっと NumLock が効かなくていいんなら、キーマップを弄ると言う手があるよ。

ttp://www.jaist.ac.jp/~fujieda/winnt/scancode.html

945 名前:デフォルトの名無しさん :03/05/10 10:34
>>943
PostMessageでポインタ渡すのはそもそも不可能

946 名前:デフォルトの名無しさん :03/05/10 10:36
>>942
MCIで普通に再生できるぞ

947 名前:デフォルトの名無しさん :03/05/10 10:44
>>943
CreateFileMappingで共有メモリを作るってのはどうよ

948 名前:デフォルトの名無しさん :03/05/10 10:46
>>943
8byteに区切って送りまくり

949 名前:929 :03/05/10 11:05
>>936
確かに考え方としてはスマートですが、メッセージ処理よりも
オーバーヘッドが大きくなってしまいそうですね…。

>>944
できれば 9x系/NT系どちらでも動くようにしたいのです。
でも、この話は知りませんでした。どうもありがとうございます。

950 名前:デフォルトの名無しさん :03/05/10 11:40
>>949
ツール使っていいのなら、俺なら 窓使いの憂鬱 で設定するけどな。
設定を日本語109キーボードにしてdot.mayu(のコピーしたファイル)に
key NumLock = &Ignoreと書けば終わり。(試してないから間違ってるかも)
ただXPでは基本的に動かない。(むりやりに動かす方法はある)

951 名前:デフォルトの名無しさん :03/05/10 11:57
>>949
Win9x系だったら、「SwapScan.386」を使う手も。
自分しか使わないプログラムならね。

>>943
他プロセスとの情報共有なら、
ファイル入出力、クリップボード、パイプ、アトム、ミューテックス
メモリマップドファイル、システムフック、DDE・OLE
なんかいろいろある。これらと組み合わせて使え。

952 名前:デフォルトの名無しさん :03/05/10 11:58
>>943
947と理屈は同じなんだが、大して多くないデータなら WM_COPYDATA が一番。
但しこっちは Send ね。

953 名前:(;´Д`) :03/05/10 12:03
>>943
WM_SETTEXTという裏技もあるよ

954 名前:デフォルトの名無しさん :03/05/10 12:11
>>953
以前、WM_SETTEXTを使ってだめだったけど。
たぶんlParamの指しているポインタが無効だから。
SetWindowText()は使えた。

955 名前:デフォルトの名無しさん :03/05/10 12:14
他プロセスのポインタ分かるんだから、
他プロセスのアドレス読めば良いじゃん。

956 名前:デフォルトの名無しさん :03/05/10 12:23
>>955
Win95以降は仮想アドレス空間を使っているから、他のプロセスのポインタ値は意味ないんじゃ?
http://www.bd.wakwak.com/~opapa/VC/System/Process.htm
http://yokohama.cool.ne.jp/yokohama/11147/win/memory.html


957 名前:デフォルトの名無しさん :03/05/10 12:26
>>956
他プロセスのメモリを読み書きするAPIがあるという話だろ
正直使用はすすめられないが

958 名前:デフォルトの名無しさん :03/05/10 12:56
ReadProcessMemoryか。デバッグ権限が要るんだよな、たしか。

959 名前:930 :03/05/10 14:10
>>936
Postしたら無事にできました
レスありがとうございました
ご忠告にも多謝、ポインタやバッファ渡しには気を付けます

960 名前:945 :03/05/10 16:08
>>947
>>951
Postで送ったあと渡したアドレスのメモリをいつ開放したらいいか
どうやって知るの

961 名前:デフォルトの名無しさん :03/05/10 16:30
リソースエディタで、タブ付きダイアログ作るの面倒だなと思い、
他の人はどうやっているのか調べているうちに、一つ疑問がわきました

例えばVC6の、ツール>カスタマイズで出てくる
ダイアログのタブっぽいものを調べてみると、
タブじゃ無いみたいなんです(クラスがSysTabControl32じゃない)

あれは一体なんなのでしょうか?

962 名前:デフォルトの名無しさん :03/05/10 16:30
>>960
バッファが不要になったら向こうからなんかのメッセージ送ってもらうとか。

963 名前:デフォルトの名無しさん :03/05/10 18:34
>>961
PropertySheet?

964 名前:943 :03/05/10 19:11
レスありがとうございました。
いろいろと試してみます。(WM_COPYDATAに落ち着きそうですが)


965 名前:961 :03/05/10 19:27
>>963
まさにこれみたいです。
おかげでコントロールが重なって、訳が分からなくなるような
タブ付きダイアログを作らずにすみそうです。

レスありがとうございました!

966 名前:929 :03/05/10 22:51
>>950 >>951
実は自分のアプリケーションの中だけで実行したかったのですが、
よく考えてみると、それだとアプリケーションを切り替えるたびに
ランプの状態も切り替えなければならなくなり、かなり不自然に
なってしまうので、他の手段を模索してみようと思います。
レスしてくださった皆様、どうもありがとうございました。

967 名前:デフォルトの名無しさん :03/05/11 04:01
ビットマップの透過をしたいんですが、できるAPIありますか。
探してみてそれっぽいのにBitBltがあったのですが、引数がhdcで使い方が分かり
ません。コピー元、コピー先それぞれのlpBMP,BmpInfoを引数にするようなのが
あるとよいのですが。うまく質問できませんが教えてください。

968 名前:デフォルトの名無しさん :03/05/11 04:39
どう透過したいのかわからんので答えようがないが。
hdcが分からないつー時点で、
「とりあえずまともな入門書読め」
としかいいようがない。

969 名前:967 :03/05/11 06:01
>>968
>どう透過したいのか
ゲームでよくあるやつですが、草マップ16*16、人マップ16*16を予め
作っておいて、2つとも開いてメモリに記憶、草を土台にしてその上に
人の白の部分以外をコピー、てな感じです。1バイトずつ調べて自力で
やってしまう方法はわかるのですが。普通はどうやるんですか?
>hdcが分からない
ハンドル:ポインタみたいなのですよね。詳しい意味はわかっていませんが、
セットで使われるので使い方は知っていたのですが。BitBltの場合2つある
ので、普通は一つなので分からなくなりました。

970 名前:デフォルトの名無しさん :03/05/11 06:26
>>937
普通にIJGかlibpng使えばいいと思うが……APIに拘るなら
出てない範囲だとSetDIBitsToDevice,StretchDIBitsなんかもある

971 名前:デフォルトの名無しさん :03/05/11 09:10
>>969
例えば、ファイルをコピーするときは"r"と"w"で2個のFILE*がいるだろ?
それと同様、BitBltするときも受け側と送り側で2個のHDCがいるんだよ

972 名前:デフォルトの名無しさん :03/05/11 09:15
>>969
>草と人
漏れならリージョンを使いそう
人を枠なしの子ウインドウにしておいてSetWindowRgn
データはPathToRegionで作るかも

973 名前:969 :03/05/11 09:55
>>971
HDCってウインドウに対しての物ではないのですか?セットで覚えただけなので、
詳しい意味がわからなくて。
なお探してて見つけたのはこんな感じのですが。下のからヒントを下さい。
http://www.google.co.jp/search?q=cache:1zmYZKUQU-MC:www.ichigo-cafe.com/prog_tips/09_membmp/membmp.html++%22BitBlt%22+-VB&hl=ja&lr=lang_ja&ie=UTF-8
>>972
そういうやり方もあるんですか。始めて聞いたので分からないですが、少し調べて
見ると、関数より機能を限定した感じなんですかね。その描画領域を複数用意して
普通の処理よりやりやすくする。ってほんと始めて聞いたので分からないです。

974 名前:デフォルトの名無しさん :03/05/11 10:01
>>972
リソース食いすぎ。

975 名前:デフォルトの名無しさん :03/05/11 10:41
>>973
デバイスコンテキストってのは確か対象のデバイスが何であってもプログラマが意識しないで使えるように
作った共通のインターフェースのことだったと思うけど・・(うろおぼえ
だからもちろんウインドウも含むし、描画元のビットマップもデバイスコンテキストに関連づける。
SelectObject(hDC, hBitmap);とかやったことはないですか?

で、描画はそのURLの方法でいいんじゃない?
ヒントというかそのままのような気がするが・・


976 名前:デフォルトの名無しさん :03/05/11 11:01
PlaySoundで50MBクラスの*.wavが再生できません。
これは、このAPIのしようでしようか?

977 名前:969 :03/05/11 11:12
>>975
なるほど。それでわかりました。SelectObjectでHDCとBitMapが引数で、
HDCの方は参照渡しみたいにしてHDCを変化させる。その後ウインドウのHDC
とBitMapのHDCを比べて1段階ずつウインドウに透過描画する。それを繰り
返すんですね。ありがとうございました。


978 名前:名無し@沢村 :03/05/11 12:51
>>969
MaskBlt()

979 名前:969 :03/05/11 13:15
>>978
BitBltでもできましたがこれも透過ができそうです。使い方を勉強してみます。ありがとうございました。

980 名前:デフォルトの名無しさん :03/05/11 17:23
次スレ作成時期か?

981 名前:デフォルトの名無しさん :03/05/11 19:17
CreateThread() のタイミングだな

982 名前:980 ◆oqSJWu4Ch2 :03/05/11 20:06
そしたら、私が作ってこよう。

こっちは、誰か ExitThread() してくれ。

983 名前:980 ◆oqSJWu4Ch2 :03/05/11 20:18
次スレ

Win32API 質問箱 Build11
http://pc2.2ch.net/test/read.cgi/tech/1052651750/

984 名前:デフォルトの名無しさん :03/05/11 20:23
TerminateThread(GetCurrentThread(), 0);

985 名前:デフォルトの名無しさん :03/05/11 20:29
        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )


986 名前:デフォルトの名無しさん :03/05/11 20:55
CloseHandle は新スレでやるの?

987 名前:デフォルトの名無しさん :03/05/11 21:41
>>984
いきなり強制終了かよ !!

988 名前:デフォルトの名無しさん :03/05/11 22:33
すみません、質問させてください。
AプロセスとBプロセスで同期を取るために、
AプロセスがBプロセスをwaitさせたいとします。
その場合、Aプロセス内でWin32APIのSuspendThread関数を用いて、
Bプロセスをwaitさせる例が、
「Advanced Windows(Jeffrey Richter著・MicrosoftPress ASCII」
に記述されていました。
 この例の中ですでに起動されているスレッドのハンドルを取得するため、
OpenThread関数を用いたコーディングを行ってるのですが、
このOpenTread関数はWindows2000からのサポートのため、
WindowsNT4.0には対応していません。
 そこでWindowsNT上で、すでに起動されているプロセスをwaitさせるためには
どのような方法またはAPIが存在するでしょうか。
 ぜひお願いしますm(_ _)m

989 名前:デフォルトの名無しさん :03/05/11 22:49
>>988
プロセスの同期を取るために、他のプロセスから SuspendThread でプロセスを停止させる...、最近はこう言うことができるようになったのか...。

990 名前:デフォルトの名無しさん :03/05/11 23:53
Suspendしてもいいタイミングを伝えるとか、他の手段を併用しない限り、安全に同期できない気が

991 名前:デフォルトの名無しさん :03/05/11 23:55
そういえば、自分のスレッドをSuspendして、他のスレッドからResumeしてもらうのはあり?

992 名前:デフォルトの名無しさん :03/05/12 15:34
ありだけど、そういうスレッドのパターンはあまりみないね。

CreateThread時のパラメータでいきなりサスペンド状態にしておいて、
必要なときにResumeThreadするのはしたことあるけど。

普通ならセマフォかミューテックスで止まる側に明示的に待機させる。

動機オブジェクトの大気のコストが馬鹿にならないような場合
(待機スレッド数が多いときとか)は、Suspendってのもありかな。

パフォーマンスカウンタとか穿り返せばThreadIdからスレッドハンドルが
もらえるかも。

もらえても自プロセスにAttachしてないハンドルは使えないんだけどね。


993 名前:デフォルトの名無しさん :03/05/12 22:27
ゴミ箱のパスがほしいのですが、
SHGetSpecialFolderPath( hDlg, szRecycleBinPath, CSIDL_BITBUCKET, 0 );
とやると、空っぽで返ってきます。
どうすればいいのでしょうか?

994 名前:デフォルトの名無しさん :03/05/12 22:37
俺は使うけどなぁ>自分でSuspend

995 名前:デフォルトの名無しさん :03/05/13 01:56
>993
失敗するってヘルプに書かれているが、仮にパスを得たとして何も出来んだろ?
何するつもり?

996 名前:デフォルトの名無しさん :03/05/13 08:16
(・∀・)ニヤニヤ 埋め

997 名前:デフォルトの名無しさん :03/05/13 08:17
            ∧_∧
            ( ´_ゝ`)
       ___∬_(つ____と)___
      /\ 旦          \
     /+ \________ヽ  今だ!コタツの中ゲットォォォォ!!
     〈\ + + +    + + `、   ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     \ \__ノ⌒⌒⌒⌒⌒ヽ______ヽ      ∧∧   )      (´⌒(´
      `、___ノ⌒⌒⌒⌒ヽ_____〉  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
                                  ̄ ̄  (´⌒(´⌒;;
                               ズザーーーーーッ

            ∧_∧
            ( ´_ゝ`)
       ___∬_(つ____と)___
      /\ 旦          \
     /+ \________ヽ
     〈\ + + +    + + `、
     \ \__ノ⌒⌒⌒⌒⌒ヽ______ヽ  (´⌒(´
      `、___ノ⌒`つ⌒≡≡≡≡≡(´⌒;;
             ̄ ̄  ズポッ


998 名前:デフォルトの名無しさん :03/05/13 08:18
            ∧_∧
            ( ´_ゝ`)
       ___∬_(つ____と)___
      /\ 旦          \
     /+ \________ヽ
     〈\ + + +    + + `、
     \ \________________ヽ
      `、_____________〉


      \ぷ  | ∧_∧
        \ぅ | ( ´_ゝ`)
       ___∬__(つ____と)__
      /\ 旦          \
     /+ \________ヽ
     〈\ + + +    + + `、
     \ \________________ヽ
      `、_____________〉


999 名前:デフォルトの名無しさん :03/05/13 08:19
       ;⌒`)  ∧_∧  (´⌒;;
      ;; `).`), ( ´_ゝ`) (´ ("
       ___∬_(つ____と)___(´(´⌒)
      /\ 旦          \
     /+ \________ヽ
     〈\ + + +    + + `、
     \ \________________ヽ
      `、_____________〉


                 ∧             ∧
                  / ヽ            ./ .ヽ
               /   `、______/   ヽ           (⌒;:)
              /'"                  "'ヽ.
              /"                     "ヽ,('';:⌒⌒ヽ丶,..
            i   ○     | ̄ ̄|  ○        へ        ;;:: j   (⌒::;
            |         |  ...::|     。   ;:::/  ::::: : ::⌒ ̄""⌒ヾ
             !.       丿 ::::::::| _ _。  ::::::::: /::: ; ": ̄       ::)
             ヽ       l  :::::::┴┐   ,,..:;::::::::::/:'(: : : ;;:;:      ⌒ ⌒)
              \     しw / .......::::::;;:;::::::/;:/:::::::::ノ;;::::::; :  .....   .....  ::::ノ
                ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄' ̄"" ̄" "  ̄ ̄ ̄"'""  ̄ ̄ ̄" '''' ̄'' ̄


1000 名前:デフォルトの名無しさん :03/05/13 08:21
           ∧⊂ヽ
           (゚Д゚)ノ
   ____/ |⊃ |\____
   \ 叩 / ̄ |   | ̄\ 氏 /
     \/    ⊂ ノ〜  \/
     /\ ((⊂∪⊃)) /\
   / 逝 \____/ 煽 \
     ̄ ̄ ̄ ̄\. 騙 ./ ̄ ̄ ̄ ̄
              \/

   1000ゲット生贄で召還!
    ゴゴゴゴゴゴゴゴゴ・・・・・・・・



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