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


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

Win32API 質問箱 Build10
1 名前:デフォルトの名無しさん :03/03/16 22:02
スレ立てるまでもない、Win32APIについての質問はこちらへどうぞ。
やさしいお兄さんたちが答えてくれるかも。
でも、質問する前に検索ぐらいしる!!
過去スレ・参考は>>2-5

MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/index.html

2 名前:デフォルトの名無しさん :03/03/16 22:03
過去スレ
Win32API 質問箱 Build9
http://pc2.2ch.net/test/read.cgi/tech/1044929160/
Win32API 質問箱 Build8
http://pc2.2ch.net/test/read.cgi/tech/1040964626/
Win32API 質問箱 Build7
http://pc3.2ch.net/test/read.cgi/tech/1036654893/
Win32API 質問箱 Build6
http://pc3.2ch.net/test/read.cgi/tech/1032548635/
Win32API 質問箱 Build5
http://pc3.2ch.net/test/read.cgi/tech/1028580373/
Win32API 質問箱 Build4
http://pc3.2ch.net/test/read.cgi/tech/1023361418/
Win32API 質問箱 Build3
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API【2】
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html

3 名前:デフォルトの名無しさん :03/03/16 22:05
otu

4 名前:デフォルトの名無しさん :03/03/16 22:17
kare

5 名前:デフォルトの名無しさん :03/03/16 22:21
kano

6 名前:デフォルトの名無しさん :03/03/16 22:53
乙〜

7 名前:デフォルトの名無しさん :03/03/16 23:04
おまえら、本気でスレ立てた程度で疲れると思ってるのか?

8 名前:デフォルトの名無しさん :03/03/16 23:25
(・ε・)社交辞令

9 名前:デフォルトの名無しさん :03/03/16 23:29
>>7
疲れるよ。

10 名前:デフォルトの名無しさん :03/03/16 23:58
IMEの使い方を調べているのですが、分からないことがあるので教えてください。
WM_IME_COMPOSITIONメッセージハンドラで以下のようにしているのですが、
入力中の文字が見えなくなります。
一度ウインドウを非アクティブにしてまたアクティブにすると見えるようなのですが。
最後の行をreturn DefWindowProc();にすると、正常に表示されます。
メッセージをデフォルトのプロシージャにスルーしなければいけないのでしょうか
MSDNのWM_IME_COMPOSITIONの説明にはそのように書いてなかったのですが

HIMC imc = ::ImmGetContext(*this);
::ImmReleaseContext(*this, imc);
return 0;


11 名前:デフォルトの名無しさん :03/03/17 00:09
>>10
この辺は見た?
http://www.kumei.ne.jp/c_lang/sdk3/sdk_281.htm


12 名前:デフォルトの名無しさん :03/03/17 00:17
見ました。
しかし、EDITをサブクラス化してるので、
EDITの事情でCallWindowProcしてるのかも知れないし、
判断が付かなかったもので。

一見DefWindowProcして正しい結果が出てるので良いのかも知れないけど、
ホントに正しいのか不安なのです

13 名前:再掲 :03/03/17 01:13
ツールバー作っててつまづいてしまってので、助けてください
文字だけのボタンをつけようとすると、

┌─────┬─────┬───
│       .│       .│
│字字字字字│字字字字字│
└─────┴─────┴───

こんな感じで空白が出来てしまうのです。
何かスタイルが足りない、とか教えてください。

14 名前:デフォルトの名無しさん :03/03/17 01:13
>>9
そういう事は、これぐらい直してから言ってもらおうか。

>>2
過去スレ
Win32API 質問箱 Build9
http://pc2.2ch.net/test/read.cgi/tech/1044929160/
Win32API 質問箱 Build8
http://pc2.2ch.net/tech/kako/1040/10409/1040964626.html
Win32API 質問箱 Build7
http://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
Win32API 質問箱 Build6
http://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
Win32API 質問箱 Build5
http://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
Win32API 質問箱 Build4
http://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
Win32API 質問箱 Build3
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API【2】
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html

15 名前:13 :03/03/17 01:21
ちなみに、 TBSTYLE_LIST を加えると
┌─────┬─────┬───
│  字字字字│  字字字字│  字字
└─────┴─────┴───
こんな感じになってしまいます。
どなたか助けてください。



あと、↓これ書いたのはわたくしです。新スレで完全無視されるとは思いませんでした。
http://pc2.2ch.net/test/read.cgi/tech/1044929160/872,874

16 名前:デフォルトの名無しさん :03/03/17 01:52
*TBSTYLE_LIST ボタン イメージの右にボタン テキストが配置されます。

17 名前:デフォルトの名無しさん :03/03/17 02:52

┌─────┬─────┬───
│字字字字字│字字字字字│
└─────┴─────┴───

「==」は比較演算子


18 名前:デフォルトの名無しさん :03/03/17 03:19
何度も繰り返さなくたって「==」が比較演算子なのは分かってるよ。
いちいち蒸し返すなバカ。

19 名前:デフォルトの名無しさん :03/03/17 05:03
>>13
TBBUTTONのiBitmapにI_IMAGENONE(-2)を設定
ただしコモンコントロールv5.81(IE 5.01)以降が必要らしい。

20 名前:デフォルトの名無しさん :03/03/17 05:50
DLL内でCreateWindowを使うときは、InstanceはDLLのものを指定するのでしょうか?
それとも、呼び出しているexeのものを指定するのでしょうか?

21 名前:デフォルトの名無しさん :03/03/17 06:00
dll

22 名前:デフォルトの名無しさん :03/03/17 07:33
>>10
入力中文字表示をIMEで行うならDefWindowProc が要るんじゃなかろうか...
もう見ただろうけどSDKの説明(下記)を見ておもた。

 If the application has created an IME window, it should pass this message to that window.
 The DefWindowProc function processes this message by passing it to the default IME window.
 The IME window processes this message by updating its appearance based on the change flag given.

23 名前:デフォルトの名無しさん :03/03/17 07:43
>>20
呼出し元

24 名前:VB房 :03/03/17 08:56
ファイルの作成日を取得するAPIってありますでしょうか?

25 名前:デフォルトの名無しさん :03/03/17 09:45
GetFileTime()

26 名前:VB房 :03/03/17 10:42
>>25
サンクス

27 名前:デフォルトの名無しさん :03/03/17 18:35
┌─────┬─────┬───
│字字字字字│字字字字字│
└─────┴─────┴───


28 名前:デフォルトの名無しさん :03/03/17 19:23
>>19様ありがとう。無事に
┌─────┬─────┬───
│字字字字字│字字字字字│字字字
└─────┴─────┴───
となりました。

ただ、TBBUTTON::fsStyle に TBSTYLE_AUTOSIZE が必要なので、
後々同じ事をされる方はお気をつけて使用してください。

