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


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

Win32API質問箱 Build17
1 名前:デフォルトの名無しさん :04/02/23 02:19
スレ立てるまでもない、Win32APIについての質問はこちらへどうぞ。
最低限、最新スレくらいは質問する前に検索ぐらいしてください。
過去スレ・参考は>>2-5くらいを参照してください。

2 名前:デフォルトの名無しさん :04/02/23 02:22
2Get!

3 名前:デフォルトの名無しさん :04/02/23 02:24
マ板にもある?

4 名前:デフォルトの名無しさん :04/02/23 02:24
- 過去スレ
Build15:http://pc2.2ch.net/test/read.cgi/tech/1069339866/
Build14:http://pc2.2ch.net/test/read.cgi/tech/1065328397/
Build13:http://pc2.2ch.net/test/read.cgi/tech/1059549320/
Build12:http://pc2.2ch.net/tech/kako/1056/10560/1056033645.html
Build11:http://pc2.2ch.net/tech/kako/1052/10526/1052651750.html
Build10:http://pc2.2ch.net/tech/kako/1047/10478/1047819779.html
Build9:http://pc2.2ch.net/tech/kako/1044/10449/1044929160.html
Build8:http://pc2.2ch.net/tech/kako/1040/10409/1040964626.html
Build7:http://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
Build6:http://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
Build5:http://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
Build4:http://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
Build3:http://pc.2ch.net/tech/kako/1017/10170/1017072275.html
Build2:http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Build1:http://pc.2ch.net/tech/kako/991/991576947.html


- MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/index.html
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
Google
http://www.google.com

5 名前:デフォルトの名無しさん :04/02/23 02:24
過去すれ17
http://pc2.2ch.net/test/read.cgi/tech/1073830065/

6 名前:デフォルトの名無しさん :04/02/23 02:28
>>5
×過去すれ17
○過去すれ16

7 名前:デフォルトの名無しさん :04/02/23 04:17
+          +  。
 *  、-'ヾ'''ヾ`"''','、、 ,         _____
  _-'"         `;ミ、      /:::::::::::::::::::::::::\〜
 _-"ミ;ノリ人ノノヘ/リ; `゛゛ ミ    /::::::::::::::::::::::::::::::::::::::\〜
 >ミ/         'γ、` ミ   |:::::::::::::;;;;;;|_|_|_|_|〜
 了| "~`、  "~"`   {,',; ;} 。  |;;;;;;;;;;ノ∪  \,) ,,/ ヽ〜
 "7 `⌒`   ⌒   }ミ:. {   |::( 6∪ ー─◎─◎ )〜 
  '|   /       レリ*    |ノ  (∵∴ ( o o)∴)〜  
+  i  (       }ィ'     |∪< ∵∵   3 ∵> ハァハァ
   `  ー---    /|` +     \       ⌒ ノ
    ヽ  ̄    / |__        \_____/
     `i、-- '´   |ソ:     
      ↑               ↑
     JAVAプログラマー     Winプログラマー


8 名前:デフォルトの名無しさん :04/02/23 08:45
>>7
わけわかんないw

9 名前:デフォルトの名無しさん :04/02/23 08:53
>>7
この違いはなんですか?

10 名前:デフォルトの名無しさん :04/02/23 09:00
>>7
JavaもWinもいじるという一番多いパターンの人はどうなるんだよ。
おそらく大部分の人間がそうだぞ。

11 名前:デフォルトの名無しさん :04/02/23 09:15
両方いじる人↓
      ─、、
    (゚皿゚ O) 
    / ̄/ >>
    | ̄|  | |
   @/\ \@/
     /'/ /'/
     | |  | |
    -┛ -┛

12 名前:デフォルトの名無しさん :04/02/23 09:17
>>11
人ですらねぇのかよw

13 名前:デフォルトの名無しさん :04/02/23 09:37
>>11
高見盛?

14 名前:デフォルトの名無しさん :04/02/23 09:41
>>11かなりできそう

15 名前:デフォルトの名無しさん :04/02/23 11:02
こんにちは

あの、リストビューを作ったのですが
行の削除の仕方はわかりますが、列の削除方法がわかりません。
どのAPIを使えばいいのでしょうか?

16 名前:デフォルトの名無しさん :04/02/23 11:08
>>15
ListView_DeleteColumn

17 名前:デフォルトの名無しさん :04/02/23 12:38
。  。。
         。ρ。       ううっ!出るっ!!
         ρ         ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
         mドピュッ
        C|.| /⌒⌒⌒ヽ/~ ̄ ̄ ̄ ̄ヽ
      /⌒ヽ⌒ヽ___   |  ∴ヽ  3  )
     ./  _  ゝ___)(9     (` ´) )←>>1-16
    /  丿ヽ___,.───|彡ヽ ―◎-◎-|
    _/ )          (   Y ̄ ̄ ̄ ̄)
   (__/           \____/


18 名前:デフォルトの名無しさん :04/02/23 12:44
>>11
吹いて唾が飛んじまったよ。(w

19 名前:デフォルトの名無しさん :04/02/23 20:57
 ゲーム内で動画(mpeg)を再生させるプログラムを組んでいます。
下記のようなコードで動画を再生させることはできたのですが、
MM_MCINOTIFY受信後にデバイスを閉じる為にMCI_CLOSEを行なうと
NT系で一瞬タスクが切り替わってしまいます。
 ウィンドウモードの場合は問題は無いのですが、フルスクリーン
モード(DXによる排他制御)だとアプリケーションが最小化されて
しまうので困っています。この現象を回避する方法をご存知の方、
いらっしゃいましたら宜しくお願いします。

//ムービーを再生させるまでの処理
mciOpen.lpstrElementName = szFile; //ムービーへのファイルパス
mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)&mciOpen);
mciWindow.hWnd = g_hWnd; //デバイス提供先をアプリケーションへ
mciSendCommand(wID, MCI_WINDOW, MCI_DGV_WINDOW_HWND, (DWORD)&mciWindow);
SetRect(&mciPut.rc, 0, 0, 800, 600); //出力矩形を設定(クライアント全体)
mciSendCommand(wID, MCI_PUT, MCI_DGV_RECT | MCI_DGV_PUT_DESTINATION, (DWORD)&mciPut);
mciPlay.dwCallback = (DWORD)g_hWnd; //再生開始
mciSendCommand(wID, MCI_PLAY, MCI_NOTIFY, (DWORD)&mciPlay);

//...
//MM_MCINOTIFYを受け取ったらデバイスを閉じる
mciSendCommand(wID, MCI_STOP, MCI_WAIT, (DWORD)&mciParms);
mciSendCommand(wID, MCI_CLOSE, MCI_WAIT, (DWORD)&mciParms);


20 名前:デフォルトの名無しさん :04/02/23 21:29
DirectShow使うようにしたら?

21 名前:デフォルトの名無しさん :04/02/23 21:48
GetOpenFileName()で hook を使い、かつ、履歴などの左側部分がついた
新しい形式のウィンドウを出すにはどうしたらいいのでしょうか?
ENABLEHOOK すると履歴などの部分がないウィンドウになってしまいます。


22 名前:デフォルトの名無しさん :04/02/23 23:43
こんばんわ

あの質問よろしいでしょうか。

ListView_InsertColumnで、列を5列作成して、
その後、ListView_DeleteColumnで、5列全てを削除した後に、
列をListView_InsertColumnで2列追加したら、何故か、削除したつもりの5列の2列ぐらいが残ってしまいます。

何回繰り返してもそうなります。

ListView_DeleteColumnは、2列分、FALSEを返すので、
何かエラーがあると思われますが、
どの点に問題があるのかわかりません。

列を削除する際、何か特別な事でもするのでしょうか?


23 名前:デフォルトの名無しさん :04/02/24 00:09
>>22
たぶん、ListView_DeleteColumn(index=0,1,2,3,4) の順で削除しているのが原因。
index=3 を削除しようするとき、残りの列はいくつか考えてみよう。

24 名前:22 :04/02/24 00:22
>>23
そのとおりでした。
私の勘違いです。

index=4,3,2,1,0の順で削除しないと、おかしいですよね。
5列分の一列消せば、全体の数が4になり、順々に減っていきますんね。

勘違いでした。
ご返答ありがとうございます。

馬鹿な質問してスイマセン。m(__)m


25 名前:Star :04/02/24 01:46
http://yi-soft.udap.jp/Window.htm
↑問題のソース
 C・C++とHSPで、サイズ(1024/2,768/2)のウィンドウを表示するという、同じ様なプログラムを作ったのですが、
なぜかC・C++の方が若干ウィンドウサイズが小さく、長い間悩みましたがどうしてもサイズが合いません。
なぜこの様な状態になるのかわかる方がいらっしゃったら、ご教示ください。

26 名前:デフォルトの名無しさん :04/02/24 02:06
HSPやったことないんだが、このscreen命令のサイズはクライアント領域のサイズじゃないか?
それに対して、CreateWindowのサイズはウィンドウのサイズ。
だから、枠の分だけCで組んだ方が小さくなる。

…と、思ったんだがどうだろ?


27 名前:デフォルトの名無しさん :04/02/24 02:22
両方で作ったウィンドウのスクリーンショットどっかにあげてみ?

28 名前:デフォルトの名無しさん :04/02/24 02:26
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  |   次でぼけて!  |
  |________|
      ∧∧.||
    ( ゚д゚)||
    / づΦ

29 名前:Star :04/02/24 02:52
 http://yi-soft.udap.jp/images/Wnd_with_C++.png
 http://yi-soft.udap.jp/images/Wnd_with_HSP.png
↑それぞれのウィンドウ
 http://yi-soft.udap.jp/images/Wnd_Overlapped.png
↑重ねたウィンドウ

30 名前:デフォルトの名無しさん :04/02/24 02:55
>>26が正解。

31 名前:デフォルトの名無しさん :04/02/24 03:00
>>29
AdjustWindowRectEx()を使ってウィンドウサイズを調整しれ。

32 名前:デフォルトの名無しさん :04/02/24 03:08
メニューの段数を正確に知る方法が無いから、Adjust系はダメ。
一度ウインドウを作った後、ウインドウとクライアントのサイズの差を取って
自前で計算するのが正しいやり方

33 名前:デフォルトの名無しさん :04/02/24 03:09
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD nReason, LPVOID pReserved)
この型って、C#だとそれぞれ、IntPtr、uint, IntPtr
でOK?

34 名前:Star :04/02/24 03:43
>>32
 差を取るにはどうすればいいんですか?

35 名前:デフォルトの名無しさん :04/02/24 04:15
EDITボックスだと32KBまでしか文字列が入らないですけど
それ以上使いたい場合は何を使えばいいのでしょうか?
検索のヒントだけでも教えてください

36 名前:デフォルトの名無しさん :04/02/24 04:16
>32
画面の大きさに対し、メニューの数が十分少ないと分かってるのなら、Adjustで良いんじゃないの?
そもそも、その微妙な調整でだって、メニューの段数が変わる可能性もあり得ないわけではない。

37 名前:デフォルトの名無しさん :04/02/24 04:34
>>35
NT系使え
サイズ制限なし

38 名前:デフォルトの名無しさん :04/02/24 04:36
>>36
幅を決めてから高さを決めるような二段式にすれば
システムのプロパティいじったり、動的にメニューを変えない限り
問題なく決定できるけど。

39 名前:デフォルトの名無しさん :04/02/24 04:46
>38
なるほど納得。

40 名前:デフォルトの名無しさん :04/02/24 05:13
>>37
9xの場合はどうすればいいんですか?

41 名前:デフォルトの名無しさん :04/02/24 06:18
>>21
おそらくヘッダが古い。
新しいサイズの OPENFILENAME 構造体が必要。


42 名前:40 :04/02/24 06:36
Meでやったら40KBの容量がEDITボックスに収められ、問題解決しました
おじゃましました

43 名前:デフォルトの名無しさん :04/02/24 06:37
>>40
多少重くてもいいならリッチエディット、それがいやなら自作するなりどっかから
ライブラリ・コンポーネントを拾ってくるなり。

44 名前:デフォルトの名無しさん :04/02/24 12:30
>>41
あるいはヘッダが最新でも#define _WIN32_WINNT 0x500
してないとか

45 名前:デフォルトの名無しさん :04/02/24 16:03
J3002VとUSBで通信してアドレス帳などを
ゲットしたいのですが
どこから取り掛かればよいでしょうか?
Cと普通のAPIなら使えます。

46 名前:デフォルトの名無しさん :04/02/24 16:27
>>45
ttp://www.cqpub.co.jp/hanbai/books/33/33191.htm


47 名前:デフォルトの名無しさん :04/02/24 16:29
>>46
thx
難しそうなのでやめました。

48 名前:デフォルトの名無しさん :04/02/24 17:04
>>45
ttp://www.jrcphs.jp/j300v/download.html
これのドライバのI/Fわかればなんとかなる

49 名前:高校生 :04/02/24 17:37
>>40
要するに、メニューとか何とかがからんで、画面の描画する領域が狭くなってしまうということかな?
とすると……。
//Winはウインドウサイズ、Cliはクライアントエリア
  RECT Win Cli;
//それぞれ取得する。
  GetWindowRect(hwnd, &Win);
  GetClientRect(hwnd, &Cli);
//ウインドウのサイズを計算して、
  Win.right -= Win.Left;
  Win.bottom -= Win.top;
//ウインドウのリサイズ
  SetWindowPos(hwnd, hwnd, 0, 0,
    (Win.right - Cli.right) + 640,
    (Win.bottom - Cli.bottom) + 480,
    SWP_NOMOVE | SWP_NOZORDER);

学校からだからタイプミスしているかもしれないけど。

50 名前:デフォルトの名無しさん :04/02/24 17:41
>>36>>38見てなかったのか

51 名前:21 :04/02/24 19:38
>>41 >>44
米国インテルのWebサイトに情報があり
まさにそのようですね
SDKをupdateしてみました。
標準のヘッダとライブラリを無視する設定にしたので
新しいヘッダを読んでいる筈なのですが
状況は変わりません。
sizeof(OPENFILENAME)を表示させるとあいかわらず76のままです
あたらしいものは88なんですよね?


52 名前:デフォルトの名無しさん :04/02/24 20:12
>>49
ついでだから SetWindowPos の最後の引数に
SWP_NOACTIVATE もつけてあげて。
非アクティブなウィンドウでそれをやられて
悩んだ事があった。

53 名前:Star :04/02/24 21:17
 クライアントサイズの操作、うまくできる様になりました。
教えてくださった方々、ありがとうございました。