29 名前:デフォルトの名無しさん :03/03/17 19:52
LVS_EX_BORDERSELECT の値って何でしょうか?



30 名前:デフォルトの名無しさん :03/03/17 20:12
>>22
テキストエディタのソースをみると
やっぱり全てDefWindowProcに処理を渡してるので
それで正しいようですね、ありがとうございました

31 名前:デフォルトの名無しさん :03/03/17 20:24
>>934 >>936
えっ? 無いですか? とりあえずMSDNから一部コピペ
BOOL DelayedDeleteLockedFile (
LPCTSTR lpFileName // ファイル名
);

対応情報
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winbase.h 内で宣言、Windows.h をインクルード
インポートライブラリ:Kernel32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装



できません。

32 名前:デフォルトの名無しさん :03/03/17 20:29
ネタはもういいよ

33 名前:デフォルトの名無しさん :03/03/17 20:32
>>31
ネタだったの?

34 名前:デフォルトの名無しさん :03/03/17 20:52
ネタじゃなければmsdnのサイトへのリンクが出せるっしょ

35 名前:デフォルトの名無しさん :03/03/17 21:37
メール欄見れば一発

36 名前:デフォルトの名無しさん :03/03/18 02:39
すみません。最近のMSのキーボードに付いているメールを返信のスキャンコードと仮想キーコードを教えて下さい。

37 名前:デフォルトの名無しさん :03/03/18 03:31
http://members.tripod.co.jp/usr_vogel/main.html
ここ最高っす

38 名前:デフォルトの名無しさん :03/03/18 03:44
あれってメーカーが用意したドライバでメールソフトを起動するようにドライバ作ってんじゃないの?

39 名前:デフォルトの名無しさん :03/03/18 04:37
>>36
窓使いの憂鬱(キーバインド変更ツール)の設定ファイル(109.mayu)には
次のような設定が書かれてある。

def key キー名… = スキャンコード…

def key A= 0x1e
def key Mute= E0-0x20 # (Media Player)
def key ALCalculator= E0-0x21 # (N/A) Calculator
def key ACStop= E0-0x68 # (Internet Explorer)
def key ACForward= E0-0x69 # (Internet Explorer)
def key ACBack= E0-0x6a # (Internet Explorer)

40 名前:デフォルトの名無しさん :03/03/18 19:58
XPとかのボタンの上にマウスを乗せるとボタンが
変化するのがあるけど、今までの関数とどう
違うんですか?

41 名前:デフォルトの名無しさん :03/03/18 19:59
>>40


42 名前:40 :03/03/18 20:03
>>41
例えばメッセージボックスのボタンでも
マウスをボタンの上に乗せると微妙に
色が変わるじゃん、ところが自分で
MessageBox(NULL............);
と記述しても、2000や98みたいな普通のボタン
なんだよね。

43 名前:デフォルトの名無しさん :03/03/18 20:06
http://hp.vector.co.jp/authors/VA015850/delphi/tips/etc13.html


とか。

44 名前:デフォルトの名無しさん :03/03/18 20:06
http://homepage2.nifty.com/sironekochan/windows/luna/luna_1.htm

とか。

45 名前:デフォルトの名無しさん :03/03/18 20:08
http://kotubunet.hp.infoseek.co.jp/king.htm

46 名前:デフォルト名無しさん :03/03/18 20:41
CDドライブを開けるコマンド教えてくろ

47 名前:デフォルトの名無しさん :03/03/18 20:49
mciSendString "set cdaudio door open"

48 名前:デフォルトの名無しさん :03/03/18 20:56
サンプルコード見せてくんろ

49 名前:デフォルトの名無しさん :03/03/18 21:53
>>48
検索しなヴォケ そこまで面倒見てられるか

50 名前:デフォルトの名無しさん :03/03/18 21:59
おまえらバカじゃないのか?ほんと自分は出来る風ですか?
ほんとにバカ、オメーラ、みんな、ネット荒らしとどこが違うんだ!?
ほんとな、おまえらはみんな、ここに来る資格ねーな!!
デフォルトの名無しさんだっけ!!おまえしね!!人が謝ってのに何が
あやしいっておまえみたいのがいるから日本がだめになるんだ!!
分かったバーカ!!もう荒らしでも何でもいいよ!!
オメーラみたいなバカどもにつき合ってもしかたないから!!
あんたらみたいのはもうこのよにもいらない !!

51 名前:デフォルトの名無しさん :03/03/18 22:00
いや、俺は出来る人ですが?

52 名前:デフォルトの名無しさん :03/03/18 22:14
おまえら
      に
      な
      ルトの
          て
          ー
          たいな
              の

意味わかんない

53 名前:デフォルトの名無しさん :03/03/18 23:18
不思議な読み方をするなあ・・・

54 名前:デフォルトの名無しさん :03/03/18 23:22
>>51
難しい縦読みだねぇ。ぜんぜん分からん。
それ、どっからコピペしてきたの?

55 名前:デフォルトの名無しさん :03/03/18 23:36
自分のウィンドゥを常にアクティブにしたいのですが
どうすればよいですか?
WM_ACTIVATEを出してもWindows98だとちゃんとアクティブに
なるのですがWindowsXPだとタスクバーが点滅するだけなのです。
よろしくお願い致します。


56 名前:デフォルトの名無しさん :03/03/19 00:02
>>55
Win2K以後の仕様です
抜け道はありますが
その前に設計意図を理解すべき

ワープロで仕事中にたまたま
や行の文字をタイプした瞬間に
メッセージボックスの飛び出し事故

食らってみればわかるけど
悲しすぎるんだよ

57 名前:55 :03/03/19 01:16
>>56
ありがとうございます。
よろしければ、設計意図と抜け道のヒントを下さい。
お願い。

58 名前:デフォルトの名無しさん :03/03/19 01:25
>>56は、「〜しますか(y/n)」ってダイアログが突然出現して、有無をいわさずyキーを押してアボーンはまずいだろ…
っていうのが"タスクバーが点滅するだけ"の設計意図と俺は読んだが。


59 名前:デフォルトの名無しさん :03/03/19 01:36
XPだとフォーカス奪わないで右下にバルーンみたいの出るじゃない。
あれのまねすればいいんじゃないの(ヒント: SWP_NOACTIVATE
SW_SHOWNA)

60 名前:2 :03/03/19 11:03
質問です

MessageBoxでダイアログを表示したいのですが
ダイアログ表示の際に右上のクローズドボックス(ペケボタン)を無効にしたいのですが
うまくいきません、引数もいろいろ調べたのですがそれらしきものも見つからず...

どういうふうにしたら右上のクローズドボックスを無効にできるんでしょうか?
よろしくお願いいたしますm(_ _)m