54 名前:デフォルトの名無しさん :04/02/24 21:24
>51
漏れだけかもしれないが、無印.NETだとどうやっても新しい方での
表示はできなかった
.NET 2003だと無問題でアッサリできたYO!

55 名前:デフォルトの名無しさん :04/02/25 07:31
いまプリンタに印刷するプログラムを書いるんですが、印刷される文字が小さすぎます。
ユーザにダイアログからフォントを指定してもらって、
印刷ダイアログの返す DC にフォントや MM_TEXT 等を設定して
TextOut で1文字ずつ描画してるんですが、予想される文字サイズと違います。
 1 pt = 1/72 インチ
 1インチ = 2.54 cm
なはずなので、
 16 pt = 5.64 mm
 72 pt = 25.4 mm
ぐらいに印刷されると思うんですが
どう考えても文字サイズが小さすぎます。

どこで計算を間違えているのか分かりません。
予想されるミス、ありがちなミスは何でしょうか。
どなたかよろしくお願いします。


56 名前:デフォルトの名無しさん :04/02/25 09:32
>>51
開発環境上のinclude/libディレクトリの指定は、ちゃんと新しい方が上位になってるよな?

57 名前:デフォルトの名無しさん :04/02/25 15:37
ちょっと疑問に思ったんだけど
フック対象アプリのエディットコントロールに対してEM_GETSELTEXTを送るフックアプリがあるとします。
フックアプリはUNICODEビルド、フック対象アプリはマルチバイトビルドされているとします。

この場合、EM_GETSELTEXTで得られる文字列はUNICODE or マルチバイト どちらなのでしょうか?


58 名前:デフォルトの名無しさん :04/02/25 18:15
>>55
16pt=16/72インチの長さを得るためには、
解像度96dpiなら 16 / 72 * 96 = 約21ドット必要。
解像度300dpiなら 16 / 72 * 300 = 約67ドット必要。
同じ16pt(16/72インチ)でも、解像度によって必要なドット数は変わってくる。
例えば、解像度96dpi用にラスタライズされた16ptのフォントを、300dpiのプ
リンタで印刷すると、本来必要な67ドットに対して21ドットしかないので、約
5ptの大きさで印刷されてしまう。

というわけで、
>予想されるミス、ありがちなミス
は、解像度関係と予想してみますた。
これ以外が原因なら私には分かりませんな。

59 名前:デフォルトの名無しさん :04/02/25 18:17
>>57
ちょっと考えてみるか、実際に試してみるとすぐに解るが、
フック対象はEditコントロールではないのか?

60 名前:デフォルトの名無しさん :04/02/25 23:23
console アプリでコンソールの上をマウスでクリックすると出力が止まって
しまうのですが、これを回避させる方法ってありませんか?

ctrl-Q で復活はするのですが。

61 名前:デフォルトの名無しさん :04/02/26 00:11
Windows 2000以降で
ユーザーがログオンした、ログオフした、ということを
通知してくれるようなAPIってないですか?


62 名前:デフォルトの名無しさん :04/02/26 00:18
垂直スクロールバーをCreateWindowして、このウィンドウを
サブクラス化してオリジナルのスクロールバーを作っています。
WM_PAINTを横取りして、それらしい絵を描画しました。
左マウスアップ時に標準のスクロールバーがしゃしゃり出てきてしまうので
再描画をかけようとするのですが、WM_LBUTTONUPをフックできません。
Spy++で確認するとWM_LBUTTONUPは発行されているようです。
WM?RBUTTONUPなどは正常にフックできるのですが、なぜでしょうか?

63 名前:デフォルトの名無しさん :04/02/26 00:20
>>60
簡易編集モードになってない?

64 名前:デフォルトの名無しさん :04/02/26 00:25
>>61
サービス作れば?

65 名前:デフォルトの名無しさん :04/02/26 00:30
>>64
サービスだとどんなAPIで実現できるんですか?

66 名前:デフォルトの名無しさん :04/02/26 00:58
>>61
WinXP の WTSRegisterSessionNotification() みたいなものが欲しいってことか?

67 名前:デフォルトの名無しさん :04/02/26 01:34
読み→漢字の日本語変換のプログラムを書いています。
"あい"と入力して、"愛", "合い", "会い"とリストを取得するコードです。

ImmGetConversionListのGCL_CONVERSIONを使用しています。
取得できるリスト(候補)が、エディターなどでIMEを普通に使う時に比べて明らかに少ないのですが、
何か原因は考えられますでしょうか?
Win2000で開発しています。


68 名前:デフォルトの名無しさん :04/02/26 02:21
>>62
スクロールバークラスを使用するより、自分でスクロールバーを作ってしまった
方が良いのでは・・・。

69 名前:デフォルトの名無しさん :04/02/26 04:59
>>62
MSDNの、メッセージに対するデフォルトの処理の項目を見た?
WM_PAINTじゃないところで描画してない?

70 名前:40 :04/02/26 06:14
>>49
レスアンカー間違えてますか?


71 名前:60 :04/02/26 06:58
>>63
そんなモードがあるんだ。 知らんかった。。。 _| ̄|○

72 名前:デフォルトの名無しさん :04/02/26 07:08
>>66
はい、似たようなAPIがないものかと。

73 名前:デフォルトの名無しさん :04/02/26 09:40
WM_USERCHANGEDはこないのかな

74 名前:デフォルトの名無しさん :04/02/26 11:40
FtpCommandで全階層のフォルダ名のみを抽出するコマンドを教えてください

75 名前:デフォルトの名無しさん :04/02/26 18:33
>>74
前スレでそんな話題があったような気がする

76 名前:デフォルトの名無しさん :04/02/26 22:56
>>73
Windows 2000だと来ないみたいです。

77 名前:デフォルトの名無しさん :04/02/27 00:16
>>76
win2kではサービス作るしかないね。

78 名前:デフォルトの名無しさん :04/02/27 02:16
>>77
サービスではどう実装するんですか?

79 名前:デフォルトの名無しさん :04/02/27 02:32
\Device\Harddisk2\DR5
ってどうやって解釈したら言いのでしょうか?
DR5の意味が理解できません

80 名前:デフォルトの名無しさん :04/02/27 04:25
CUI用のライブラリを使っていてその中で
printfなどで標準出力への出力を行なっていて
その出力内容を見たいのですが可能でしょうか?
子プロセスの標準出力をパイプで持ってくる場合の
サンプルは見つかったのですが自分自身の場合が
見つかりませんでした。
よろしくお願いします。

81 名前:デフォルトの名無しさん :04/02/27 04:27
>>80
スレも違うし内容も意味不明

82 名前:デフォルトの名無しさん :04/02/27 06:58
>80
SetStdHandle()?

83 名前:デフォルトの名無しさん :04/02/27 09:16
OpenFileMapping の引数 BOOL bInheritHandle って、
TRUE なら新しいプロセスにハンドルを継承させるかを指定します となってるんですが、
ハンドルの継承とはどういうものなのでしょうか?

84 名前:デフォルトの名無しさん :04/02/27 09:43
親プロセスで使っていたハンドルの値が
そのまま子プロセスでも使えるというものです。

85 名前:デフォルトの名無しさん :04/02/27 09:53
62です。
もともとの根源はWM_PAINT以外で描画が行われているということなので、
こちらの方向で解決策を見つけます。
WM_PAINT以外でどのメッセージを捕捉すればシステムに描画させなくて済みますか?