61 名前:デフォルトの名無しさん :03/03/19 11:37
>>60
MsgBoxを使わずダイアログを作った方が早道かと。

62 名前:55 :03/03/19 11:57
>>58
>>59
ありがとうございました。

63 名前:デフォルトの名無しさん :03/03/19 11:58
>>61
そんなたいそうなものじゃないのです
単にメッセージを表示するだけなので...
「エラーがでました」等...

それでやっぱりペケボタン無効化する方法はないのでしょうか?


64 名前:デフォルトの名無しさん :03/03/19 12:00
>>63
ダイアログ1つ作るのも「そんなたいそうなもの」じゃないけどな

65 名前:デフォルトの名無しさん :03/03/19 13:22
>>61
あのダイアログに表示されるアイコンはどうやって取得すればいいのですか?

66 名前:61 :03/03/19 13:25
>>63
MessageBoxIndirectならできるかもしれないけど面倒だから確認しない。

>>65
LoadIcon

67 名前:デフォルトの名無しさん :03/03/19 17:00
フルパスから拡張子のみ取り出すAPIってありませんか?

68 名前:デフォルトの名無しさん :03/03/19 17:12
SHGetSpecialFolderPath()あたりで取れる、特殊パスについての質問です。

Win98SE+IE5でCSIDL_PROGRAM_FILES_COMMONのパスを取りたい
のですが、何か方法はありますか?

SHGetSpecialFolderPath()はもちろんSHGetSpecialFolderLocation()あたりを
使った方法も試しましたが、駄目でした。

ttp://www001.upp.so-net.ne.jp/yamashita/product/csidlviewer.htm
↑こんなツールがあったんで試しに取得できるかやってみたんですが
これでも取得できず。

せめてCSIDL_PROGRAM_FILESでも取れれば、まだどうにかなるんですが
これも同じ結果。

やっぱり、WinME以降に入ってるVer5系列のshell32.dllが必要なのでしょうか…

69 名前:デフォルトの名無しさん :03/03/19 17:21
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
のCommonFilesDirでも参照すれば?


70 名前:デフォルトの名無しさん :03/03/19 17:54
起動時にショートカットから起動したかどうか判断する方法
ないでしょうか?

71 名前:デフォルトの名無しさん :03/03/19 17:57
>>70
以前に同じ様な質問があったけど結論は「無い」だったと思う。

どんな理由で知りたいの?

72 名前:68 :03/03/19 18:04
>>69
早速のレスありがとうございます。
とりあえず、組み込んで上手く取得できました。

それにしても、こんな所に記述されてたとは…
これからはレジストリを漁る習慣つけるべきかな

73 名前:デフォルトの名無しさん :03/03/19 18:53
>>67
rindex(path,'.')

74 名前:29 :03/03/19 19:49
LVS_EX_BORDERSELECT の値をご存じの方いらっしゃいませんか


75 名前:デフォルトの名無しさん :03/03/19 19:53
>>74
0x00008000

76 名前:デフォルトの名無しさん :03/03/19 20:19
IEのようにステータスバーにプログレスバーを入れたいのですが、
やりか方がよくわかりません(MFCを使った例はよく見かけるんですが)。
もしご存じの方いらっしゃいましたらヒントでもいいので教えてください。
# オーナードローとか使わなければならないのでしょうか?

77 名前:デフォルトの名無しさん :03/03/19 23:26
SSL通信をしたいんだけど、目的がhttpsじゃないんです。
SChannelとかいうのをつかえばいいんでしょうか?

もし試してみたかたがおられましたら、ご教授お願いしやす。