86 名前:デフォルトの名無しさん :04/02/27 10:28
>>84
なるほど。
ありがとうございました。

87 名前:80 :04/02/27 14:15
>>82
HANDLE hOldStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
HANDLE hStdIn, hStdOut;
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
CreatePipe(&hStdIn, &hStdOut, &sa, 0);
SetStdHandle(STD_OUTPUT_HANDLE, hStdOut);
// 標準出力への出力
SetStdHandle(STD_OUTPUT_HANDLE, hOldStdOut);
CloseHandle(hStdOut);
// パイプから読み出し
CloseHandle(hStdIn);

とりあえずこんな感じでやってみたのですがパイプから読み出せませんでした。
設定後printfではなくWriteFileでGetStdHandle(STD_OUTPUT_HANDLE)の
ハンドルに出力するとパイプから読み出すことが出来るので設定は出来ているようなのですが…
パイプじゃ駄目なのでしょうか?

88 名前:デフォルトの名無しさん :04/02/27 14:26
printfって、stdoutに出力するから、無理なのでは?



わざわざstdoutを変更すれば、あるいは

89 名前:デフォルトの名無しさん :04/02/27 14:41
オマイ、取り合え酢、何をしようとしているのかわからん。
只の、共有メモリなら、OSの特権持てばなんでもありだろう。バーか。

90 名前:80 :04/02/27 15:09
>>88
でもこの方法で子プロセスのprintfの出力は見ることはできます。
GUIアプリの場合標準出力は設定しても使えなかったりするのでしょうか?

91 名前:88 :04/02/27 15:11
あれ、GUIにしたらstdoutはどうなるんだ?

GUI.exe > out.txt

リダイレクトしたら一応見れるけど、しなかった場合は?

92 名前:デフォルトの名無しさん :04/02/27 15:24
>>89
理解できないなら無理してレスするな。
なんで共有メモリの話になるんだ。
オマイもかなりバカっぽいぞ。

93 名前:デフォルトの名無しさん :04/02/27 15:58
ツーカ、どこもでも、PDP11のスキップしかない腐れミニコンの
話だろう。シネヤ。見に糞なんぞWindowsのほうがまだましだよ。

94 名前:デフォルトの名無しさん :04/02/27 16:12
>>93
オマイはカルシウム不足。もっと牛乳飲め。

95 名前:デフォルトの名無しさん :04/02/27 16:12
>>94
オマイはタンパク質不足。もっとセエーキ飲め。



96 名前:デフォルトの名無しさん :04/02/27 16:17
>>95
オマイはワンパク質不足。もっとジャイアン飲め。

97 名前:デフォルトの名無しさん :04/02/27 16:18
はっ!一瞬あほを語るスレかと思った

98 名前:デフォルトの名無しさん :04/02/27 16:34
牛乳を飲むとカルシウムが溶け出すことを知らないのか?

99 名前:デフォルトの名無しさん :04/02/27 16:48
>>98
じゃあ俺たちは何を飲めばいいのか?

100 名前:デフォルトの名無しさん :04/02/27 16:49
>>99
カルシウム飲めば?

101 名前:デフォルトの名無しさん :04/02/27 16:52
カルシウムを飲むとカルシウムが溶け出すことを知らないのか?

102 名前:デフォルトの名無しさん :04/02/27 16:52
>>99
ニポン人はラクターゼ活性持続症では無いのでカルシウムをせこせこ取る必要はないのだそうです。

103 名前:デフォルトの名無しさん :04/02/27 17:02
Win32GetCalcium(LPCTSTR lpHumanName);

104 名前:デフォルトの名無しさん :04/02/27 17:11
>>101
息を止めて飲めば大丈夫らしいよ。

105 名前:デフォルトの名無しさん :04/02/27 17:23
ママはオロナミンを混ぜて、オロナミンセーキ

106 名前:デフォルトの名無しさん :04/02/27 17:28
ママがオロナミンに生卵混ぜてるCMをエロいと思い始めたのはいつ頃だったろう・・・

107 名前:デフォルトの名無しさん :04/02/27 17:39
PerlのCryptと同じ様な機能のAPIありますか?

108 名前:デフォルトの名無しさん :04/02/27 18:25
>>107
無い。そしてPerlのCryptはAPIではない。

109 名前:デフォルトの名無しさん :04/02/27 18:29
誰もPerlのCryptがAPIだなんて言って無いだろ。氏ね。

110 名前:デフォルトの名無しさん :04/02/27 18:34
>>98
ぐぐってみたらマジじゃねーか

111 名前:デフォルトの名無しさん :04/02/27 19:15
>>103
ワロタ

112 名前:デフォルトの名無しさん :04/02/27 19:24
ufc

113 名前:デフォルトの名無しさん :04/02/27 19:37
>87
SetStdHandle()じゃ駄目っぽい?
ならfreopen()でファイルに出力してそれを読むとか。

114 名前:デフォルトの名無しさん :04/02/27 20:26
>>113
freopenだと大丈夫でした。
ありがとうございました。

115 名前:デフォルトの名無しさん :04/02/27 20:48
VC++でSDKプログラムをやってる者ですが、質問があります。
bmpファイルを開くためのコモンダイアログを作っているのですが、
よく、コモンダイアログの右の部分に選択している画像を表示できる
機能のついているものを見かけますが、あれはSDKでは、どのように
すればよいのでしょうか?

116 名前:デフォルトの名無しさん :04/02/27 21:02