78 名前:デフォルトの名無しさん :03/03/19 23:29
>>73
それで
dir.withdot\nodotfile
の拡張子を切り出したら楽しいことになりそう
というかrindexのどこがWin32なのかと小一時間(ry

79 名前:デフォルトの名無しさん :03/03/19 23:40
>>67
API は知らん。
VC なら、_splitpath(), _wsplitpath()

80 名前:デフォルトの名無しさん :03/03/19 23:45
>>76
ツールバーを親としてステータスバーを作る


81 名前:デフォルトの名無しさん :03/03/20 01:31
>>67 PathFindExtension()

82 名前:67 :03/03/20 11:23
回答くださったみなさんありがとうです。
おかげさまでできました。

83 名前:デフォルトの名無しさん :03/03/20 16:10
フォルダを指定してそのフォルダ内が空かどうかを調べるAPIってありますか?

84 名前:デフォルトの名無しさん :03/03/20 17:19
普通に調べればいいじゃん。

85 名前:83 :03/03/20 17:24
>>84
普通っていうのがわからないので困ってます。
今はFindFirstFileとFindNextFileで地道に検索してますけど
例外的なことがあったらいやなので。どうぞよろしくお願いします。

86 名前:デフォルトの名無しさん :03/03/20 17:36
PathIsDirectoryEmpty

87 名前:デフォルトの名無しさん :03/03/20 17:37
キー入力を受けるソフトを作っています
WM_KEYDOWNで受け取って、
::GetKeyNameTextにLPARAMを渡して名前を得ているのですが、
NumLockがonでもoffでも"Num 2"などが返り、NumLockの状態が反映されません。

自分で変換テーブルを持っても良いのですが、
Num 0>Ins、Num .>Del と、単純に変換しても
全てのキーボードが同じであるかどうか
調べが付かなかったので、ちょっと迷ってます。

何か良い解決方法無いでしょうか。

88 名前:83 :03/03/20 18:43
>>86
ありがとです。
これってWin98以降なんですよね。まっ、いっか。

89 名前:29=74 :03/03/20 21:47
>75
どうもありがとう


90 名前:デフォルトの名無しさん :03/03/20 23:45
言語バーの様にタスクバー上に配置できるプログラムを作ろうと思っています。
具体的にはタスクバーにパソコンのバッテリ残量を表示したいのです。
Googleやらで色々調べたのですが、いい方法が見つかりません。
IBMのThinkpadに私の思っているのと全く同じ動作をするバッテリメーターが
付いているのでできないという事はないと思うのですが…。
ご存じの方いらっしゃいましたらご教授頂きたいです。

91 名前:デフォルトの名無しさん :03/03/20 23:56
>>90
Googleですぐに見つかるサンプルでダメ?
チンコのバッテリメータも同じやり方をしてるはずなんだが。


92 名前:デフォルトの名無しさん :03/03/21 00:21
>>91
何というキーワードで検索したらヒットしますか?
「タスクバー、ツールバー、AppBar、デスクトップツールバー、バッテリー表示、API」
この辺りの組み合わせで検索してたのですが、見つからなかったんです。

93 名前:デフォルトの名無しさん :03/03/21 00:25
Shell_NotifyIconでええやろか?

老婆心ながらメニュー出すときはSetForegroundWindowを忘れずに。
これで悩んだ。

94 名前:デフォルトの名無しさん :03/03/21 00:27
>>93
タスクトレイにアイコンを表示するのではなく、タスクバー上に置きたいのです。
できるかわかりませんが、理想はタスクバー上にクライアント領域を持つ事です。

95 名前:デフォルトの名無しさん :03/03/21 00:42
仮想フォルダを作れば出来るんじゃないの?

96 名前:デフォルトの名無しさん :03/03/21 00:48
んじゃあこういう手でどうじゃろか?

タスクバー
FindWindow("Shell_TrayWnd",NULL);

タスクトレイ
FindWindowEx(hwn,0,"TrayNotifyWnd",NULL);

97 名前:デフォルトの名無しさん :03/03/21 00:49
>>94
IDeskBandかな

98 名前:デフォルトの名無しさん :03/03/21 01:08
>>96
タスクバーにクライアント領域を持つだけだとどうも難しそうですね。
ありがとうございました。

>>97
まさしくそれが思っていたものっぽいです。
色々資料当たってがんばろうと思います。
ありがとうございました。

99 名前:デフォルトの名無しさん :03/03/21 01:26
「スワップファイルがあるドライブは何ドライブか」
これを調べるためのAPIはなんでしょうか?


100 名前:デフォルトの名無しさん :03/03/21 06:26
1Gのファイルを作成する際に、実際に1G書き込まずに先にディスク領域だけ確保するには
どうしたらよいのでしょうか。

101 名前:デフォルトの名無しさん :03/03/21 06:35
SetFilePointer(Ex)>SetEndOfFile

102 名前:デフォルトの名無しさん :03/03/21 08:10
LayeredWindowで不透明度0にした場合って
そのぶぶんに穴が空いてしまうのでしょうか?

103 名前:デフォルトの名無しさん :03/03/21 08:55
>>100
> 実際に1G書き込まずに
NTFSだとセキュリティ上の理由で必ずゼロ埋めされるから不可能

104 名前:デフォルトの名無しさん :03/03/21 08:58
BSTRを作成するときは必ずSysAllocStringを
使わなくてはならないのでしょうか?
それともBSTRと同じメモリ構造を自分で用意しても
かまわないのでしょうか?

105 名前:デフォルトの名無しさん :03/03/21 09:09
>不透明度0
ウィンドウが透明になる(=見えなくなる)だけだと思うが

106 名前:デフォルトの名無しさん :03/03/21 09:17
>>104
作成・廃棄は自分しかやらず、外部には参照しかさせない、
と限定できるならいいんじゃない?
混乱するから俺ならやらないけど・・・

107 名前:デフォルトの名無しさん :03/03/21 09:19
SetFilePointerってEOF超えた位置に移動してもよかったんだっけ?

108 名前:デフォルトの名無しさん :03/03/21 09:30
>>105
いつ拾ったのか分からないPNGローダーのサンプルに
αチャンネル付きのPNGを読ませたところ、
完全に透明になっているところをクリックすると
下のウインドウをクリックしたことになってるもので・・・

ソースを見ても、リージョンを弄っているところは皆無で
UpdateLayeredWindowしているだけでした。

気になったのでぐぐってみたら、
http://www.google.co.jp/search?q=cache:Gahrr6rAyeMC:shillest.net/src/view.cgi%3Fpage%3D4%26account%3Dheper+UpdateLayeredWindow&hl=ja&lr=lang_ja&ie=UTF-8
>SetLayeredWindowAttributes(hWnd, cTrans, 0, LWA_COLORKEY);
>だけで塗潰す必要もなく非矩形ウィンドウになるっぽです。。。。=■●_
とあるので、間違いないようなのです。

できれば、穴の空いたウインドウにせずに完全に透明な
部分を含んだウインドウを作りたいんですが・・・

109 名前:デフォルトの名無しさん :03/03/21 09:30
>>107
出来るよ

110 名前:デフォルトの名無しさん :03/03/21 10:43
>>107
MSDN: http://www.asia.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/jpwinpf/_win32_setfilepointer.htm

ファイルの終わり(EOF)を超える位置にファイルポインタを設定してもエラーにならないことに注意してください。ただし、SetEndOfFile、WriteFile、WriteFileEx いずれかの関数を呼び出すまでは、ファイルのサイズは増加しません。

111 名前:名無し@沢村 :03/03/21 10:45
>>108
ヌヒよ、穴のあいた部分にWS_EX_TRANSPARENT属性のついた
ポップアップウィンドウを重ねてみてはどうか。

112 名前:デフォルトの名無しさん :03/03/21 11:07
>>111
ウインドウを移動させると描画内容が破綻する

113 名前:名無し@沢村 :03/03/21 11:27
>>112
ヌヒよ、そんなもんUpdateWindow()で済む話だ

114 名前:デフォルトの名無しさん :03/03/21 12:12
>>106
IEコンポに書き込む文字列を渡すためだけに
関数内で作成・廃棄するのがアホらしかったんで
あらかじめ長さのフィールドを確保しておけば
無駄なコピーが減らせないかと思って

115 名前:デフォルトの名無しさん :03/03/21 13:42
>>114
それをどこに置いておくつもりだ……
グローバルにするつもりじゃないだろうな

116 名前:デフォルトの名無しさん :03/03/21 13:42

ウインドウクラスと実際のウインドウの関係はどうなっているのでしょう?

RegisterClass でウインドウのクラスを定義して、CreateWindow で
実際に作成するわけですが、いままではクラスというのは
Cの構造体(あるいはオブジェクト)の定義であって、実際にインスタンス化
(実体化)するのが CreateWindow なのだと思っていました。
しかしペゾルトを読んで、SetClassLong でウインドウのアイコンを「リアル
タイムに」変更できると書いてあったので、よく分からなくなりました。

SetClassLong と SetWindowLong の両方でウインドウプロシージャの
アドレスを変更できますが、両者にはどこが違うのですか?

実際に、どのようにメモリ確保が行われるのか、どこかに詳しく書いて
ある書籍はないもんでしょうか?



117 名前:デフォルトの名無しさん :03/03/21 13:56
>>115
すんげえ、的はずれなレスだね。
BSTRを関数に渡す際には、呼び出し側に破棄の責任があるのだよ。

118 名前:国語が足りない奴 :03/03/21 14:10
先生、いま作っているアプリで、
SetTimer()とInvalidateRECT()使って
BMPの動画をやっているんですが、
動画再生中にパソコンのメモリ使用量が
増えていきます。BMPはDLLにリソースとして
埋め込み、アプリ実行はじめにDLLをLaodLibrary()しています。
再描画の度にBMPをLoadBitmap()、
SerectObject()してBitBlt()、そしてDeleteObject()。
最後にアプリ終了時にFreeLibrary()。
この流れで使用メモリ増幅の理由に
なりそうなところはどこですか?


119 名前:デフォルトの名無しさん :03/03/21 14:30
ノートン

120 名前:デフォルトの名無しさん :03/03/21 15:13
>>117
そのレスも的を得ているようには思えんがw

121 名前:デフォルトの名無しさん :03/03/21 15:26
>>118
SerectObjectを1回しかしてないところ、並びに
SelectObjectが出てこないところ。

122 名前:デフォルトの名無しさん :03/03/21 17:34
とあるフォルダにファイルが作られたりコピーされたことを感知するためには
どのような処理をすればよいでしょうか?
とりあえず1秒ごとにそのフォルダをなめようかと思いましたが
これはあまりに馬鹿っぽいです。エクスプローラからイベントがもらえたら
うれしいのですが。

123 名前:デフォルトの名無しさん :03/03/21 18:00
>>122
FindFirstChangeNotification

124 名前:デフォルトの名無しさん :03/03/21 20:17
>>113
自信たっぷりだな。
あんまり自信たっぷりだから信じてやってみたら
やっぱりUpdateWindowじゃだめじゃねーか。
やっぱりおまえは沢村だな

125 名前:デフォルトの名無しさん :03/03/21 20:28
沢村がハンドル変えたんか
がくがくぶるぶる

126 名前:122 :03/03/21 20:38
>>123
さんくすですー。できますた。できますた。

127 名前:104 :03/03/21 21:47
ぐぐってみたところ
BSTRはプロセス境界をまたいで渡されるかもしれないから
システムによって割り当てられなければならない。
メモリレイアウトが同じなだけではだめ、とのこと。
お騒がせしました。

128 名前:デフォルトの名無しさん :03/03/21 23:52
>>120
的を得る ?
なんか得するのか ?

129 名前:デフォルトの名無しさん :03/03/21 23:54
>128
ageるならそんなくだらないつっこみをしないで建設的な意見でも述べたら?(嘲笑激藁

130 名前:デフォルトの名無しさん :03/03/22 00:00
>>120 = >>129

131 名前:デフォルトの名無しさん :03/03/22 02:14
こちらで伺うのかが適切かは解りませんが。
一部の(SnapIt!等)で、「エクスプローラのフォルダの余白をダブルクリック」だの
「解像度が変更されたらアイコンの自動再配置」なんて機能が有ります。
この様に、Explorerの挙動を他のアプリから感知するにはどうすればいいのでしょうか?
資料をご紹介頂けるとありがたく思います。

132 名前:デフォルトの名無しさん :03/03/22 02:21
前者はフック
後者はWM_SETTINGCHANGEかな

133 名前:デフォルトの名無しさん :03/03/22 02:30
>>132
うーむ何をどうフックすれば余白をWクリックなのか、今の時点ではさっぱり解りませんが
がんがって調べてみまつ!
ありがとうございましたー

134 名前:デフォルトの名無しさん :03/03/22 02:35
フックじゃねーや、サブクラス化な。
WM_LBUTTONDBLCLKだかを捕まえればいいんじゃね?
勿論、アイテムのダブルクリックとかややこしいことがあるけど
そう言うのを解決して。

135 名前:デフォルトの名無しさん :03/03/22 03:13
とにかくExplorerの仕様(?)が全然解らないので、鋭意調べ中です!
LVNメッセージを捕まえられれば・・・とかちょっと思ったけど、
捕まえられたとしても余白のメッセージなんて無かった(w

136 名前:デフォルトの名無しさん :03/03/22 04:28
>>116
どっちもOSが管理している構造体だよ

ウインドウ1枚分の管理情報を格納している制御ブロックが「ウインドウ」
「ウインドウ」を作るときの初期値が「ウインドウクラス」
詳細に入る前の概要説明としてはこんなもんだろ

137 名前:デフォルトの名無しさん :03/03/22 05:37
>>135
LVM_GETITEMCOUNTを送って0なら余白。

138 名前:デフォルトの名無しさん :03/03/22 06:18
質問します。

CreateFile を使い、非共有かつ FILE_FLAG_DELETE_ON_CLOSE を指定せずに開い
たファイルを、ハンドルを閉じると同時に削除したいのですが、可能でしょうか?
可能ならその方法も教えて頂きたいのですが。

139 名前:国語が足りない奴 :03/03/22 06:24
>>121
なんでSerectObject()を2回するのですか?
それでするとしたらどこで?

140 名前:デフォルトの名無しさん :03/03/22 06:41
このスレは
いわゆるプラットフォームSDKを使うということなのでしょうか?
区分けがわからないのでどこで質問すればいいのやら・・・

141 名前:デフォルトの名無しさん :03/03/22 07:12
>>140
MSDNライブラリで「プラットフォームSDK」に分類されている関数やメッセージの話ならここでいい
COMやMFCが出てくる話なら別スレがある

142 名前:デフォルトの名無しさん :03/03/22 08:27
>>137
そうするのか!!
一寝入りしたらまた格闘してみまつ。ありがとさんです(;゜Д゜)b

143 名前:デフォルトの名無しさん :03/03/22 08:42
>>142
あ、137はLVM_GETSELECTEDCOUNTの間違い。

144 名前:デフォルトの名無しさん :03/03/22 10:39
>>139
あなたは国語ばかりか英語も足りません。

145 名前:デフォルトの名無しさん :03/03/22 13:58
>>140
ここは「WIN32API」の質問&解答スレです。
WIN16API・WIN64API等やWindowsプログラムに
関するWIN32API絡みでない質問は受け付けません。

WIN16APIの質問&解答スレ
現在無し

WIN64APIの質問&解答スレ
現在無し

Windowsプログラムに関するAPI以外の質問&解答スレ
Windows Programing for C/C++(Not MFC)
http://pc2.2ch.net/test/read.cgi/tech/1018239290/

146 名前:デフォルトの名無しさん :03/03/22 14:35
Win16はともかくWin64に独立スレが必要とは思えんが
杓子定規すぎ

147 名前:デフォルトの名無しさん :03/03/22 15:11
>>146
同意
Win16の話をここでするのは漏れ的にはOKだな

148 名前:デフォルトの名無しさん :03/03/22 15:27
ネタにマジレ(ry

149 名前:デフォルトの名無しさん :03/03/22 15:57
Win64はないでしょ。その代わり.NETはある意味Win64相当といえるかも。
例えばファイルサイズはlong=int64でintはどのプラットフォームでもサイズ変わらないし。

150 名前:デフォルトの名無しさん :03/03/22 16:05
> Win64はないでしょ

http://msdn.microsoft.com/theshow/Episode005/default.asp

151 名前:デフォルトの名無しさん :03/03/22 16:06
>Posted July 14, 2000

152 名前:デフォルトの名無しさん :03/03/22 17:39
> 例えばファイルサイズはlong=int64でintはどのプラットフォームでもサイズ変わらないし。
IL32ならlong=int32で(Win32)
ILP64ならintは64ビットだと思ったが

153 名前:デフォルトの名無しさん :03/03/22 17:40
間違った
×IL32ならlong=int32で(Win32)
○IL32ならlong=int32で(Win64)

154 名前:デフォルトの名無しさん :03/03/22 18:11
>>152
ソースは?

155 名前:デフォルトの名無しさん :03/03/22 19:05
http://www15.big.or.jp/~kaini/image/img-box/img20030321215209.jpg

156 名前:デフォルトの名無しさん :03/03/22 22:54
>>155
グロ

157 名前:デフォルトの名無しさん :03/03/23 06:22
コンソールプログラムにおいて Sleep()で休止中に Ctrl-Cを入力すると、完全に
凍ってしまうんですが、これはどうにかならないのでしょうか?

158 名前: :03/03/23 10:44
SleepEx() 使え


159 名前:デフォルトの名無しさん :03/03/23 12:51
自作のコントロールにマウスカーソルをあわせてホイールを
回すと何らかの動作するようにしたいのですが、Spy++で調べても
WM_MOUSEWHEELが送られてこないようです。
どうすればホイールの動きを感知できるでしょうか?

160 名前:デフォルトの名無しさん :03/03/23 18:19
>>158
SleepExつかっても凍ってしまうのですが。


161 名前: :03/03/23 22:17
>>160
ごめん、記憶で適当に言っちゃった。でも SleepEx() て割り込み受け付けるために
使うんじゃなかった?

明日検証してみるからちょっとまっててね。
AppWizard で作った Win32コンソールの hello world くらいで再現するよね?


162 名前:デフォルトの名無しさん :03/03/23 22:47
>>157
どんな環境でそうなるの。98でもXPでもきちんと止まるのですが。


163 名前:デフォルトの名無しさん :03/03/23 22:58
>>159
WM_MOUSEWHEEL はキーボードフォーカスを持つ
ウインドウに送られるそうだけど、その辺は大丈夫?



164 名前:デフォルトの名無しさん :03/03/23 23:02
>>157 これでどうだ?
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/10811

165 名前:161 :03/03/24 13:27
>>160
ごめん、まじで再現しない。

#include <stdio.h>
#include <Windows.h>

int main(int argc, char* argv[])
{
printf("Hello World!\n");

::Sleep(10000);

return 0;
}
で、コンソールアプリ実行しても、Ctrl+c で止まる。
>>164さんの情報でも解決しない場合は、詳しく環境を教えて。

166 名前:デフォルトの名無しさん :03/03/24 13:42
160じゃないけど、MFCをサポートするコンソールアプリでやったら例外で落ちた。
一応報告。
ウィザードが吐いたコードの最後に ::Sleep(10000); を追加しただけだが……

Win2000 VC6SP5

167 名前:165 :03/03/24 13:57
>>166
Win32 Console Application を AppWizard で作らせて、
MFCサポートにした。
if () ~ else の最後に ::Sleep(10000); を追加したけど落ちない。

WinXP home VC6SP5


168 名前:デフォルトの名無しさん :03/03/24 17:22
FindFirstChangeNotificationでフォルダを監視して、その変更通知は受け取ることが
できたのですが、その中で変更のあったファイルのみ列挙するには
どのようにしたらよいでしょうか?

169 名前:159 :03/03/25 00:39
>>163
SetFocusを実行するようにしてみたのですがダメでした。

普通のウィンドウ(WS_OVERLAPPEDWINDOW)で
ホイールの動きを感知できるか試してみたのですが、
Spy++で見る限りWM_MOUSEWHEELが送られているのに、
ウィンドウプロシージャのブレークポイントには止まりません。

WM_MOUSEWHEELがちゃんと定義されていないのかと思い、
case 0x020a:としてみたのですがダメでした。

メッセージループに何か仕掛けが必要なのでしょうか?

170 名前:デフォルトの名無しさん :03/03/25 09:26
マウスユーティリティにホイールメッセージ奪われて
WM_VSCROLLにすりかえられてたりしない?

171 名前:168 :03/03/25 17:33
やっぱり、無理みたいですね。(´・ω・‘)ショボーン

172 名前:デフォルトの名無しさん :03/03/25 18:27
>>160
SetErrorModeするとか明示的にsignalハンドラ書くとかはどうよ?

173 名前:デフォルトの名無しさん :03/03/25 21:48
猫プロのWindows SDK一番最初のプログラムがコンパイルできません

'void *' 型は 'HBRUSH__ *' 型に変換できない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )

とエラーが出ます
BCCです
早くも挫折の予感です
みなさんこれを乗り越えてきたのでしょうか

174 名前:デフォルトの名無しさん :03/03/25 22:06
>>173
http://pc2.2ch.net/test/read.cgi/tech/1030493157/733 を見てください

bccだと猫のサンプルはエラーが結構出たような気がするけどがむばれ・・・

175 名前:デフォルトの名無しさん :03/03/25 23:10
>>173
windowsx.h, GetStockBrush, DeleteBrush 等のキーワードで調べる……は駄目かな?

176 名前:デフォルトの名無しさん :03/03/25 23:55
>173
C言語の第1章からやれ

177 名前:デフォルトの名無しさん :03/03/25 23:58
>>173
エラーと言われたソースのファイル名と行番号は認識してるか?
その行で使っている型識別子は1つずつgrepしてみたか?
typedefは見つけたか?

178 名前:デフォルトの名無しさん :03/03/26 00:08
#define NOSTRICT
…は素人にはお勧めできないからがんばって適切な型の指定に置き換える

179 名前:173 :03/03/26 00:32
>>174のリンク先の方法で解決できました
意味はよくわかりませんでしたが、HBRUSH型にキャストしてやれば良いんですね

>>174>>175>>176>>177>>178
アドバイスありがとう
また明日から頑張れそうです

180 名前:デフォルトの名無しさん :03/03/26 01:01
>>179
憶えたこと、その場でちゃんとメモっとけよ
そのメモの束が、お前が先輩になった時の財産になるぞ

181 名前:デフォルトの名無しさん :03/03/26 06:48
http://cos.site.ne.jp/img-box/img20030325172722.jpg

182 名前:デフォルトの名無しさん :03/03/26 07:07
>>181
おお。

183 名前:名無し@沢村 :03/03/26 08:08
>>124
ははは、昨日会社でソースを確認したらUpdateWindowじゃなかったよ。
正しくはこうだな。

ShowWindow(hWnd, SW_HIDE);
MoveWindow(hWnd, .....);
ShowWindow(hWnd, SW_SHOW);

184 名前:デフォルトの名無しさん :03/03/26 09:11
>>181
( ●ω●) オトーサン・・・

185 名前:デフォルトの名無しさん :03/03/26 13:04
>>183
禿しくちらつく。
そんなもん実用にならねぇ

186 名前:デフォルトの名無しさん :03/03/26 17:42
>>170
WM_VSCROLLにすり替えられていたようです。
Spy++で表示されているのは、送られているメッセージで、
受け取ったメッセージではないんですね?
ありがとうございました。

187 名前:名無し@沢村 :03/03/27 00:40
>>185
ヌヒよ、WS_EX_TRANSPARENT のポップアップウィンドウの話をしているのだぞ。
ユーザには存在していないように見えるウィンドウをいったん非表示にしたところで
ちらつくわけがないだろ。わかったか、ヌヒよ。

188 名前:デフォルトの名無しさん :03/03/27 00:42
リソース食いそうだね。

189 名前:デフォルトの名無しさん :03/03/27 00:49
質問です。
PC に PS/2 キーボードと USB キーボード みたいに
キーボードが複数繋がっているとして、
この両者の入力を、どちらのものか識別したりする方法ってないでしょうか?
一応、デバイスマネージャにはデバイスドライバが2つある状態になっています。
多少低レベルな API とかでもいいのですが…
(さすがにデバイスドライバを作るとか、そういうレベルだと厳しいのですが)

識者の方、指揮者の方問わずよろしくおねがいします。

190 名前:デフォルトの名無しさん :03/03/27 00:58
ウィンドウアプリ(非コンソールアプリ)で、起動後に
GetStdHandleすると返ってくる値がとても変なのですが
なにか関連情報ありませんか?

例えばWindows2000Sp3のExplorerから起動すると、
標準出力ハンドルとして0x00010001が返ってきます。
NULLでもINVALID_HANDLE_VALUEでもない、しかし無効なハンドル。
一方CMD.EXEからstartコマンドを使って起動するとハンドルはNULL
その他、起動方法を変えるといろいろな結果が得られます。

今手元に詳しい結果が無いのですが
WinMain
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
MessageBox(...)
}
とかで簡単に調べられます。なんでしょねこれ。

191 名前:デフォルトの名無しさん :03/03/27 01:04
>>190
explorerがなにがしかハンドルを渡してるんじゃないのか?

192 名前:デフォルトの名無しさん :03/03/27 08:52
>>190
GetStdHandle 関数が返すハンドルは、コンソールからの読み取りまたはコンソールへの書き込
みが必要なアプリケーションで利用できます。
(MSDNより)

ウィンドウアプリでは必要ないと思うんだけど。

193 名前:デフォルトの名無しさん :03/03/27 10:41
>190
CreatePipe()しないと駄目とか

194 名前:193 :03/03/27 12:06
9x系がCreatePipe使えないから違うか…

195 名前:デフォルトの名無しさん :03/03/27 12:22
>>194
使えるよ
使えないのはCreateNamedPipeのサーバ側

196 名前:デフォルトの名無しさん :03/03/27 13:28
質問お願いします。VC++6を使っていますが、
newよりもGlobalAllocを使った方が良い場面というのは、どういう場合なんでしょうか

なんとなく、大きいメモリを確保する必要が有るときは
GlobalAllocかなぁ、などと思っているのですが。

197 名前:デフォルトの名無しさん :03/03/27 13:44
>>196
APIがGMEM_MOVEABLEとかで指定する移動可能メモリを要求してるときぐらい
クリップボード系でGMEM_SHAREを指定するときもあるかも

198 名前:デフォルトの名無しさん :03/03/27 13:46
クリップボード使う時はGlobalAllocじゃないとね

199 名前:デフォルトの名無しさん :03/03/27 13:48
おねがいします!
_beginthreadexの戻り値のハンドルをクローズする場所は
たいていWaitForSingleObjectなどでスレッド終了を確認した後で
行われていますが、
スレッド関数内の最後(まだスレッドは終わってない)の所で
CloseHandleして良いものなのでしょうか ?
いちおうCloseHandleは成功はしているけど・・・やばいのかな?

200 名前:デフォルトの名無しさん :03/03/27 14:17
>>199
WaitForSingleObjectなどでスレッド終了を確認する必要が無い場合は
CloseHandleしてかまわない、WaitFor...使ってる場合にCloseHandleすると
どうなるかしらない。WaitFor...がハンドルの参照カウンタをインクリメント
しているなら大丈夫だが、、、普通どおり終了確認してからCloseHandleする
のが安全だろ。

201 名前:デフォルトの名無しさん :03/03/27 14:41
ダイアログボックスに描画したグラフィックを消すにはどのようにしたらよいでしょうか?
グラフィックはLineToやPolylineで書いています。

202 名前:デフォルトの名無しさん :03/03/27 14:45
>>201
InvalidRectとか?

203 名前:デフォルトの名無しさん :03/03/27 14:56
>>202
即レス、ありがとうございます。
できました。

204 名前:デフォルトの名無しさん :03/03/27 15:07
>>200
良く分かりました。さんくす。

205 名前:196 :03/03/27 15:11
>>197-198
レスありがとうございます。
良かった、用途はかなり限定されてるんですね。
悩まずに済みそうです。感謝です。

206 名前:デフォルトの名無しさん :03/03/27 17:03
文字列が数値かどうか判定するAPIってありましたでしょうか?
VBでいうところのIsNumericです。

207 名前:デフォルトの名無しさん :03/03/27 17:16
>>206
GetStringType, GetStringTypeEx かなぁ?

208 名前:デフォルトの名無しさん :03/03/27 17:20
>>206
IsCharAlphaNumeric() && !IsCharAlpha()
ではどうか?

209 名前:デフォルトの名無しさん :03/03/27 22:52
マウスカーソルを指マークにしたいのですがデフォルトではないようです。
みなさんどうやっていますか?

210 名前:デフォルトの名無しさん :03/03/27 22:58
沢村か?

211 名前:デフォルトの名無しさん :03/03/27 23:07
IDI_HANDのが気に入らなかったら
自分の手を見ながら描く

212 名前:デフォルトの名無しさん :03/03/27 23:40
>>211
IDC_HANDですね。ありました。2000以上だったのか。

213 名前:190 :03/03/28 01:27
>>191-195
ありがとうございます。
ウィンドウアプリから子プロセスとしてコンソールアプリを起動する
時に標準出力などを一旦待避しておいて後で
また戻してるだけなので、使わないといえば使わない
ハンドルなんですけどね。
ちょっと気持ち悪かったもので。

214 名前:デフォルトの名無しさん :03/03/28 11:19
>213
とりあえず猫プロとか見ながら組んでみたけど
SetStdHandle()でエラー返さないからええんでない?

215 名前:デフォルトの名無しさん :03/03/28 17:57
カーソルがウィンドウの外に出ていったことを
知るにはどうしたらいいのでしょうか?
できればキャプチャーせずに知りたいのですが。

216 名前:デフォルトの名無しさん :03/03/28 18:02
>>215
キャプチャーするのが一番だと思うんだけど・・・
タイマーで監視するか
透明なウインドウを置いてそこで検出するか

キャプチャーしたくない理由ってなによ?

217 名前:デフォルトの名無しさん :03/03/28 18:13
用途によってはタイマーで監視する方法も。
例えば、
 プッシュボタンを押したとき → キャプチャー
 フラットなボタンを凸表示するとき → タイマー
みたいに。


218 名前:デフォルトの名無しさん :03/03/28 18:16
>>217
ウインドウ上でボタン押下したならウインドウからはずれてもMOUSEMOVEが拾えなかったっけ?

219 名前:デフォルトの名無しさん :03/03/28 18:57
DIB通さずに高速に描画する関数ってどんなのがありますか?
点とか円とか線とか

220 名前:215 :03/03/28 19:37
>>216-217
ありがとうございます。

カーソルが載っているときだけボタンの色を
変えるということをしたかったのです。

カーソルが外に出た瞬間別のボタンの上に
載った場合、キャプチャー解除しても直後は
WM_MOUSEMOVEを拾えないのではないか、
と思ったのですが、実験してみたら拾えました。(汗)
スマソです。

221 名前:デフォルトの名無しさん :03/03/28 20:35
>>219
点とか円とか線を描くのにDIB以外の手段つーとメタファイルか?
そんなん実測したらええやん

222 名前:デフォルトの名無しさん :03/03/28 20:44
>>221
GDIと混同してる?

>>219
LineToとかArcとか

223 名前:221 :03/03/28 21:09
>>222
GDI以外の何と混同してると重田?

224 名前:デフォルトの名無しさん :03/03/28 22:58
>>218
いや気になったのは、キャプチャだとキーボードメッセージもキャプチャしているウィンドウに取られてしまい
マウスがボタンの上に乗っているときにメニューのショートカット(Alt + H でヘルプとか)が使えなくなったりしないかなぁ、と。
アクセラレータやMFCを使っていると何故か大丈夫なのかもしれないけど。

225 名前:デフォルトの名無しさん :03/03/28 23:01
TrackMouseEvent() は?

226 名前:デフォルトの名無しさん :03/03/29 20:24
ダイアログボックスの背景の色を指定するにはどうしたらいいでしょう

227 名前:デフォルトの名無しさん :03/03/29 21:55
>>226
WM_ERASEBKGNDで処理

228 名前:デフォルトの名無しさん :03/03/29 22:38
http://www15.big.or.jp/~kaini/image/img-box/img20030329222324.gif

229 名前:デフォルトの名無しさん :03/03/29 22:51
>>228
はいはい面白い面白い

230 名前:228 :03/03/30 01:10
中学の同級生の大ちゃんを思い出させるセリフだな、それ…。
気に食わない事があると良くそのセリフを吐いていたっけ…。
はあ、金返せよ…。

231 名前:yosoでやってくれ :03/03/30 01:35
少なくとも一方はスレ違いと思われ

232 名前:デフォルトの名無しさん :03/03/30 16:09
自分以外のプロセスが使っているWindows Common Controls
にアクセスしたいんですけどどうやったらいいんでしょうか?

で、そこに表示されているテキストを読み取りたいんですが?

95系とNT系で違う処理になると思いますがXPで動けば十分です。


233 名前:デフォルトの名無しさん :03/03/30 16:23
>>232
>そこに表示されているテキストを読み取りたいんですが?

煽られた・・・・

234 名前:デフォルトの名無しさん :03/03/30 16:47
te

235 名前:デフォルトの名無しさん :03/03/30 17:20
ボタンを押すと凹みますよね。で、中の文字が右下にずれる。
このずれの量って、GetSystemMetricsか SystemParametersInfoあたりで決まってるんでしょうか?

標準では横方向1px、縦方向1pxのようですが。

236 名前:デフォルトの名無しさん :03/03/30 17:36
WINAPIじゃないんですけど、
レジストリ操作でフォルダにあたるキーはなんですか。
ファイルならわかるけどフォルダがわかりません。

237 名前:デフォルトの名無しさん :03/03/30 17:38
>236

意味不明

238 名前:デフォルトの名無しさん :03/03/30 17:46
猫でも分かるよりさらに超初心者向けのwindowsプログラミングサイトを
教えてください。

239 名前:デフォルトの名無しさん :03/03/30 17:54
>>238
http://hima-doki.s13.xrea.com/x/_cgi/a-column/data/motties/1036074275.html

240 名前:デフォルトの名無しさん :03/03/30 17:59
>>238
サルでもわかるWindowsプログラミング
http://life2.2ch.net/test/read.cgi/credit/1041764551/


241 名前:デフォルトの名無しさん :03/03/30 18:03
>>238
バカは死ね。

242 名前:デフォルトの名無しさん :03/03/30 22:20
>>235
決まってないと思われ。と言うかボタン作ったヤツが決めてるだけ。

243 名前:yosoでやってくれ :03/03/30 22:57
>>238
くめい氏がここを見ていることを祈りながら、
どの説明のどこがどのようにわからないのか
その恥のかきついでに、克明に表現しろ

この世のどこかにものすごく奇特な人がいて
おまえの悩みにつきあってくれるかも知れんぞ

244 名前:デフォルトの名無しさん :03/03/30 22:58
あり、コテハンのままだった(欝だ詩嚢

245 名前:yosoでやってくれ :03/03/30 22:59
あげ

246 名前:デフォルトの名無しさん :03/03/31 00:45
>>232
VirtualAllocEx

247 名前:デフォルトの名無しさん :03/03/31 03:50
>>232
GetWindowText()が使えそうなら使う。(WM_GETTEXTを送るのは×)
無理ならシステムフックを使う。
http://home.att.ne.jp/yellow/hide_n/programming/tips03.html




248 名前:デフォルトの名無しさん :03/03/31 04:45
>>247
>他のプロセス内のコントロールのテキストを取得するには、GetWindowText 関数を
>呼び出すのではなく、直接 WM_GETTEXT メッセージを送ります。
ってかいてあるよ?



249 名前:デフォルトの名無しさん :03/03/31 05:04
WM_SETTEXTとWM_GETTEXTはWin16との互換性を保つために、自動的に
メモリマップを介してプロセス間で文字列を共有できる、というようなことを
Advanced Windowsに書いてあった気がするが。

250 名前:デフォルトの名無しさん :03/03/31 07:10
WM_GETTEXTで読み取れるのはステータスバーくらいだろ


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