117 名前:デフォルトの名無しさん :04/02/27 21:05
カルシウム不足・・・
ム板って科学的な知見がそこいらへんのオバサン並みなやつばっかりだな (プ

118 名前:115 :04/02/27 21:07
>116
フック関数とやらを使うようですね。ども。


119 名前:デフォルトの名無しさん :04/02/27 21:16
>>117 今は、若者のバカっぷりは、頭が再構築されてる為だって事を言いたいのかい?

120 名前:デフォルトの名無しさん :04/02/27 21:17
>>117
だからそんなに怒りっぽいとならカルシウム取れって。
それかスルーを覚えろ。

121 名前:デフォルトの名無しさん :04/02/27 21:22
>>119
漏れはとにかく2chで他人にからみまくって仕事のウサ晴らししてる
って事を言いたいのだと思う。

122 名前:デフォルトの名無しさん :04/02/27 21:47
カルシウム不足でいらいらする、と言うのは迷信です。

123 名前:デフォルトの名無しさん :04/02/27 21:50
>>122
じゃ、いらいらするときにカルシウムを取ると
落ち着くというのは本当?

124 名前:デフォルトの名無しさん :04/02/27 21:52
>>123
イライラしている瞬間に効くのは”糖” だから、カルシウムなんとかに入ってる糖が効いてるのだろう。

でもカルシウム不足は長期には脳をそういう方向に導くそうだよ。

125 名前:デフォルトの名無しさん :04/02/27 21:55
カルシウムがないと血が止まらないぞ

126 名前:115 :04/02/27 22:39
フック関数を猫等で調べてやってみたのですが、ファイルを開く
コモンダイアログでやってみると、なんかすごく劣化したみたいな
ダイアログが開いてしまうのはなぜですか?

127 名前:デフォルトの名無しさん :04/02/27 22:41
>>126
コモンダイアログだからです。

128 名前:デフォルトの名無しさん :04/02/27 22:44
必死だなてめーら (プゲラ

129 名前:デフォルトの名無しさん :04/02/28 01:36
で、効率よくカルシウムを摂取したいのですが、方法がわかりません。
どうすればよいでしょうか?

130 名前:デフォルトの名無しさん :04/02/28 01:54
すいません質問です。
モードレスダイアログを使っていてタブオーダーが効かないので
調べてみたらどうやらIsDialogMessage関数なるものをTranslateMessage関数の前に入れることで解決するようです。
ここでどうやらすべてのモードレスダイアログに対してIsDialogMessage関数を呼ばなくてはならないみたいです。
なのでモードレスダイアログを生成するたびにハンドルを集めてこなければならないので
あまりエレガントでは無いような気がするのですが何かいい解決方法はないのでしょうか?

131 名前:デフォルトの名無しさん :04/02/28 03:21
>>130
キー入力を受け取るウィンドウは一つなんだから、
今アクティブなダイアログに対してだけ呼び出せばいいよ。
WM_ACTIVATEあたりでグローバル変数に突っ込んどけ。

132 名前:デフォルトの名無しさん :04/02/28 03:23
現在のMSDNオンラインはAPIリファレンスを見つけづらいな
ShellExecuteの日本語説明はどこにあるんだ?
lpVerbをNULLにしたときの説明が見たいんだが


133 名前:実験 :04/02/28 03:29
http://www.microsoft.com/japan/msdn/library/ja/jpshell/html/_win32_shellexecute.asp

134 名前:デフォルトの名無しさん :04/02/28 03:31
>>131
レスありがとうございます。

グローバル変数ですか。
うーんやっぱりこの処理にはグローバル(もしくはそれに近いもの)使うのが
一番綺麗にいく気がしますねぇ。

Win32APIってこんなんばっかりですねw

ありがとうございました。

135 名前:デフォルトの名無しさん :04/02/28 04:37
>>132
ttp://www.vector.co.jp/soft/win95/prog/se275624.html
これのomakeの中に入ってるHELPを俺は使ってる。
本体はHSPユーザ以外には役にたたないが、HELPは132みたいなやつには役に立つんじゃないかと思う。

136 名前:デフォルトの名無しさん :04/02/28 07:13
>>133
>>135
Thanks!


137 名前:デフォルトの名無しさん :04/02/28 13:19
VCでタスクスケジュールにプログラムを登録するやり方を教えてください。

138 名前:デフォルトの名無しさん :04/02/28 14:13
>>134
モードレスがわかってない

139 名前:デフォルトの名無しさん :04/02/28 16:33
ttp://www.microsoft.com/japan/msdn/library/ja/jpwinui/html/_win32_extracticon.asp
ttp://www.microsoft.com/japan/msdn/library/ja/jpwinui/html/_win32_extractassociatedicon.asp

ExtractIconは「DestroyIcon関数を呼び出して破棄しなければなりません。」
と書かれているのに、ExtractAssociatedIconには破棄について書かれていません。
ExtractAssociatedIconで取得したアイコンは破棄しなくてもいいのですか?

140 名前:デフォルトの名無しさん :04/02/28 16:39
MSDN を見ると、
WM_COPYDATA でデータを送る際、
SendMessage の 3 番目の引数にデータの送信元のウィンドウハンドルを指定する、
と書かれています。

送るべきウィンドウハンドルがない場合
(例えばコマンドラインからデータを送るようなツール) はどうすればよいのでしょうか?
試しに適当な値を設定して SendMessage を読んでも
ちゃんとデータを送れているのですが、それでいいのかどうか不安で。

141 名前:デフォルトの名無しさん :04/02/28 16:44
>>140
問題なしと思われ

142 名前:デフォルトの名無しさん :04/02/28 21:50
あるディレクトリィ下に存在するファイルのファイル名を取得したいのですが
実現方法が分かりません。ヒントでも良いのでがお願いします。

143 名前:デフォルトの名無しさん :04/02/28 21:58
>>142
MFCなら CFileFind、
APIだと、FindFirstFile/FindNextFile かな。

FindFirstFileの後で1回FindNextFileをやらないと、
1つ目のファイルを取得できないので注意。

144 名前:デフォルトの名無しさん :04/02/28 21:59
>>142
_findfirstおよびその他の関連関数を見てください。

145 名前:デフォルトの名無しさん :04/02/28 22:05
>>142
そういや、VC6.0の場合だけど、CFileFind の
GetFilePathには2バイト文字未対応のバグがあって、
例えば c:\言語機能\hoge というパスだと誤動作を
起こします。機能の「能」がMBCS Lead Byte + '\'
になってるから。

漏れは CFileFindExを派生させて
GetFilePathをオーバーライドして使ってます。


146 名前:デフォルトの名無しさん :04/02/28 22:24
>>143
>>144
ありがとう^^


147 名前:デフォルトの名無しさん :04/02/28 22:25
>>145
なるほど、サンクスです^^

148 名前:大阪ジャイアン :04/02/28 22:41
>>137
ITaskScheduler

149 名前:デフォルトの名無しさん :04/02/28 23:11
PCに繋いであるウェブカメラの動画を単に見るだけのアプリを作りたいのですが、
あれは何か規格があるのでしょうか?SDKレベルでは無理ですか?

150 名前:デフォルトの名無しさん :04/02/28 23:27
DirectShow違う?

151 名前:大阪ジャイアン :04/02/28 23:33
HTTPだろ

152 名前:デフォルトの名無しさん :04/02/28 23:34
>>149
オマイ、覗きか?w
逮捕するぞw


153 名前:149 :04/02/28 23:45
いえ、ネットワークとかには繋がなくていいんです。

ダイアログエディタに何かのコントロール貼るだけ、
みたいなわけにはいかないんですかね?

154 名前:デフォルトの名無しさん :04/02/29 00:06
>>153
2つ以上の考え方がある。
JPEG/MPEGとかの伝送に従ったものと、
ただ、ファイルシステムに従った伝送と、
リアルタイムを考慮したした、画像伝送とか。
それを決めてくれないと教えられない。

155 名前:デフォルトの名無しさん :04/02/29 00:08
>>153
そんなので済ませたいならスレ違い。

156 名前:デフォルトの名無しさん :04/02/29 00:39
の解説をお願いします

#include <windows.h>
#include <stdio.h>
void main(int argc,char *argv[]){
long (_stdcall *a)(DEVMODE *,unsigned long);
a=ChangeDisplaySettings;
a=(long (_stdcall *)(DEVMODE *,unsigned long))0x77d382a4;
DEVMODE mode;
memset(&mode,0,sizeof(DEVMODE));
mode.dmSize=sizeof(DEVMODE);
mode.dmBitsPerPel=16;
mode.dmPelsWidth=800;
mode.dmPelsHeight=600;
mode.dmFields=1835008;
a(&mode,0);
}

157 名前:149 :04/02/29 00:41
>>154
そんな大袈裟なものじゃないんです。カメラをつなぐと、
NetMeeting やら、Media Encoder やらで画面を出せますよね?
ああいう何か共通のコントロールみたいなのがあるのかなと
思ったんです。

>>155
もしコモンコントロールにあるのなら…と思ったのですが
そういうわけではないのですかね?どちらにしてもスレ違いでしょうか?


158 名前:デフォルトの名無しさん :04/02/29 02:11
>>156
"C言語"というプログラミング言語で書かれた、
プログラムソースコードです。

159 名前:デフォルトの名無しさん :04/02/29 02:14
リストビューでNM_KILLFOCUSが呼ばれたときに
フォーカスがはずれた要素を取得するにはどうしたらよいのでしょうか?

160 名前:デフォルトの名無しさん :04/02/29 02:18
>>156
モニタの解像度を変えてるようだが…
しかしChangeDisplaySettingsを aにセットした後
0x77d382a4の即値をセットするのはなんでだ?
そんなんで動くのか?

161 名前:デフォルトの名無しさん :04/02/29 02:22
>>160
動かしてみた。やっぱ、こうなるよなぁ〜。

console_foo.exe の 0x77d382a4 でハンドルされていない例外が発生しました : 0xC0000005: 場所 0x77d382a4 を読み込み中にアクセス違反が発生しました。 。

162 名前:159 :04/02/29 02:28
すいませんボケてました気にしないでください。

163 名前:デフォルトの名無しさん :04/02/29 04:25
Q.「Win32APIのGetOpenFileNameを使用しファイル名欄に
前回選択時の複数ファイル名を表示させたい」

Win32APIのGetOpenFileNameでOPENFILENAME構造体のFlagsに
OFN_ALLOWMULTISELECT Or OFN_EXPLORERを指定し
ファイルの複数指定用のダイアログを表示します。
この際に前回このダイアログで指定した複数のファイル名を
ファイル名欄に表示させたく存じます。
例)"hoge_03.zip" "hoge_01.zip" "hoge_00.zip"

この場合にOPENFILENAME構造体のlpstrFileに
前回のファイルパス内容を保持した文字変数を代入させてから
このAPIをCallすればよいと思い
ドライブ名+ディレクトリ名|ファイル名|ファイル名|・・・||(|はNull)
をlpstrFileにセットしましたがダイアログ表示時に""で括った
複数ファイル表示の文字列として表示されません。

lpstrFileにはどのように文字列をセットすれば
ファイル名欄に""で括った複数ファイルを指定した文字列として
表示されるのでしょうか?

この際のOPENFILENAME構造体のパラメータの条件等について
ご存知の方、ご教授下さい。<(..)>

164 名前:デフォルトの名無しさん :04/02/29 05:10
OFN_ALLOWMULTISELECT は入れてるか

165 名前:デフォルトの名無しさん :04/02/29 05:13
ああごめん入れてるって書いてるな

166 名前:デフォルトの名無しさん :04/02/29 05:16
nMaxFileはちゃんと設定してる?

167 名前:デフォルトの名無しさん :04/02/29 07:24
>>163
>前回選択時の複数ファイル名を表示させたい

GetOpenFileNameでそんな器用なことができるのかな
lpstrFileは単なる出力バッファと思ってたけど

168 名前:デフォルトの名無しさん :04/02/29 07:41
>>167
> GetOpenFileNameでそんな器用なことができるのかな
> lpstrFileは単なる出力バッファと思ってたけど
できるよ。

169 名前:デフォルトの名無しさん :04/02/29 08:06
16へぇ。

170 名前:デフォルトの名無しさん :04/02/29 13:43
ウィンドウをつくって画像を表示した上に文字をかくと文字の周りが白くなって画像が
きれいに写らないんですがそれを直す方法がわかりません。
知ってるかたいたら教えてください。よろしくお願いします。

171 名前:デフォルトの名無しさん :04/02/29 13:45
>>170
SetBkMode

172 名前:170 :04/02/29 13:54
>>171
早速ググッったらそれらしいものがでてきました。
即レスありがとうございます。

173 名前:デフォルトの名無しさん :04/02/29 19:43
こんばんわ

ListControlに関して、質問をしたいのですが。

アプリケーション定義比較関数内で、
下記の「lp1」と「lp2」に、必ず同じ値しか入らない(一番初めの項目しか参照されない)ため、
比較処理されません。
これは何に問題があるのでしょうか。

int CALLBACK MyCompProc(LPARAM lp1, LPARAM lp2, LPARAM lp3)
{
static LV_FINDINFO lvf;
static int nItem1, nItem2;
static char buf1[30], buf2[30];

lvf.flags = LVFI_PARAM;
lvf.lParam = lp1;
nItem1 = ListView_FindItem(hMWC_LIS, -1, &lvf);

lvf.lParam = lp2;
nItem2 = ListView_FindItem(hMWC_LIS, -1, &lvf);

ListView_GetItemText(hMWC_LIS, nItem1, (int)lp3, buf1, sizeof(buf1));
ListView_GetItemText(hMWC_LIS, nItem2, (int)lp3, buf2, sizeof(buf2));
if (sortsubno[(int)lp3] == 1)
return(strcmp(buf1, buf2));
else
return(strcmp(buf1, buf2) * -1);
}

174 名前:デフォルトの名無しさん :04/02/29 19:50
163の者です。

>>166
(256以上の値を指定しろと書いてあったんで複数選択を考慮して)
nMaxFile=512
nMaxFileTitle=512
で設定しています。

>>168
1つのファイル名のみならlpstrFileにセットすれば
ファイル名欄にちゃんと表示されるんです。
(OFN_ALLOWMULTISELECT指定してもしなくても)

複数のファイル名をlpstrFileに指定して表示している
サンプルコードをネットで探してみたんですが、
一応にみなNullの初期化のみをして居るものしかなくて。。。
何方かこの様なことをして出来た方居られましたら
レス下さい。。。宜しくお願い致します。

175 名前:デフォルトの名無しさん :04/02/29 20:00
>>173
Item毎に固有のlParamを設定していないからだと思われ。

176 名前:173 :04/02/29 20:25
>>175
そのとおりでした。

ありがとうございました。

177 名前:デフォルトの名無しさん :04/02/29 22:34
>174
めんどくさいから試してないけど、もしかしたらファイル部分を
"file1" "file2" "file3"
形式で渡すとか?

178 名前:デフォルトの名無しさん :04/02/29 22:40
>>174
OFN_ALLOWMULTISELECT を指定して、出力形式と同じ形式で入力を
指定しても、先頭のディレクトリ部分しか参照されないのだから、
標準ではそのようなことはできないと考えるのが普通だろう。
OFN_ENABLEHOOK して WM_INITDIALOG あたりで設定すればいいのでは?

179 名前:デフォルトの名無しさん :04/02/29 22:42
>>177
FNERR_INVALIDFILENAME

180 名前:デフォルトの名無しさん :04/03/01 01:10
GetObject関数でビットマップの幅・高さを取得したいんですが、
下の関数では値が不定になってしまいます。どこが悪いのかご教示くだされば幸いです。
// あらかじめint型グローバル変数wとhを宣言しておく
void BitMapBld(HWND hWnd, const char flname[], int px, int py){

HDC hDC, hDCBmp;
HBITMAP hBitmap;
BITMAP bmp;

hDC = GetDC(hWnd);
hDCBmp = CreateCompatibleDC(hDC);

GetObject(hDCBmp,sizeof(BITMAP),&bmp);
hBitmap = (HBITMAP)LoadImage(NULL, flname, IMAGE_BITMAP,
bmp.bmWidth, bmp.bmHeight, LR_LOADFROMFILE | LR_CREATEDIBSECTION);

SelectObject(hDCBmp, hBitmap);

BitBlt(hDC, px, py, bmp.bmWidth, bmp.bmHeight, hDCBmp, 0, 0, SRCCOPY);

DeleteDC(hDCBmp);
DeleteObject(hBitmap);
ReleaseDC(hWnd, hDC);

w = bmp.bmWidth; h = bmp.bmHeight;
// WM_LBUTTONUPメッセージが来た時にwsprintf関数とMessageBox関数で
// 結果を表示するために、グローバル変数にコピーしておいている

return;

}

181 名前:デフォルトの名無しさん :04/03/01 01:22
>>180
コンパチブルビットマップ作成後は1x1のモノクロビットマップだよ。
こうすれば動くんじゃないかなー。

// サイズはビットマップから自動取得
hBitmap = (HBITMAP)LoadImage(NULL, flname, IMAGE_BITMAP,
0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);

HBITMAP hOldBitmap = (HBITMAP)SelectObject(hDCBmp, hBitmap);
GetObject(hDCBmp,sizeof(BITMAP),&bmp);

BitBlt(hDC, px, py, bmp.bmWidth, bmp.bmHeight, hDCBmp, 0, 0, SRCCOPY);

SelectObject( hDCBmp, hOldBitmap );
DeleteDC(hDCBmp);
DeleteObject(hBitmap);
ReleaseDC(hWnd, hDC);


182 名前:デフォルトの名無しさん :04/03/01 01:25
間違った(;´Д`)
GetObject(hDCBmp,sizeof(BITMAP),&bmp);

GetObject(hBitmap,sizeof(BITMAP),&bmp);
で。

183 名前:デフォルトの名無しさん :04/03/01 01:26
間違った(;´Д`)
GetObject(hDCBmp,sizeof(BITMAP),&bmp);

GetObject(hBitmap,sizeof(BITMAP),&bmp);
で。

184 名前:デフォルトの名無しさん :04/03/01 01:27
2重カキコになってしまった…_| ̄|○

185 名前:180 :04/03/01 01:47
>>181-184
 うおお、うまくいきました。感謝します。

186 名前:107 :04/03/01 11:46
とりあえず報告します
Cryptと同じ様なAPIはなかったようなので
ぎこはにゃ〜ん作者様が提供しているソースから同機能を実現しました

187 名前:デフォルトの名無しさん :04/03/01 12:45
>>132
恐れ巣だが、
MASAPICO'S Page の「関数別Win32サンプル集」が結構便利でよく使う


188 名前:age :04/03/01 14:50
  ム___      _____、__,ィ
  |    ̄`ミl==r'´     /  Win32API -xp Reloaded-
   `ヽ、_____j ヽ、____,-'


189 名前:デフォルトの名無しさん :04/03/01 15:47
正直、今時Win32APIつぅのもな。

190 名前:デフォルトの名無しさん :04/03/01 15:48
>>189
 そうか?そんなこともないと思うが。

191 名前:デフォルトの名無しさん :04/03/01 16:36
>>189
今時なのはなんなのよ?

192 名前:デフォルトの名無しさん :04/03/01 16:52
WinFX<早杉

193 名前:デフォルトの名無しさん :04/03/01 16:55
WinG

194 名前:デフォルトの名無しさん :04/03/01 17:11
>>191
Del坊だろほっといてやれ。

195 名前:デフォルトの名無しさん :04/03/01 20:18
こんばんわ。
ご教授いただきたいことがあって、書き込みさせていただきました。

現在使用中のドライブ一覧を表示する関数を作成しているのですが、
USBに接続されているUSBメモリ、は「リムーバブルディスク」
USBに接続されているFDD、は「3.5インチFD」
と区別したいのですが、GetDriveTypeだとどちらも戻り値が「2」となり
区別ができません。

解決法をご存知の方がいらっしゃいましたらレスいただけますでしょうか?
よろしくお願いします。



196 名前:デフォルトの名無しさん :04/03/01 20:25
>>188
ジュワッ

197 名前:デフォルトの名無しさん :04/03/01 20:26
ATAPIコマンドでも送ってみたら?

198 名前:デフォルトの名無しさん :04/03/01 20:28
面倒だから容量が4MB未満ならFD扱いしとけ。

199 名前:デフォルトの名無しさん :04/03/01 20:30
起動しているOSが何語版か判断する方法ありますか?

200 名前:デフォルトの名無しさん :04/03/01 20:40
>>199
だからさー、バージョンくらい教えろよ。
皆、忙しいんだからさー。お前の会社は馬鹿しかいないのかよw

201 名前:デフォルトの名無しさん :04/03/01 20:41
>>198
それも考えたのですが、RとRWとかもあるので、いっそのこと
ディスクのプロパティのなかの「種類」の文字列が取れないかと思ったのです。

「ローカル ディスク」とか「ネットワークドライブ」「リムーバブルディスク」
のような感じですね。

202 名前:デフォルトの名無しさん :04/03/01 20:58
>>210
SHGetFileInfoでどうかな。

203 名前:デフォルトの名無しさん :04/03/01 21:22
>>202
予言レスですか

204 名前:デフォルトの名無しさん :04/03/01 21:42
そうです。FF->


205 名前:デフォルトの名無しさん :04/03/01 22:06
hdc = BeginPaint(hWnd,&ps);
hBrush = CreateSolidBrush(RGB(255,0,0));
hOldBrush = (HBRUSH)SelectObject(hdc,hBrush);

DeleteObject(hBrush);
SelectObject(hdc,hOldBrush);
EndPaint(hWnd,&ps);


参考書のソースなんですが、
この様に、使用中のブラシ(hBrush)を破棄しても問題ないのですか?
気分的にSelectObject(hdc,hOldBrush)の後が良い気がするんですが・・・



206 名前:デフォルトの名無しさん :04/03/01 22:11
>>205
msdnに駄目って書いてある。

207 名前:205 :04/03/01 22:20
>>206
やっぱりですか・・・
いたく納得しました。

208 名前:201 :04/03/01 22:33
>>202
そのセンでいけそうですのでやってみます。
ありがとうございます。

結果は明日報告いたします。


209 名前:大阪ジャイアン :04/03/02 04:06
hage

210 名前:デフォルトの名無しさん :04/03/02 04:07
ファイルに関連付けられたアイコンを取得するにはどうしたらいいんですか?

>>202
ありがとうございました。

211 名前:大阪ジャイアン :04/03/02 04:07
システムイメージリストを取得したいのですが、どうすればいいですか?

212 名前:大阪ジャイアン :04/03/02 04:08
先を越された (;´Д`)

213 名前:デフォルトの名無しさん :04/03/02 09:59
>>199
GetSystemDefaultLangIDあたりじゃダメ?
MultiLanguage環境の場合ユーザーごとに言語が違う可能性有るから、
現在のインターフェイス言語が知りたいならGetUserDefaultLangIDの方になるけど。

214 名前:デフォルトの名無しさん :04/03/02 11:18
特定のメニューウィンドウ(クラス名が"#32768"のウィンドウ)のハンドル(HWND)から、
そのメニューウィンドウに描画されるメニューのハンドル(HMENU)を調べる方法はありますか?

215 名前:デフォルトの名無しさん :04/03/02 11:34
GetMenu()ってそのまんまな関数があるんだが…
MSDN検索してる?

216 名前:201 :04/03/02 14:00
無事できました。
あとでぐぐったら結構サンプルあってショボーン。(AA略。
でもSH系は盲点でした。



217 名前:デフォルトの名無しさん :04/03/02 14:02
エクスプローラと同じことがしたかったらまずSH系を調べるべし

218 名前:デフォルトの名無しさん :04/03/02 16:42
他のウィンドウが出すMessageBoxに表示される文字列を入手、
そしてそのMessageBoxは破棄(表示させない)ようにしたいと思っています。

現状は、そのウィンドウをフックしてMessageBoxのハンドルを手に入れてしまえば
とりあえず何とかなるだろうと思い、試行錯誤しています。

WM_CTLCOLORMSGBOXは、Windows32ビット版では使われていないようで、
簡単なサンプルプログラムをWin2k SP4にて作ってみましたが、実際送られてこないようです。
そのWin32版を探してみても見つかりません。

Win2000でメッセージボックスを出す前に出るメッセージ、
もしくは全く他の方向でも構わないのですが、何か方法がないものでしょうか?

219 名前:デフォルトの名無しさん :04/03/02 17:00
>>218
MessageBox APIをフックする。
APIフックとか良く知らんが。

220 名前:218 :04/03/02 17:32
>>219
ご回答感謝いたします。調べてみました。
なにやらidata 領域にあるAPI の実アドレスを
フック関数のアドレスに書き換えてしまうなど、なかなか興味深い事が書いてありました。

この方向でいろいろやってみます。
ありがとうございました。

221 名前:デフォルトの名無しさん :04/03/02 18:07
標準のメニューを拡張して複数選択をさせることはできますか?

222 名前:デフォルトの名無しさん :04/03/02 18:11
チェックはつけることができる

223 名前:デフォルトの名無しさん :04/03/02 18:20
どういうUIでメニューを複数選択する気だ?
根本的に考え直した方がいいんじゃないのか?

224 名前:221 :04/03/02 18:35
I.E. のお気に入りのように項目の削除や移動ができるメニューを考えてます。
今の自分の方法だと一つ削除する毎にメニューが消えてしまうんです。
で、項目を一つ一つ削除するのが面倒だと感じたんです。
あるいは項目を選択しても消えないメニューを作れば良いよいのかもしれませんが、
こちらも方法が分かりません。


225 名前:デフォルトの名無しさん :04/03/02 18:38

. \
  \
    \
     \   ∩─ー、   
       \/ ● 、_ `ヽ  
       / \( ●  ● |つ
       |   X_入__ノ   ミ メニューでやるなよwクマ・・・
        、 (_/   ノ
        \___ノ゙
        / 丶' ⌒ヽ:::
       / ヽ    / /:::
      / /へ ヘ/ /:::
      / \ ヾミ  /|:::
     (__/| \___ノ/:::



226 名前:デフォルトの名無しさん :04/03/02 18:58
>>221がやると一つ消してもメニューが消えるから複数を一度に消してもメニューが消えそうだな。

227 名前:デフォルトの名無しさん :04/03/02 19:09
IEのお気に入りはメヌーぢゃないから真似は無理

228 名前:214 :04/03/03 03:28
>>215
GetMenu はメニューのオーナーウィンドウからメニューハンドルを得ることはできますが、
メニューウィンドウ自信(クラス名が"#32768"のウィンドウ)から、
そのウィンドウに関連づけられたメニューを得ることはできません。

229 名前:デフォルトの名無しさん :04/03/03 06:45
RichEditに書かれた文章をWordの校正機能を使ってチェックするようなことってできますか?
COM経由でそのような機能が提供されていたりしますか?

230 名前:デフォルトの名無しさん :04/03/03 10:22
rebarに追加したバンドのタイトル文字列にショートカットキー表示
(&なんちゃらで指定する下線付きの文字)はできないんでしょうか?
&Aとかやると、そのまま&Aって表示されるので。

231 名前:デフォルトの名無しさん :04/03/03 10:51
>>228
あ、悪い取り違えてた。

そもそも、メニュー自体にウィンドウハンドルってあったっけ?
あくまで「あるウィンドウに関連付けられた物」としてしか存在できなかったと思うんだが…

それって、見た目はメニューだけど実は他のもので代用とかしてない?
IEとか見たいにさ

232 名前:デフォルトの名無しさん :04/03/03 10:53
実は別物って、IEは何使ってるんですか?

233 名前:デフォルトの名無しさん :04/03/03 10:57
IEはツールバーだろ。スパって確認汁。

234 名前:デフォルトの名無しさん :04/03/03 10:57
>>232
HSP

235 名前:デフォルトの名無しさん :04/03/03 11:08
>>231
メニュー自体もウィンドウだし、ウィンドウハンドルもある。

236 名前:デフォルトの名無しさん :04/03/03 11:24
ハァ?
じゃあメニューのHWNDを取得するAPI教えてみろよ。


237 名前:デフォルトの名無しさん :04/03/03 11:27
>>236
結局は教えてほしいだけの様な悪寒

238 名前:221 :04/03/03 11:58
>>236
FindWindow なり EnumWindow なりなんなりで普通に取得できる。


239 名前:デフォルトの名無しさん :04/03/03 12:00
ちなみに>>228にもあるようにクラス名は"#32768"だ。

240 名前:デフォルトの名無しさん :04/03/03 19:43
TextOut(hdc,22 * cxCaps + 40 * cxChar,cyChar * i,szBuffer,wsprintf(szBuffer,TEXT("%5d"),GetSystemMetrics(sysmetrics[i].iIndex)));
すいませんこれってこういう書き方っていいんですか?→「szBuffer」
こういう引数ってどこから評価されるか未定義じゃないんですかね?
もし第4引数から評価されてたらおかしな結果になってしまいますよね?

(一応Win32API勉強してる途中でこういうコードがでたのでこのスレで)

241 名前:デフォルトの名無しさん :04/03/03 19:59
なにを想定しているのかわからんが問題ないと思う

242 名前:デフォルトの名無しさん :04/03/03 20:14
引数がどういう順番で評価されようとszBufferそのものの値は一緒だから問題はない。
まぁ、そういう書き方がいいか悪いは別だが。

243 名前:デフォルトの名無しさん :04/03/03 20:25
>>240
>もし第4引数から評価されてたらおかしな結果になってしまいますよね?
ならない。

そんなこと言っているレベルなら、API の勉強をする前に
今一度ポインタの復習をした方がよいと思う。

244 名前:240 :04/03/03 20:33
あ、すいません。これって値じゃなくてポインタを渡してるんですね。
バカな質問で申し訳なかったです。

245 名前:デフォルトの名無しさん :04/03/04 07:21
Clipboardクラスを使うにはどうしたらよいでしょうか?
#include<windows.h>だけじゃだめなんですか?

まったくの初心者をお救いください・・・(,,゚Д゚)†

246 名前:デフォルトの名無しさん :04/03/04 08:26
>>245
Clipboardクラスって.NETのやつか?


247 名前:デフォルトの名無しさん :04/03/04 15:11
メモリ上の実行ファイルを実行することは可能でしょうか?
圧縮ファイルからメモリ上に解凍して、直接実行したいと思うのですが。

248 名前:デフォルトの名無しさん :04/03/04 15:14
メモリイメージ展開してジャンプしてやればいける


と適当かましてみる

249 名前:デフォルトの名無しさん :04/03/04 15:14
UPXのソースを読むとか
APIはないね

250 名前:デフォルトの名無しさん :04/03/04 15:21
今現在、シフトキーやコントロールキーが押されているかって、
どうやったら分かるんでしょうか?
WM_KEYDOWN,WM_KEYUPでチェックしていると、別ウィンドウに行って
押されたり、離されたりした場合に取りこぼしがおきちゃうんですが。



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