Win32API 質問箱 Build10(2ちゃんねる)

FTP、CGI、SSI、telnetが自由に使える超高速レンタルサーバ。
工夫しだいで、楽しさ100倍。 www.binboserver.com
月額千円サーバ | サブドメインコース | BIGなサーバ

サブドメインコース:CGIやFTPが使いたい・お金を掛けたくない人のために。
 *****.syo-ten.com *****.gasuki.com *****.zansu.com
 お好きな名前を無料で使えます。早い者勝ち。

人気サイト 月額千円サーバ:.com .net .org で取得できます。.JPドメイン大歓迎!
 超高速・高機能サーバを1000円で!使ってみれば、分かります。

BIGなサーバ:Big なBig なサーバー。充実したサポートをお求めの方へ。
 インターネットでご活躍の皆様へ、そしてご活躍予定の皆様へ。
2ちゃんねるは、このサーバを使っているです。

■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■

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で読み取れるのはステータスバーくらいだろ


251 名前: デフォルトの名無しさん 投稿日: 03/03/31 12:14
GetWindowText() って何のためにあるの?
全部 WM_GETTEXT でいいじゃん。


252 名前: ネタにマジレス 投稿日: 03/03/31 12:27
>>251
GetWindowText
指定されたウィンドウが持つタイトルバーのテキストを取得します。
指定されたウィンドウがコントロールのときは、コントロール内のテキストを取得します。

(中略)

解説
この関数は、指定したウィンドウ (またはコントロール) にWM_GETTEXT メッセージを送ります。
この関数で、他のアプリケーション内のエディットコントロールのテキストを取り出すことはできません。

                                                (MSDNより抜粋)


253 名前: デフォルトの名無しさん 投稿日: 03/03/31 12:53
>>252
マジにネタレスじゃなくて?


254 名前: デフォルトの名無しさん 投稿日: 03/03/31 17:05
あるファイルが存在するかどうか調べるAPIってありますか?


255 名前: デフォルトの名無しさん 投稿日: 03/03/31 17:14
FindFirstFile


256 名前: デフォルトの名無しさん 投稿日: 03/03/31 17:18
>>254
FileExists


257 名前: デフォルトの名無しさん 投稿日: 03/03/31 17:22
fileExists
public boolean fileExists (String stgfilename, int flags)
throws IOException;

指定されたファイルが存在するかどうかを調べます。

戻り値 :

ファイルが存在する場合は、true。そうでない場合は、false。

パラメータ 解 説
stgfilename 存在するかどうかを調べるファイルの名前。
flags stgfilename に指定したファイルが検索されるストレージ領域を示す値。STORE_FL_LOCAL フラグおよび STORE_FL_ROAMING フラグのいずれか、またはその両方を指定します。


(MSDNより抜粋)


258 名前: デフォルトの名無しさん 投稿日: 03/03/31 17:24
>>254
VBならDir関数


259 名前: デフォルトの名無しさん 投稿日: 03/03/31 17:28
>>258
スレ違い


260 名前: デフォルトの名無しさん 投稿日: 03/03/31 17:32
>>258がスレ違いなら>>257>>256もスレ違いなわけだが。


261 名前: デフォルトの名無しさん 投稿日: 03/03/31 17:51
ププ
よっぽど悔しかったんだね


262 名前: デフォルトの名無しさん 投稿日: 03/03/31 17:56
了解です。fopenですね?


263 名前: デフォルトの名無しさん 投稿日: 03/03/31 18:10
PathFileExists( )
GetFileAttributes( ) != (DWORD)-1;

じゃねーの?


264 名前: 258 投稿日: 03/03/31 18:30
スレタイはWin32API 質問箱 Build10
言語を指定していない
よって回答も各言語のがあってもいいのでは?



265 名前: 258 投稿日: 03/03/31 18:31
と思ったけどDirだとAPIじゃないからスレ違いでつね
逝って(ry


266 名前: デフォルトの名無しさん 投稿日: 03/03/31 20:40
>>263
Cライブラリのaccessだったか、その関数呼んでるよね。


267 名前: デフォルトの名無しさん 投稿日: 03/03/31 21:14
CreateFile()でいいじゃん


268 名前: デフォルトの名無しさん 投稿日: 03/03/31 22:59
>>267
fopenはfcloseしなきゃいけないから面倒
たいていどのCにもaccessがある

とfujiが言ってたな


269 名前: デフォルトの名無しさん 投稿日: 03/03/31 23:00
>>268
死んだ方が良い発言だな。


270 名前: デフォルトの名無しさん 投稿日: 03/03/31 23:23
>>268
唐突に言うならともかく
267に対しては何のフォローにもなってないな

最後の一行はどんなに善意に解釈しても糞以外の何者にもならない
そんなことも自分で調べてないなんてレベル低すぎというより問題外


271 名前: デフォルトの名無しさん 投稿日: 03/04/01 00:06
>>268
こいつMSDNも規格票も持ってないのか?


272 名前: デフォルトの名無しさん 投稿日: 03/04/01 00:47
〜と友人が言ってました

これ、自分の無知無能をごまかすときの言い回し。


273 名前: デフォルトの名無しさん 投稿日: 03/04/01 00:54
匿名なんだからそんなこと気にしなくてもいいのにな。
俺が正しいとばかりに言い切っちゃえば、誰かが突っ込んで訂正するかもしれん。


274 名前: デフォルトの名無しさん 投稿日: 03/04/01 02:12
友達の友達は皆友達だ


275 名前: デフォルトの名無しさん 投稿日: 03/04/01 04:27
俺は情報のソースを書いてくれる書き込みは丁寧だと感じるがな。


276 名前: デフォルトの名無しさん 投稿日: 03/04/01 05:50
GetFileAttributesでいいのに
わざわざCreateFile使うことないじゃん。


277 名前: デフォルトの名無しさん 投稿日: 03/04/01 05:56
>>275
「友達が言ってた」発言だと思って
ソースだとわからなかったんでしょ


278 名前: デフォルトの名無しさん 投稿日: 03/04/01 09:32
>>276
GetFileAttributes はそもそも属性を調べるAPIで、たまたま存在確認が
できるだけ。しかも C:\foo.txt がフォルダなのかファイルなのかなどの
判断も必要なので >>263 は間違い。
ファイルの存在は CreateFile(path, 0, OPEN_EXISTING,...) を使うべき。



279 名前: デフォルトの名無しさん 投稿日: 03/04/01 10:15
>>278
電波は死んでください。


280 名前: デフォルトの名無しさん 投稿日: 03/04/01 10:25
FindFirstFileでいいじゃねえええかあ


281 名前: デフォルトの名無しさん 投稿日: 03/04/01 10:45
CreateFile() や FindFirstFile() はそれぞれコストが大きいだろう。


282 名前: デフォルトの名無しさん 投稿日: 03/04/01 12:29
>>278
CreateFileはそもそもファイルを開くAPIで(ry
> しかも C:\foo.txt がフォルダなのかファイルなのかなどの
> 判断も必要なので >>263 は間違い。
>>254の意図が-eなのか-fなのかもはっきりしないのに
そこまで言い切るのもどうかと思うが-fだったとしても
!(GetFileAttributes() & FILE_ATTRIBUTE_DIRECTORY)
でOK。Cランタイムが間違ってると言い張るなら話は別だが


283 名前: デフォルトの名無しさん 投稿日: 03/04/01 16:05
コスト
GetFileAttributes << FindFirstFile <<<<<< CreateFile

その上 CreateFileはファイルが開けない場合もとかがからんできて面倒


284 名前: デフォルトの名無しさん 投稿日: 03/04/01 16:27
>>283
そのためにOPEN_EXISTINGフラグがあると思うのだが。


285 名前: デフォルトの名無しさん 投稿日: 03/04/01 16:38
>>283
ちゃんとプロファイルした結果か?

Win XP SP1 では、ファイルがある場合もない場合も
GetFileAttributes < CreateFile < FindFirstFile
だったけどな。

ただし、
GetFileAttributesはない場合はある場合に比べて30%くらい遅くなった。
CreateFileは10%強早くなった。FindFirstFileはほぼ変わらなかった。


286 名前: デフォルトの名無しさん 投稿日: 03/04/01 17:07
http://hogehoge.com/fugefuge/
のようにファイル名を省略したURLから
http://hogehoge.com/fugefuge/index.html
上のように、ファイル名を補完したURLを取得出来るAPIはないのでしょうか?



287 名前: デフォルトの名無しさん 投稿日: 03/04/01 17:22
>>286
不可能


288 名前: デフォルトの名無しさん 投稿日: 03/04/01 17:46
>>286
APIの範囲を越えている
鯖サイドの設定によるだ


289 名前: デフォルトの名無しさん 投稿日: 03/04/01 17:57
>>287,288
そうですか、APIでは出来ないんですね。
ありがとうございました。


290 名前: デフォルトの名無しさん 投稿日: 03/04/01 23:59
MessageBox()APIについて質問があります。
MFCのメッセージボックスを使うと、引数に渡したHWNDのウィンドウの中央に
メッセージが表示されるようなのですが、SDKのみでこれをやるにはどうすれば
いいのでしょうか?
普通にWindowハンドル渡しただけでは、画面中央にメッセージが表示されてしまいます。



291 名前: デフォルトの名無しさん 投稿日: 03/04/02 00:35
>>290
それ、俺も昔悩んでMFCのソースを調べたけどよくわからんかった。
MoveWindowで動かしているようでもないし。
一度ここで質問したけど、回答は得られなかったし。
一番ある回答は
「自分でダイアログ作れゴルァ」
だったと思う。


292 名前: デフォルトの名無しさん 投稿日: 03/04/02 02:12
いずれにせよ、ファイルの存在を調べるためだけにハンドルを開くことになる
CreateFile()やFindFirstFile()をわざわざ呼び出すのは、馬鹿のやることだな。


293 名前: ぬるぽ男爵 ◆7jriffTro. 投稿日: 03/04/02 05:44
>>291
センターウィンドウじゃ。


294 名前: デフォルトの名無しさん 投稿日: 03/04/02 08:09
APIバイブルに記載されていないAPIが
いくつかあるようなのですが、
(DragQueryFilesとかExtractIconとか)
漏れを補うのにいい書籍があれば教えてください。


295 名前: デフォルトの名無しさん 投稿日: 03/04/02 09:02
>>294
書籍じゃないがMSDNライブラリ


296 名前: デフォルトの名無しさん 投稿日: 03/04/02 10:02
>>294
http://www.runan.net/program/tips/hidden_api.shtml


297 名前: デフォルトの名無しさん 投稿日: 03/04/02 12:30
便乗で申し訳ないのですが、VisualStudioを買わずにMSDNライブラリを
手に入れる方法ってあるでしょうか?


298 名前: デフォルトの名無しさん 投稿日: 03/04/02 12:54
>>297
変わった質問ですね。ボーランド派ですか?
「MSDN オペレーティング システム サブスクリプション」をどうぞ。


299 名前: デフォルトの名無しさん 投稿日: 03/04/02 12:56
>>290
http://pc2.2ch.net/tech/kako/1040/10409/1040964626.html
の217からだけど、フックを使っているらしい。
>>293
MeseageBoxのHWNDが手に入らないと無理なんじゃない?


300 名前: デフォルトの名無しさん 投稿日: 03/04/02 20:31
具体的なやり方が知りたいけど、
はっきりとした「できない」の証明でも
すっきりするんだけどな〜


301 名前: デフォルトの名無しさん 投稿日: 03/04/02 20:36
>>298
手元にあるVS6の文書が古くなってしまったもので。
やはりMSDN契約しか無いですか。ありがとうございました。
暫くはSDKの付属文書から差し替えつつ、困ったらMSDNオンラインを引くことにします。



302 名前: デフォルトの名無しさん 投稿日: 03/04/02 20:44
>>298
誤: オペレーティングシステム サブスクリプション
正: ライブラリ サブスクリプション


303 名前: デフォルトの名無しさん 投稿日: 03/04/02 22:41
ハンドルを継承するってどういう意味ですか?


304 名前: デフォルトの名無しさん 投稿日: 03/04/02 23:03
>303
どっかからハンドル持ってくるとか、
持ってきたハンドルにさらに機能くっつけるとか。

広域すぎて何が言いたいのか解らないよ。


305 名前: デフォルトの名無しさん 投稿日: 03/04/02 23:05
>>303
たとえば、その資源を使う権利を引き継ぐということです。


306 名前: デフォルトの名無しさん 投稿日: 03/04/03 01:01
>>302
ライブラリサブスクリプションって今でも売ってるのかね。
いちおうMSのサイトには名前があるけど、売ってるサイト見たことないな。


307 名前: デフォルトの名無しさん 投稿日: 03/04/03 06:04
>>300
MFCのソース読めば


308 名前: デフォルトの名無しさん 投稿日: 03/04/03 06:57
>>306
http://www.microsoft.com/catalog/display7.asp?subid=36&site=202

MSDN ライブラリ サブスクリプションの製品パッケージは、
2000 年 10 月26 日を持って販売終了とさせていただきます。


309 名前: デフォルトの名無しさん 投稿日: 03/04/03 11:53
>>308
なにせパッケージ版は店頭に一年以上放置されたりするからな。


310 名前: デフォルトの名無しさん 投稿日: 03/04/03 12:11
WritePrivateProfileStringの書きこみの後すぐに
CreateFileで開いて読みこんでも内容が変化してないのはなぜ?


311 名前: デフォルトの名無しさん 投稿日: 03/04/03 12:20
>310
書き込み内容がフラッシュされていないから。

WritePrivateProfileString( NULL, NULL, NULL, ... );
でフラッシュできる


312 名前: 310 投稿日: 03/04/03 12:33
>>311
早速やってみます。これでSleepで時間を置いてから開くみたいな
蛇道な(間違った)方法から開放されそうです。 感謝!


313 名前: デフォルトの名無しさん 投稿日: 03/04/03 13:31
>>312
WritePrivateProfileXXX 使うこと自体邪道な(間違った)デザインなんだけど。:)


314 名前: デフォルトの名無しさん 投稿日: 03/04/03 13:52
ini に書きこむならそのAPI関数しかないだろうに


315 名前: デフォルトの名無しさん 投稿日: 03/04/03 14:00
レジストリが推奨されてるって言いたいだけだろ


316 名前: デフォルトの名無しさん 投稿日: 03/04/03 14:12
たしかにWritePrivateProfileStringとCreateFileの併用は良くない気もするが



317 名前: デフォルトの名無しさん 投稿日: 03/04/03 14:16
レジストリ弄るのイヤ〜ン


318 名前: デフォルトの名無しさん 投稿日: 03/04/03 14:56
MSDNライブラリ全体は要らんからプラットフォームSDKと付属文書キボンヌ・・・


319 名前: デフォルトの名無しさん 投稿日: 03/04/03 16:29
WM_GETMINMAXINFO でウィンドウサイズを変更出来る大きさを制限出来ますが、
あるウィンドウに対してその制限された大きさを取得するにはどうしたらいいでしょうか?


320 名前: デフォルトの名無しさん 投稿日: 03/04/03 16:49
>>319
そのメッセージを送って帰ってくる情報で判断ってできないかな?


321 名前: デフォルトの名無しさん 投稿日: 03/04/03 17:21
W系のAPIが入っているプログラムを作ったら、Win95で開始エラーが出るようになりました。
OSは自分で判定しているのでWin95の時はW系のAPIを使ってはいないのですが、
プログラムに入っているだけで起動できなくなります。
でもNTではW系の方を使う必要があるので、消すことができません。
開始エラーが出ないようにする良い方法はないものでしょうか?



322 名前: デフォルトの名無しさん 投稿日: 03/04/03 17:35
>>321
API呼出をLoadModule+GetProcAddressに変えてみるとか?



323 名前: デフォルトの名無しさん 投稿日: 03/04/03 17:39
マウスのキャプチャー中に送られてくるWM_MOUSEMOVEの
カーソル座標の情報なんですけど、xy共にクライアント領域で0を下回るときには8012などの
わけの分からない数値になってしまうのですが、これはどういうことなのでしょうか。


324 名前: デフォルトの名無しさん 投稿日: 03/04/03 17:48
>>314-317
マジレスすると、MSDNには

注意 この関数は、16 ビット Windows ベースのアプリケーションとの互換性を
保つ目的でのみ提供されています。Win32 ベースのアプリケーションでは、初期化
情報をレジストリに格納してください。

と書いてあるわけで。レジストリに書くのもいやなんだけどね。
(Get|Write)(Private)?ProfileXxx のXML版用意シレ〜。
Microsoft.MSXMLをCoInitializeしてXPath、、、って面倒だし。(w


325 名前: デフォルトの名無しさん 投稿日: 03/04/03 18:01
>>323
二の補数?@16Bit


326 名前: デフォルトの名無しさん 投稿日: 03/04/03 18:04
>>321
どうしてもW版を使いたいならMSLUがあるが。
別にNT系だからってW系APIを使わなければいけないということもないが?


327 名前: デフォルトの名無しさん 投稿日: 03/04/03 18:09
>>326
Win2000にしかないAPIとか使ってるんだろう。
Win95ではその機能をオフにしてるとか。例えばウィンドウの半透明機能。
LoadLibrary+GetProcAddressに一票。


328 名前: デフォルトの名無しさん 投稿日: 03/04/03 18:10
あ、2000じゃなくてNTって書いてた。ま、いいか。


329 名前: 323 投稿日: 03/04/03 18:24
>>325
うっかりしてました。LOWORD()の戻り値の
WORDが符号無しだって気がつかずに使っていました。

MSDNにGET_X_LPARAMってのが載っていたので、それにしたら正常に動作しました。


330 名前: デフォルトの名無しさん 投稿日: 03/04/03 19:55
short型にキャストですな


331 名前: デフォルトの名無しさん 投稿日: 03/04/04 02:08
Drectxを使ってフルスクリーンモードで描写しながら
DialogWindowを表示したいのですが
まったく表示されません。
どのようにすれば表示されるでしょか?



332 名前: 331 投稿日: 03/04/04 02:34
解決しました。
すんまそ。


333 名前: デフォルトの名無しさん 投稿日: 03/04/04 02:37
>>332
そんなレスよりどう解決したのかのほうが重要だ。


334 名前: 331 投稿日: 03/04/04 03:12
>>333
俺にとっては重要じゃない。


335 名前: デフォルトの名無しさん 投稿日: 03/04/04 03:16
>>333
http://pc2.2ch.net/test/read.cgi/tech/1018239290/l50
の947以降参照。


336 名前: デフォルトの名無しさん 投稿日: 03/04/04 07:13
>>334
だったらお前のひとりごとなんかどうでもいいから来るな


337 名前: デフォルトの名無しさん 投稿日: 03/04/04 08:36
このアホ、C++スレでも聞いてるな


338 名前: デフォルトの名無しさん 投稿日: 03/04/04 08:38
>>331 はマルチか…

C++相談室 part17
http://pc2.2ch.net/test/read.cgi/tech/1047560042/705


339 名前: 331 投稿日: 03/04/04 10:01
334は私ではありません。


340 名前: デフォルトの名無しさん 投稿日: 03/04/04 11:58
ダイアログボックス上にピクチャコントロールを貼り付けて
そこにIDI_HAND(システムアイコン)を貼り付けたいのですが。
ダイアログに
switch (uMsg){
case WM_INITDIALOG:
SendMessage(GetDlgItem(hDlg, IDC_STOP), WM_SETICON, TRUE, (LPARAM)LoadIcon(0, MAKEINTRESOURCE(IDI_HAND)));
break;
としても表示してくれません。
なにか足りないでしょうか?



341 名前: 340 投稿日: 03/04/04 13:03
DrawIconでWM_PAINT時に書くことにしました。


342 名前: デフォルトの名無しさん 投稿日: 03/04/04 13:10
MAKEINTRESOURCE 不要? あと
TRUE を ICON_BIG とか ICON_SMALL に
してみたらどう?


343 名前: デフォルトの名無しさん 投稿日: 03/04/04 19:26
>>340
スタティックコントロールならSTM_SETICONですぜダンナ


344 名前: デフォルトの名無しさん 投稿日: 03/04/04 21:05
すみません、オーナーウインドウの外にでられないウインドウって
どうやってつくるのですか?


345 名前: デフォルトの名無しさん 投稿日: 03/04/04 21:23
>>344 WS_CHILDぉぉぉぉぉぉぉぉぉぉぉ


346 名前: デフォルトの名無しさん 投稿日: 03/04/04 21:36
ダイアログボックスなどのプロパティで「チャイルド」と指定すると
見えなくなるのですがどうすればよいのですか?


347 名前: デフォルトの名無しさん 投稿日: 03/04/04 21:39
あの〜スミマセン!!  
MassageBoxの出し方教えて下さい。  
ガッコウの兄貴に指示されました。
コニチワ、マッサージボックスで出せなさいと。
どうすればいい?



348 名前: デフォルトの名無しさん 投稿日: 03/04/04 21:43
>>347
まったく意味がわからん。


349 名前: デフォルトの名無しさん 投稿日: 03/04/04 21:45
>>347
マルチかよ



350 名前: いつでもどこでも太郎さん 投稿日: 03/04/04 21:56
すみません。初心者です。
Win32APIで、一定時間ごとに、画面をキャプチャするなんていうアプリを作れるのでしょうか?


351 名前: デフォルトの名無しさん 投稿日: 03/04/04 22:03
>>350

>一定時間ごとに
SetTimer

>画面をキャプチャ
GetDC(NULL), CreateCompatibleDC, CreateCompatibleBitmap, SelectObject, BitBlt

これらをググっても意味わからんときは猫(>>1にリンクあり)へ逝くかPetzold本買え


352 名前: デフォルトの名無しさん 投稿日: 03/04/04 22:05
あ、待て待て
おぬし童・・・いやCくらい知ってるか?


353 名前: デフォルトの名無しさん 投稿日: 03/04/04 22:20
>>350
またマルチかよ


354 名前: デフォルトの名無しさん 投稿日: 03/04/04 22:47
起動回数制限ってどうやってやるんですか?


355 名前: デフォルトの名無しさん 投稿日: 03/04/04 23:21
>>354
起動した回数数えて、10を越えたらすぐ終了するようにする。


356 名前: デフォルトの名無しさん 投稿日: 03/04/04 23:33
>>344
補足しとくとオーナーじゃなくて親な


357 名前: デフォルトの名無しさん 投稿日: 03/04/05 00:12
WM_ACTIVATEを受けたときに、クライアント領域を塗りつぶしたら、
ボタンまで塗りつぶされてしまいました。
ボタンが塗りつぶされないようにするには、どうしたらいいのでしょうか?

ちなみにこんな感じのコードを書きました。↓

case WM_ACTIVATE :
 hDC = GetDC( hWnd );
 hBrush = CreateSolidBrush( RGB( 255, 255, 255 ) );
 FillRect( hDC, &rct, hBrush );
 DeleteObject( hBrush );
 ReleaseDC( hWnd, hDC );
 break;


358 名前: デフォルトの名無しさん 投稿日: 03/04/05 00:41
>>357
ボタンをInvalidateRectするとか


359 名前: Win32SDK勉強中 ◆T5XFff2FOQ 投稿日: 03/04/05 01:47
スタティックコントロール(スタイルはSS_BITMAP)の
幅と高さがSTM_SETIMAGEで設定したイメージの
幅と高さ(GetWindowRectにて取得)に一致しないのは
仕様でしょうか?


360 名前: デフォルトの名無しさん 投稿日: 03/04/05 05:17
プラットフォームSDKダウンロード・インストールしてヘルプ読もうとしたら見れません。
いきなりつまずきました。ぐぐってみると、HTML HELP 2.0 なる物が必要とか?
MSDN や VS.NET についてる?らしいですが、そんなものもってません。
SDKのヘルプみるのに、SDK以外が必要なんでしょうか?


361 名前: 360 投稿日: 03/04/05 05:26
インストールしたのはコアSDKで、OSはWindows98MEです。


362 名前: デフォルトの名無しさん 投稿日: 03/04/05 05:33
入力された文字(キーコード)を、プロシージャ以外で知る方法ってありますか?
GetKeyboardState()などは指定したキーが押されているかどうかを判別するだけのようなのですが、
押されたキーコード自体が知りたいんです。
C言語でいうgetch()みたいな都合の良いものは用意されてないのでしょうか?



363 名前: デフォルトの名無しさん 投稿日: 03/04/05 05:56
>>357
WS_CLIPCHILDREN


364 名前: デフォルトの名無しさん 投稿日: 03/04/05 06:30
>>362
KEYBOARDフックで別のプロシージャは駄目か?


365 名前: デフォルトの名無しさん 投稿日: 03/04/05 07:09
>>358
ValidateRect?


366 名前: デフォルトの名無しさん 投稿日: 03/04/05 08:03
>>365
InvalidateRect
無効化して再描画させる。


367 名前: デフォルトの名無しさん 投稿日: 03/04/05 08:40
>>357
親ウィンドウのスタイルに WS_CLIPCHILDREN を指定してみては
>>359
クライアント領域(GetClientRect)のサイズと一致するんではなかろうか


368 名前: デフォルトの名無しさん 投稿日: 03/04/05 09:45
あの〜すみません
EnumWindowsでMFC製のアプリをうまく拾う方法って何か無いですか?
GetWindowでGW_OWNERセテイすると取得できなくて困ってます。


369 名前: デフォルトの名無しさん 投稿日: 03/04/05 11:21
>>368
EnumWindowsProcからは
CWnd* pWnd = CWnd::FromHandle(hWnd);
でMFCの関数が使えるようになる
MFCのGetOwnerで取れんようなら
オーナーじゃないって可能性も疑ったほうがよかろう


370 名前: 357 投稿日: 03/04/05 11:36
>>358>>363>>367
うまくいきました。ありがとうございます。
WS_CLIPCHILDRENなんて属性があったんですね。
てっきり、何もなしでもデフォルトで子ウィンドウの
領域は避けてくれるものだと思いこんでいました。


371 名前: デフォルトの名無しさん 投稿日: 03/04/05 11:38
ハイパーリンクを使用できる関数ってないですか?
リンク先をを文字列で渡したら
そのWEBページをブラウザで開くというやつ。
IE以外のブラウザ使ってる人もいるだろし・・・



372 名前: デフォルトの名無しさん 投稿日: 03/04/05 11:47
>>371
ShellExecute ?


373 名前: デフォルトの名無しさん 投稿日: 03/04/05 11:59
>>369
C++Builderユーザーなんで、APIだけで何とかなりませんか?

GetClassName(buff,255);
String ClassName=buff;
if(ClassName.Pos("Afx")==1){
ShowMessage("MFCアプリです");
}else{
GetWindow(hWnd,GW_OWNER);
}

みたいな事してるんですが、これだと、余計な物までチェック
しなきゃなんないし、オーナーかどうかもわからない。



374 名前: 321 投稿日: 03/04/05 12:12
>>372
ShellExecuteでうまくいきました

あと文字列を表示する時に
アンダーラインを付けたい時は
どうすればいいですか


375 名前: デフォルトの名無しさん 投稿日: 03/04/05 12:16
>>374
LogFont


376 名前: デフォルトの名無しさん 投稿日: 03/04/05 12:56
>>368
実行時に判別するのは困難と思う。クラス名Afxは必須じゃないし。


377 名前: 368 投稿日: 03/04/05 13:28
ガーン!オーナーを確定することは出来ないんですか。。。
>クラス名Afxは必須じゃない
MFCアプリは複雑ですね。
IsWindowVisibleフィルタリングで何とかしてみます。
ありがとうございました。


378 名前: 376 投稿日: 03/04/05 15:01
>377
あ、確定的な方法は無いんじゃないかって話です。
アプリ中のウィンドウ全てに自前クラス名使うヤツはそうそう居ないだろうから大抵の場合はOKと思いますよ。


379 名前: デフォルトの名無しさん 投稿日: 03/04/05 15:48
>>373
ちなみにMFCではどうやって「オーナー」にアクセスしてるかつーと

_AFXWIN_INLINE CWnd* CWnd::GetOwner() const
{ return m_hWndOwner != NULL ? CWnd::FromHandle(m_hWndOwner) : GetParent(); }

m_hWndOwnerてのはMFCで定義しているC++データメンバだ


380 名前: デフォルト名無しさん 投稿日: 03/04/05 17:53
サンプル打って、なんにもしない画面だそうとおもったら、CreateWindow関数
がNULL返してきて画面がでないのですがなぜでしょう?
いきなりつまづいてる私、鬱。


381 名前: デフォルトの名無しさん 投稿日: 03/04/05 17:54
>380
打ち間違いに1000点。


382 名前: デフォルト名無しさん 投稿日: 03/04/05 17:58
>>381
打ち間違いなのか?見てくれ
hwnd = CreateWindow( szClassName,
"(´・ω・`)ショボーン",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ちなみにszClassNameはchar[]です。


383 名前: デフォルトの名無しさん 投稿日: 03/04/05 18:04
RegisterClassしてないに一票。


384 名前: デフォルトの名無しさん 投稿日: 03/04/05 18:04
RegisterClassしてないとか


385 名前: デフォルトの名無しさん 投稿日: 03/04/05 18:04
「一手」遅かったヨー(;´Д`)


386 名前: デフォルトの名無しさん 投稿日: 03/04/05 18:10
>>383-385
つーか、RegisterClass してないなんて、どこのサンプルよ。


387 名前: デフォルトの名無しさん 投稿日: 03/04/05 18:30
>>386
RegisterClass する部分が別ページになってるとか。


388 名前: デフォルトの名無しさん 投稿日: 03/04/05 20:22
>>380
void GiveMeErrorMessage(){
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // 既定の言語
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// lpMsgBuf 内のすべての挿入シーケンスを処理する。
// ...
// 文字列を表示する。
MessageBox(NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION);
// バッファを解放する。
LocalFree(lpMsgBuf);
}
をCreateWindowの後に呼び出す。


389 名前: デフォルトの名無しさん 投稿日: 03/04/05 21:32
>>373
MFCアプリ←→非MFCアプリの仲介をする
レギュラーDLLかCOMを一発作っとくといいかも


390 名前: 悪魔くん 投稿日: 03/04/06 00:41
変数名の名前を付けることで悩んでます。
RECTを、rc にするべきか rt にするべきか。
似たような変数でダブったりする確率が低い方にしたいと思っています。
経験豊富で少し黒い方、アドバイスをお願いします。


391 名前: デフォルトの名無しさん 投稿日: 03/04/06 00:52
黒いって何?

迷うようなら、それそのものを現すズバリの名前にしたほうが
後から読むのに楽かもよ。
 RECT gazou_hyouji_ryouiki
とか。


392 名前: 悪魔くん 投稿日: 03/04/06 00:55
画像とは限らないじゃん。
おぬしはまだピンク色。
経験豊富な黒い方、ヘルプミー。


393 名前: デフォルトの名無しさん 投稿日: 03/04/06 01:01
石炭より黒い俺は xxx_rect とそのまま書いている


394 名前: 悪魔くん 投稿日: 03/04/06 01:04
RECTの4文字は省略しない方がよいのかな?
猫に従ってUINTをmsgにしていて初めてMSG構造体に出会った時、精通した。


395 名前: デフォルトの名無しさん 投稿日: 03/04/06 01:18
UINT uMsg;


396 名前: デフォルトの名無しさん 投稿日: 03/04/06 03:03
縦スクロールバーの挙動を確かめるために、
ウィンドウに、TextOutでとりあえず1000段くらい適当な文字列を書いてテストしてみたんです。

縦スクロールバーは、おかげさまで正常に動いたのですが、スクロールつまみを
一気に動かしても、適切な画面が一瞬ででるとこが妙に気になりました。

これって内部では1000段もの文字列をオフスクリーンバッファみたいな領域に
まとまった画像データとして持っているってことですよね?
DIB形式でしたら馬鹿にならないメモリ量だと思うのですが。

一体どこがそんな大量なメモリを管理しているんでしょうか?
あと、その領域をじかにイジる手はないのですか?



397 名前: デフォルトの名無しさん 投稿日: 03/04/06 03:07
>>392
391の文意は画像に限ってないぞ?
そんな読み方をされるんなら一切例示をしない言い方になるが
390に示されている識別名でダブりかねないようであれば
命名法よりもスコープの使い方を先に憶えたほうがいい
そうすれば394程度のことでいちいち動揺しなくなる
#include<windows.h>で導入されるあらゆる識別名との衝突を避けるには
それらを全て知っている必要があることは認識しているか?
というのは、ある命名則が広く使われている理由を誤解しているように見受けられるのだが


398 名前: デフォルトの名無しさん 投稿日: 03/04/06 03:13
>>396
君の使っているビデオカードがRADEONかGeForceかはわからんが

まず、TextOutなどのGDIコマンドがどのくらいの速度で実行されているのかを
例えば10万回の実行時間などで実測してみることをすすめる

次に、これと全く同じ実験をリージョンをかけてやってみて
クリッピングが実行時間にどのくらい影響するかを調べてみることをすすめる

何が言いたいかって? やってみればわかる


399 名前: デフォルトの名無しさん 投稿日: 03/04/06 03:19
>396
> これって内部では1000段もの文字列をオフスクリーンバッファみたいな領域に
> まとまった画像データとして持っているってことですよね?
たかだか1000段程度なら毎回ふつーに再描画してるんでないの?
実際に描画が必要な領域はせいぜいスクリーンサイズ程度だし。
というか、そもそも
> ウィンドウに、TextOutでとりあえず1000段くらい適当な文字列を書いてテストしてみたんです。
このプログラムを書いたは君自身でないの?


400 名前: デフォルトの名無しさん 投稿日: 03/04/06 03:22
ScrollWindow() だったか、表示されてる部分のイメージだけスクロール
させる API なかったっけか。


401 名前: デフォルトの名無しさん 投稿日: 03/04/06 04:19
ScrollWindow, ScrollWindowEx, ScrollDC
正直 >>396 の言ってる意味がよくわからん。


402 名前: デフォルトの名無しさん 投稿日: 03/04/06 12:05
たぶん、WM_PAINTは最初に画面表示した時に一回しか呼ばれないと思ってるんだろう。


403 名前: デフォルトの名無しさん 投稿日: 03/04/06 15:33
Application.Handleって自分のメインフォームのハンドルを指してるのですか?


404 名前: デフォルトの名無しさん 投稿日: 03/04/06 15:59
>>290
ダイアログベースMFCプロジェクトですが、
デフォルトの状態でOKボタンのイベントハンドラに、

::MessageBox(m_hWnd, "テスト", "テストキャプション", MB_OK);

これを記述してみましたが、ダイアログの中央に表示されますよ?
これってAPIじゃないんでしょうか?




405 名前: デフォルトの名無しさん 投稿日: 03/04/06 16:03
>>400
画面をスクロールさせて新しく出てきた部分を無効領域に
する関数でしたね。


406 名前: !290 投稿日: 03/04/06 16:58
>>404
>SDKのみでこれをやるには...
って書かれているのが目に入らぬか!


407 名前: デフォルトの名無しさん 投稿日: 03/04/06 17:23
APIだけ呼んでるつもりでもフックでMFCのランタイムが呼ばれてるの


408 名前: デフォルトの名無しさん 投稿日: 03/04/06 18:09
>>406-407
おー ほんとだ。
MFCってこんなところまで変更しちゃうのか。
ちなみにどうやって変更してるの?


409 名前: デフォルトの名無しさん 投稿日: 03/04/06 19:06
>>403
VCLのTApplicationハンドルはTFormのハンドルとは別です。


410 名前: デフォルトの名無しさん 投稿日: 03/04/06 19:23
神にあなたの生き方の HANDLE をゆだねなさい


411 名前: デフォルトの名無しさん 投稿日: 03/04/06 19:24
>>408
フックで、って書いてるやん
SetWindowsHookExと検索キーワードまで書かないと通じませんか?


412 名前: デフォルトの名無しさん 投稿日: 03/04/06 19:49
>>411
SetWindowsHookEx() で API フックができるとは初耳だが・・・。


413 名前: デフォルトの名無しさん 投稿日: 03/04/06 19:51
WM_CREATEとかフックすれば済む話


414 名前: デフォルトの名無しさん 投稿日: 03/04/06 19:55
つーかそこまでいちいち説明しなくても分かれよ


415 名前: デフォルトの名無しさん 投稿日: 03/04/06 22:52
>>380
遅レスだけども

メッセージハンドラ中のWM_CREATEの戻り値をちゃんとしないと
NULLでエラーになることがあるよ。MSDN参照


416 名前: デフォルトの名無しさん 投稿日: 03/04/06 23:58
>>412
坊や、別プロセスのAPIフックをするときはSetWindowsHookEx()を使うんだよ。


417 名前: デフォルトの名無しさん 投稿日: 03/04/07 00:23
WTLのコンテナ使ってる時にでてくる、
MFCのクソ紛らわしいメンバ関数ガイドを撲滅せよ(#゚Д゚)=3 ムキー


418 名前: デフォルトの名無しさん 投稿日: 03/04/07 00:26
その前に MFC を撲滅しようぜ。


419 名前: デフォルトの名無しさん 投稿日: 03/04/07 01:21
Win2000とWin98で、同じパスから PathToRegionでリージョンを作成すると、どう
も結果が違う(作成したリージョンに対して GetRgnBoxをしてみると、結果が1ピ
クセル違う)んですけど、考えられる原因は何でしょうか?

これって、VGAドライバ依存だったりするんでしょうか?



420 名前: デフォルトの名無しさん 投稿日: 03/04/07 01:29
>>416
だれもAPIフックの話などしていない。
つーかAPIフックのやり方教えて。


421 名前: デフォルトの名無しさん 投稿日: 03/04/07 01:51
>>420
どぞ。
ttp://codeguru.earthweb.com/system/apihook.html


422 名前: 419 投稿日: 03/04/07 01:52
マッピングモード...っていうヤシかな?


423 名前: デフォルトの名無しさん 投稿日: 03/04/07 01:57
>>421
日本語で最小限のコードない?


424 名前: デフォルトの名無しさん 投稿日: 03/04/07 02:04
漏れは420じゃないが、サンクスコ>>421


425 名前: デフォルトの名無しさん 投稿日: 03/04/07 02:27
ライン引くプログラムで

hPen = CreatePen(PS_SOLID, 1, RGB(0, 255, 0));
hOldPen = SelectObject(hdc, hPen);
MoveToEx(hdc, 0, 0, NULL);
LineTo(hdc, rt.right, rt.bottom);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);

の2行目の部分をコンパイラが「void *型はHPEN_ *型に変換できない」と怒るのですが
どうにかなだめる手はないですか?



426 名前: デフォルトの名無しさん 投稿日: 03/04/07 02:43
#define NOSTRICT
#include <windows.h>


427 名前: デフォルトの名無しさん 投稿日: 03/04/07 02:50
hOldPen = static_cast<HPEN>(SelectObject(hdc, hPen));


428 名前: デフォルトの名無しさん 投稿日: 03/04/07 03:15
static_cast->reinterpret_cast?


429 名前: 425 投稿日: 03/04/07 03:24
>>426,427,428
月曜の朝に速レスどもです。
助かりました。


430 名前: デフォルトの名無しさん 投稿日: 03/04/07 03:32
>>421
英語の世界は裾野が広くていいなぁ・・・




431 名前: デフォルトの名無しさん 投稿日: 03/04/07 04:18
最近、APIを勉強し始めて、ああ、これがプログラミングなんだなと思い始めたわけですが、
自分の使いたいAPIの存在知るのが大変ですね


432 名前: デフォルトの名無しさん 投稿日: 03/04/07 04:22
他のプロセスに属する、あるウインドウに、
特定のメッセージが渡らないようにするには
どうすればいいのでしょうか?
OSはWindows2000Sp3です。


433 名前: デフォルトの名無しさん 投稿日: 03/04/07 06:27
>>416
MFCが使ってる方法ではないけどな
>>423
kageのソースとか。


434 名前: デフォルトの名無しさん 投稿日: 03/04/07 07:03
取得したハンドルからファイルパスって取得できますか?


435 名前: デフォルトの名無しさん 投稿日: 03/04/07 07:09
何のハンドルだよ


436 名前: デフォルトの名無しさん 投稿日: 03/04/07 07:21
漏れは自分自身(実行されている.exe又は.dll)のフルパスを知る方法を知りたい。
それと、プロセスのハンドルやdllのハンドルからフルパスを知る方法も知りたい。


437 名前: デフォルトの名無しさん 投稿日: 03/04/07 07:27
自分自身→GetModuleFileName(NULL, ...)
プロセスのハンドル→GetModuleFileNameExかToolhelp32
dllのハンドル→VirtualQuery + GetModuleFileName


438 名前: 436 投稿日: 03/04/07 07:35
どうも。

GetModuleFileNameはフルパスでは無くて、ファイル名だけを返して来たという記憶
が頭の中に何故か入ってました…。何故だろう…。

GetModuleFileName(NULL, ...)をDLL上で実行するとどうなるのでしょうか?まあ、
それは実験すれば良いとして。

序にモジュールハンドルとプロセスハンドルの違いを教えて頂けないでしょうか?基
本的なところなんですが。


439 名前: デフォルトの名無しさん 投稿日: 03/04/07 09:10
外部プロセスのウインドハンドルを取得し、それをつかって
HDCやそのDCの保持するビットマップをBITMAPINFOの形で得ることはできないですか?



440 名前: デフォルトの名無しさん 投稿日: 03/04/07 10:30
>>439
書いてる通りに実行したらできる


441 名前: デフォルトの名無しさん 投稿日: 03/04/07 12:02
>>438
プロセスハンドルは、1 つの実行ジョブ単位 (要するにプロセス) に関連付け
られたハンドル。
プロセスを止める/再開する/強制終了する/終了を待機する/終了コードを得る
等の操作ができる。

モジュールハンドルは、プロセスの処理内容を記述したプログラムファイル (EXE、
DLL 等) 1 つ 1 つに関連付けられたハンドル。
モジュールから API などのエントリを得る/モジュールをアンロードする等の操作
ができる。


で合ってますか?


442 名前: デフォルトの名無しさん 投稿日: 03/04/07 13:32
GetKeyState()は、指定したキーが押されてるなら負を返し、押されていないのなら
0を返す覚えました。
Caps Lockの判定に if (GetKeyState(VK_CAPITAL) < 0) ではなく
if (GetKeyState(VK_CAPITAL) & 1) != 0)とすると参考書に書かれているのですが
前者の場合では、何が間違っているのでしょうか?
宜しくお願いします。



443 名前: デフォルトの名無しさん 投稿日: 03/04/07 13:39
http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_getkeystate.htm


444 名前: 442 投稿日: 03/04/07 14:09
ctrlが押されていてもCaps Lockが入ってればGetKeyState(VK_CONTROL)の値が
負になるということですか?


445 名前: 442 投稿日: 03/04/07 14:46
最上位と最下位を読み違えてました・・
有難うございました。


446 名前: デフォルトの名無しさん 投稿日: 03/04/07 15:51
いくつかのエディットコントロールが乗っているダイアログがって
そのダイアログに対してLineToなどで線を引いたりしています。
エディットコントロールに入力されるとLinToなどで引いた線を再描画したくて
InvalidateRect(hDlg, NULL, TRUE);
SendMessage(hDlg, WM_PAINT, 0, 0);
でダイアログを再描画しています。
これでも再描画できますが、ダイアログ全体を再描画してしまうので
ちたついてしまいます。
コントロールは再描画しないでLineToなどで書いた図だけを再描画するには
どうしたらよいでしょうか?


447 名前: デフォルトの名無しさん 投稿日: 03/04/07 16:02
>>446
InvalidateRgnとかでコントロール以外の領域を再描画させる。
InvalidRectでLineToとかを描画する領域だけを再描画させる。


448 名前: デフォルトの名無しさん 投稿日: 03/04/07 16:19
>SendMessage(hDlg, WM_PAINT, 0, 0);
これって要るのか?


449 名前: デフォルトの名無しさん 投稿日: 03/04/07 16:21
>>447
うぁ。大変そうだ。

>>448
エディットコントロールの入力内容が変更されたら即再描画したいのれす。


450 名前: デフォルトの名無しさん 投稿日: 03/04/07 16:25
普通は UpdateWindow 使う罠


451 名前: コーイチ 投稿日: 03/04/07 16:29
ポップアップメニュー上で
ツールチップを表示させたいのですがやり方ってわかります?
#スタートメニューで各アイテムを選択したときに出るような感じのを
#タスクトレイ常駐アプリで作りたいのですが。


452 名前: デフォルトの名無しさん 投稿日: 03/04/07 17:23
Pen使って(三角形の)カーソル描いてるんだけど、このカーソル動かすには
ひとつ前のカーソル消して、新しい位置にカーソル表示みたいなN88Basicぽい処理しなきゃいけないのですか?

あとInvalidRectって、指定したrect範囲を無効にするって書いてあるけど、
無効にした範囲は別にクリアされる訳ではないんですか?



453 名前: デフォルトの名無しさん 投稿日: 03/04/07 17:54
>>452

>あとInvalidRectって、
InvalidateRect()のことか? 引数bEraseの説明嫁
>更新領域が処理されるときに、更新領域内の背景を消去するかどうか
>を指定します。TRUE を指定すると、BeginPaint 関数が呼び出された
>ときに背景が消去されます。FALSE を指定すると、背景はそのまま
>残ります。

>ひとつ前のカーソル消して、新しい位置にカーソル表示みたいな
InvalidateRect()で前のカーソルの領域と新しいカーソルの領域を
無効にして、WM_PAINTの時に新しいカーソル(というかカーソルの
現在位置)だけ書くようにすればよいはず



454 名前: デフォルトの名無しさん 投稿日: 03/04/07 18:17
>>453
どうも有難うございます!



455 名前: デフォルトの名無しさん 投稿日: 03/04/07 18:48
>>431
自分が何をしたいかを考えれば、たいていの場合、
Get〜〜かSet〜〜になるだろう!


456 名前: デフォルトの名無しさん 投稿日: 03/04/07 19:47
>>455
> >>431
> 自分が何をしたいかを考えれば、たいていの場合、
> Get〜〜かSet〜〜になるだろう!

Create〜 とかもそれなりにあるし、Enum〜 も気付きにくかったりするね。


457 名前: デフォルトの名無しさん 投稿日: 03/04/07 19:54
Path〜が便利


458 名前: デフォルトの名無しさん 投稿日: 03/04/07 23:39
UpdateLayeredWindow使って半透明描画処理したいんですが、
アルファ値を持ったデバイスコンテキストを作るってどうやるんですかね?


459 名前: デフォルトの名無しさん 投稿日: 03/04/07 23:43
sageてどうする漏れ


460 名前: デフォルトの名無しさん 投稿日: 03/04/08 11:32
最大化しているwindowの
通常時(元のサイズ)のRECTを取得するには
どの関数ですか?


461 名前: デフォルトの名無しさん 投稿日: 03/04/08 11:38
GetWindowPlacement


462 名前: デフォルトの名無しさん 投稿日: 03/04/08 11:56
なぜかフォアグラウンドが効きません。なぜでしょうか?
MessageBox(NULL, "TEST", "TEST", MB_SYSTEMMODAL|MB_SETFOREGROUND|MB_OK);



463 名前: デフォルトの名無しさん 投稿日: 03/04/08 12:21
>>462
親がいないから?


464 名前: デフォルトの名無しさん 投稿日: 03/04/08 12:55
>>458
32ビットDIBをCreateDIBSectionで作ってDCに選択


465 名前: デフォルトの名無しさん 投稿日: 03/04/08 12:59
>>463
そうなんですか?
やってみまつ。


466 名前: デフォルトの名無しさん 投稿日: 03/04/08 13:08
>>463
すみません。よく考えるとウィンドウを持たないアプリケーションでした。



467 名前: デフォルトの名無しさん 投稿日: 03/04/08 14:19
>>464
THX! やってみます


468 名前: デフォルトの名無しさん 投稿日: 03/04/08 20:28
フォーカス枠の描画を自前でやるのですが、矩形でないので DrawFocusRectが
使えません。

あの点線は、どうやって書くのでしょうか?

ペンで PS_DOTやPS_USERSTYLEで点線のスタイルを指定しても点線の間隔が長す
ぎるし、PS_ALTERNATE は Windows NT/2000/XPってなってるし...


469 名前: デフォルトの名無しさん 投稿日: 03/04/08 20:43
ちょっとスレ違いな気もしますがDrawDib系APIの質問ってことで。
任意の圧縮形式のフレームデータをウインドに描画にしたいのですが。。

ある種のフォーマットのデータを描画する際、そのフォーマットのデコンプレッサがインストールされて無い場合、そのフレームの描画ができないようです。
そこで代替手段としてDirectDrawを検討してるのですがそもそもデコンプレッサが入ってない圧縮形式の場合DirectDrawでも扱えないのでしょうか?
それとも両者は別モノでDirectDrawが自前で用意しているデコンプレッサなどが利用できるのでしょうか?



470 名前: デフォルトの名無しさん 投稿日: 03/04/08 21:11
WIN32アプリケーションでおすすめな参考書とかあります?どなたか教えて!


471 名前: デフォルトの名無しさん 投稿日: 03/04/08 21:13
>>470
書店へ。


472 名前: 470 投稿日: 03/04/08 21:19
>>471
こっちは田舎だからいい本がないからどうしてもネットで買いたいです
いい本教えて下さい



473 名前: デフォルトの名無しさん 投稿日: 03/04/08 21:36
>>472
田舎のせいにするな。


474 名前: 470 投稿日: 03/04/08 21:39
>>473
書店行ってもいい本はわからないよ
本がないんだから


475 名前: デフォルトの名無しさん 投稿日: 03/04/08 21:42
ネットでも十分勉強できるぞ。Win32なら「猫でも分かる〜」
あたりがいいんじゃないか?


476 名前: デフォルトの名無しさん 投稿日: 03/04/08 21:52
>470 バイブル


477 名前: デフォルトの名無しさん 投稿日: 03/04/08 22:01
>>469
「任意の圧縮形式のフレームデータ」とは、具体的にどんなんだ?
動画か?それなら、codecが入っていれば展開できるし
入ってなければDirectDrawだろうが、なんだろうができない。
静止画か?それは、自分でその展開用のライブラリを使って
展開するしかないだろう。静止画の圧縮・展開はOS(API)は
ノーサポートだからね。(jpegやgifみたいな一部例外もあるが)


478 名前: デフォルトの名無しさん 投稿日: 03/04/08 22:33
>470 バイブ


479 名前:   投稿日: 03/04/08 23:16
ツールバーのボタンを文字列を含めて同じ大きさにしたいと思います。
どなたか方法を教えてください。


480 名前: デフォルトの名無しさん 投稿日: 03/04/08 23:45
>>470よ、>>1は見たか? 猫がどうたらってリンクがあるだろ?
本が買えない事情を持つ者へまず一押しでおすすめできるサイトだぞ


481 名前: デフォルトの名無しさん 投稿日: 03/04/09 00:54
>>477
遅くなりました。レスありがとうございます。
フォーマットとはたとえばYUY2とかIF09とかです。
一応動画ですがフレーム毎にデータがきてそれを描画します
ですから静止画の展開と同様だと考えてます。
こういうコーデックって自分で作るにはどうすればいいんでしょうか?
参考になるサイトとかどなたかご存知ですか?
VCM系APIではなにやらICInstallといった関数でアプリのインスタンスのスコープで自作関数を登録できるようですが、これも使い方がよくわかりません
こちらは関係ないのかな?
ではでは。


482 名前: かおりん祭り 投稿日: 03/04/09 00:55
http://saitama.gasuki.com/kaorin/
〜oノハヽo〜 / ̄ ̄ ̄ ̄ ̄ ̄ ̄                
  ( ^▽^) < こんなのがございまーす♪ 
= ⊂   )   \_______
= (__/"(__) トテテテ...


483 名前: あぼーん 投稿日: 03/04/09 01:00
 ( ・∀・)< こんなのみつけたっち♪
http://muryou.gasuki.com/moe/hankaku10.html
http://muryou.gasuki.com/moe/hankaku09.html
http://muryou.gasuki.com/moe/hankaku08.html
http://muryou.gasuki.com/moe/hankaku07.html
http://muryou.gasuki.com/moe/hankaku06.html
http://muryou.gasuki.com/moe/hankaku05.html
http://muryou.gasuki.com/moe/hankaku04.html
http://muryou.gasuki.com/moe/hankaku03.html
http://muryou.gasuki.com/moe/hankaku02.html
http://muryou.gasuki.com/moe/hankaku01.html


484 名前: デフォルトの名無しさん 投稿日: 03/04/09 12:07
ShellExecute()でIE6.0を起動するプログラム書いてるんだけど、
Microsoft Photo Editor 3.01 を起動した状態だとなぜか以下のコードが
動かない。ShellExecute()からのエラーさえ返らず、ダンマリ状態になる。
これが相性ってやつ?ファイルの対応付けの関連かな?
ret = ShellExecute(NULL, "open", ".\\xxx.html", NULL, NULL, SW_SHOWNORMAL);

環境は
Win2k
VC++6.0 SP5


485 名前: デフォルトの名無しさん 投稿日: 03/04/09 12:18
>>484
ShellExecuteはWM_DDE_INITIATEをブロードキャストするので
応答しないウィンドウがあると黙り込みます。
2chブラウザでリンクをクリックしてもしばらく反応がないという
現象の原因もたいていがこれ。


486 名前: デフォルトの名無しさん 投稿日: 03/04/09 12:26
>>485
レスありがとうございます。助かりました。

>WM_DDE_INITIATEをブロードキャスト
そうでしたか〜
スレッド分けてタイムアウトを監視するしかなさそうですね。


487 名前: デフォルトの名無しさん 投稿日: 03/04/09 12:53
エクスプローラのファイル検索ダイアログを独自の機能で置き換えることはできますか?
もしできるとしたら、どういった技術について調べればよいのでそうか。よろしくお願いします。



488 名前: デフォルトの名無しさん 投稿日: 03/04/09 13:22
>>487
サブクラス化あたりかなぁ・・・


489 名前: デフォルトの名無しさん 投稿日: 03/04/09 14:09
エクスプローラのコンテキストメニューに追加したらいいだけちゃうんかと


490 名前: デフォルトの名無しさん 投稿日: 03/04/10 01:37
>>481
VCM系API?ああ、VideoForWindowsのVideoCompressionManagerの事か。
自分でICInstall等を使って展開関数を登録する事は自分でcodecを
作って登録するのと一緒だから、かなり大変だと思うよ。

結局、最初に言ったとうり、codecが入っていればMCIでも何でも展開できるけど
codecが入っていなければ、DirectDrawでも何でも無理だと思うよ。


491 名前: デフォルトの名無しさん 投稿日: 03/04/10 12:39
>>490
どうもありがとうございます。

codecを自作しました。
huffyuvというフリーのコーデックがソース付きで参考になりました。
いろいろなフォーマットも
http://www.fourcc.org/indexyuv.htm
で調べることができました。自作される方はどうぞ


492 名前: デフォルトの名無しさん 投稿日: 03/04/10 15:24
PCのメモリの容量や
new, mallocなどで得られるメモリの残量を知る関数を教えて下さい



493 名前: デフォルトの名無しさん 投稿日: 03/04/10 16:03
>>492
GlobalMemoryStatusのこととおもうけどnew, mallocはわからない。



494 名前: 492 投稿日: 03/04/10 19:42
>>493
サンクス!



495 名前: 492 投稿日: 03/04/10 21:04
実際にGlobalMemoryStatus使ってみましたが
残りメモリ(dwAvailPhysの値)が0MBになってるにもかかわらず
そうなっていてもメモリを1M2Mと普通に確保できる・・・なぜ・・・?




496 名前: デフォルトの名無しさん 投稿日: 03/04/10 21:40
仮想メモリ……


497 名前: 492 投稿日: 03/04/11 01:17
>>496
あ、やっぱり・・・

でもそれじゃ困るんだよなぁ・・・(w



498 名前: デフォルトの名無しさん 投稿日: 03/04/11 03:20
WM_ACTIVEってメッセージはどこに定義されているのでしょうか。
grepしても見つからないということは、なにか盲点が・・・。


499 名前: デフォルトの名無しさん 投稿日: 03/04/11 04:21
WM_ACTIVATE?
WA_ACTIVE?


500 名前: デフォルトの名無しさん 投稿日: 03/04/11 04:57
>>498
適当な場所(cpp.h内)に
#define WM_ACTIVE 12342124
みたいに定義すれば警告メッセージがでると思う
そのメッセージ項目をクリックすればその定義されてるファイルが開かれる



501 名前: 500 投稿日: 03/04/11 05:01
WM_ACTIVEはないぞゴルァ!!
ちょうどVC起動してたんでやってみた

winuser.h 1298行目
#define WM_ACTIVATE 0x0006



502 名前: デフォルトの名無しさん 投稿日: 03/04/11 06:38
VCのF12キー(定義部分へジャンプ)ってみんな使わないのね……


503 名前: デフォルトの名無しさん 投稿日: 03/04/11 11:08
>501
一応確認している誠実さにワロテしまいました。


504 名前: デフォルトの名無しさん 投稿日: 03/04/11 19:43
>>502
ブラウザ情報ファイル作るの結構処理重いしなぁ…。


505 名前: 500 投稿日: 03/04/11 19:58
>>502
あ、そんなのあったんだ
サンクス!



506 名前: デフォルトの名無しさん 投稿日: 03/04/12 15:51
WNDCLASS の hbrBackground は、
RegisterClassEx() して CreateWindow() した後に
変更ができないのでしょうか?

SetWindowLong()には、それらしい方法がない
ようだったのですが


507 名前: デフォルトの名無しさん 投稿日: 03/04/12 16:08
SetClassLong


508 名前: 506 投稿日: 03/04/12 16:18
>>507
おぉ、ありがとうございます

ところで、これでブラシをセット(上書き?)した場合、
もともとのブラシは、きちんとWindowsが消去する
のでしょうか?

たしか、RegisterClassEx()すると、渡したブラシを
削除する仕事はWindowsがすることになっていたと
思うのですが…
(管理権がプログラマの手から離れたと思う)


509 名前: デフォルトの名無しさん 投稿日: 03/04/12 17:24
リッチエディットコントロールで
特定の文字、行だけの背景色を変えたいんですけど、
方法教えてください。


510 名前: 509 投稿日: 03/04/13 03:10
解決しました


511 名前: 511(1) 投稿日: 03/04/13 05:54
UpdateWindow()関数って何するものなんですか?

本(Windows2000プログラミング標準講座)見てそこに載ってるスケルトンプログ
ラムをコンパイルして実行した後、UpdateWindow()関数を呼び出す部分をコメント
アウトしてもう一度コンパイル→実行したが何も変化せーへん…

そこで、その本に載ってるスケルトンプログラムを改変し、メッセージループや
ウィンドウ関数などに送られてきたメッセージをファイル(MES.LOG)に記録する
ようにしました。


512 名前: 511(2) 投稿日: 03/04/13 05:56
そのプログラムを、UpdateWindow()関数を消したり付けたりして実行したとき
のMES.LOGの違いは以下のようになりました(抜粋):

・UpdateWindow()あり
-------------------- end: ShowWindow()
-------------------- start: UpdateWindow()
hWnd=********, MESSAGE=WM_PAINT , WPARAM=0, LPARAM=0
-------------------- end: UpdateWindow()
-------------------- start: Message Loop
----- in Message Loop: MESSAGE=WM_PAINT
----- in Message Loop: MESSAGE=WM_KEYUP
hWnd=********, MESSAGE=WM_KEYUP , WPARAM=13, LPARAM=-1071906815

・UpdateWindow()なし
-------------------- end: ShowWindow()
-------------------- start: UpdateWindow()
-------------------- end: UpdateWindow()
-------------------- start: Message Loop
----- in Message Loop: MESSAGE=WM_PAINT
----- in Message Loop: MESSAGE=WM_PAINT
hWnd=********, MESSAGE=WM_PAINT , WPARAM=0, LPARAM=0
----- in Message Loop: MESSAGE=WM_KEYUP
hWnd=********, MESSAGE=WM_KEYUP , WPARAM=13, LPARAM=-1071906815


…両方ともWM_PAINTメッセージが送られてきているんですけど…

参考にさせていただいたURL:
http://msdn.microsoft.com/library/en-us/gdi/pantdraw_4zef.asp
http://www7.plala.or.jp/keny01/win32/01-07.html


513 名前: 511(3) 投稿日: 03/04/13 05:59
実行方法:
 ・余計なメッセージが送られてこないように、マウスカーソルが該当ウィンドウ
  の中に入らないようにする
 ・実行後 Alt(Grph) + F4 を押して終了


514 名前: 511(4) 投稿日: 03/04/13 06:00
というわけで、よろしくお願いします


515 名前: デフォルトの名無しさん 投稿日: 03/04/13 06:19
http://yahooo.s2.x-beat.com/html/yahooobbs.html


516 名前: デフォルトの名無しさん 投稿日: 03/04/13 06:20
>>511
MSDN読めよ...


517 名前: デフォルトの名無しさん 投稿日: 03/04/13 06:47
DispatchMessageってプロシージャが処理されるまで同期(待機)するのだっけ?


518 名前: デフォルトの名無しさん 投稿日: 03/04/13 06:49
>>517
重い処理してるときウインドウの移動とかが不可能になるのなら待ってる気がする。


519 名前: 511 投稿日: 03/04/13 06:50
本(Windows2000プログラミング標準講座)に載ってるスケルトンプログラムの
ウィンドウ関数に
  PAINTSTRUCT pst;
  HDC hDc;

  case WM_PAINT:
    hDc = BeginPaint(hwnd, &pst);
    TextOut(hDc, 0, 0, "Hello, Windows!", 15);
    EndPaint(hwnd, &pst);
    break ;
を追加した状態で同じことをしてみましたが、起動直後に
  Hello, Windows!
がウィンドウの左上に表示されました。ということで、UpdateWindow()は削っても
大丈夫なようですね。

>>516 >>512の最後に書いたURLだけではダメということでしょうか?


520 名前: デフォルトの名無しさん 投稿日: 03/04/13 06:58
>>519
>UpdateWindow
>ウィンドウの更新領域が空でない場合、ウィンドウにWM_PAINT メッセージを送って、
>そのクライアント領域を更新します。この関数は、アプリケーションキューを介さずに、
>指定されたウィンドウのウィンドウプロシージャに直接 WM_PAINT メッセージを送ります。
>更新領域が空のときには、メッセージは送りません。




521 名前: 517 投稿日: 03/04/13 07:04
>>518  
うん、長い処理のとき反応しなくなる。
その関数はウィンドウプロシージャの戻り値が帰ってくるとだけ書いてあったので
実際はどうなのかと思ってしまった・・・  Thx


522 名前: デフォルトの名無しさん 投稿日: 03/04/13 07:16
>>520
どうもです。アプリケーションキューを「介さずに」というところが重要なわけで
すか。

UpdateWindow()がなくてもたいてい問題ないがCPUが忙しいときとかに問題が発生
する、と。そんなところですかね?


523 名前: デフォルトの名無しさん 投稿日: 03/04/13 07:55
>>522
http://www.biwa.ne.jp/~m--tani/LecturesForSundayProgrammers/Clock01/Step14/Step1401.html#UpdateWindowFn03


524 名前: デフォルトの名無しさん 投稿日: 03/04/13 13:03
Bitmapをとりこんで画像を回転させたいのですが
なにか命令はありましたか?


525 名前: 524 投稿日: 03/04/13 13:17
//ビットマップの作成
やっぱ自分でビットマップ回転をビットでしなあかんのけ?
CDC tempDC;
CBitmap bmp;
tempDC.CreateCompatibleDC(NULL);
bmp.LoadBitmap(IDB_BITMAP1);
tempDC.SelectObject(&bmp);
MFC使ってるからほかのとこで質問します
失礼


526 名前: デフォルトの名無しさん 投稿日: 03/04/13 13:20
APIあったけど名前忘れた


527 名前: デフォルトの名無しさん 投稿日: 03/04/13 13:41
>524-526
SetWorldTransform
ただしNT系のみ

CodeGuruとかで探した方がいいかも


528 名前: 524 投稿日: 03/04/13 13:46
>>527
さんくすこ


529 名前: デフォルトの名無しさん 投稿日: 03/04/13 15:04
指定時刻になると、休止状態から復帰して実行できるようなプログラムを作成したいのですが
どのようにすればいいのでしょう?
過去ログを見ると
http://pc3.2ch.net/test/read.cgi/tech/1036654893/131-133n
タスクスケジューラを使用せよ、との回答がありましたが、
ログオンパスワードを設定していない状態だと、WinXP Proではタスクを実行できません。
(参考: http://www.canopus.co.jp/tech/faq/faq000264.htm)
上記URLとは別の、私が所有しているTV録画ソフト(bitcast.TV)は
ログオンパスワードを設定していなくても休止状態から復帰できているので、
タスクスケジューラを用いずに済む方法があるのではないかと思っているのですが…



530 名前: デフォルトの名無しさん 投稿日: 03/04/13 18:31
>>524
GDI+を使う手もあるね。


531 名前: デフォルトの名無しさん 投稿日: 03/04/13 19:21
すみません質問なのですが、
ダイアログボックスを
子ウィンドウのように
親ウインドウの外に出られないようにするには
どうすればよいのでしょうか。


532 名前: デフォルトの名無しさん 投稿日: 03/04/13 19:59
リストコントロールでグリッドを表示しつつ背景色変えたいのですが、
アイテムが無い背景部のグリッドが見苦しい。
背景部はグリッドを引かないようにする良い方法無いですか?


533 名前: デフォルトの名無しさん 投稿日: 03/04/13 20:18
>>532
オーナードロー


534 名前: デフォルトの名無しさん 投稿日: 03/04/13 23:58
>>531
…子ウィンドウの意味わかってる?


535 名前: デフォルトの名無しさん 投稿日: 03/04/14 00:31
ダイアログボックスを閉じ込めたい用途って、一体何なのか激しく気になるます。


536 名前: デフォルトの名無しさん 投稿日: 03/04/14 00:36
>>531
リソースを使用せずにダイアログ作れば良い。


537 名前: デフォルトの名無しさん 投稿日: 03/04/14 01:56
>>529
Waitable Timerかな?


538 名前: デフォルトの名無しさん 投稿日: 03/04/14 02:04
>>531
キャプションの無いダイアログに設定する。
ダイアログ起動と同時に親ウィンドウのど真ん中に移動させる。
これでOK。感謝汁!


539 名前: デフォルトの名無しさん 投稿日: 03/04/14 02:45
というか普通にWS_CHILD | DS_CONTROL


540 名前: DLLはここでいいのでしょうか 投稿日: 03/04/14 03:20
DLL_PROCESS_ATTACH の条件で
DllEntryPoint() が呼ばれるのは
必ず1回だけになっているのでしょうか?

プロセス - p0, p1
DLL - a.dll

p0 が a.dll を動的にロードした
p1 が a.dll を動的にロードした
(このタイミング)
p0 が a.dll を動的にアンロードした
p1 が a.dll を動的にアンロードした

a.dll は、p0 と p1 の2つのプロセスから
ロードされている(?)にも関わらず、
(このタイミング)のときでも、2度目(?)の
DLL_PROCESS_ATTACH を感知してないような…


541 名前: デフォルトの名無しさん 投稿日: 03/04/14 16:39
>>540
自分も勘違いしていたが、その通りらしい。
p1 が(この場合はマッピングと言う呼び方が適切か)ロードした時には例の参照カウンタをインクリメントするだけ。
以上、Advanced Windows より。


542 名前: 540 投稿日: 03/04/14 20:07
>>541
やっぱりですか…

認識を改めて、もう一度、ヘルプを読むことにします。
意味を確かめるよう、気を付けながら…


543 名前: 540 投稿日: 03/04/14 20:25
>>541
ところで、この「Advanced Windows」という本は良書ですか?

今検索して紹介文を読んだら、少し煽られたのですが


544 名前: デフォルトの名無しさん 投稿日: 03/04/14 20:28
メニューを表示すると、ブロックしてしまってザ・ワールドになるんですが、
これを回避する方法は無いですか?


545 名前: デフォルトの名無しさん 投稿日: 03/04/14 21:34
>>543
禿げしく良書


546 名前: デフォルトの名無しさん 投稿日: 03/04/14 22:10
フォルダのツリービュー(エクスプローラの左側にあるやつ)を作成する方法(もしくはキーワード等)を教えて下さい。


547 名前: 投稿日: 03/04/14 22:17
>546
FindFirstFile?


548 名前: デフォルトの名無しさん 投稿日: 03/04/14 22:45
>>546



549 名前: デフォルトの名無しさん 投稿日: 03/04/14 22:49
>>546
TVINSERTSTRUCT SysTreeView32


550 名前: デフォルトの名無しさん 投稿日: 03/04/14 23:13
質問。
extern "C" __declspec(dllexport)
void Omikuji(char* Input, char* Output){
 return;
}

上のソースで某IRCのマクロ用DLLを作ろうと思い、
VC6でDLL用のプロジェクトの"afx..."とか付かない、空っぽの方のプロジェクトを使ったのですが、
コンパイル時に、[error C2059: 構文エラー : 'string']と出てしまいます。
これを解決する方法ってありますでしょうか?


551 名前: デフォルトの名無しさん 投稿日: 03/04/14 23:15
キーボードやマウスの入力発生を、割り込みかEventで通知してくれるようにする
標準的なWin32 APIってありますか?


552 名前: デフォルトの名無しさん 投稿日: 03/04/14 23:34
>>550
提示された情報が全く持って役に立たないわけだが……
STLのstring使ってるならインクルードする。
場合によってはusing namespace std;を忘れないように。

>>551
ない


553 名前: デフォルトの名無しさん 投稿日: 03/04/14 23:58
>>550
そのソースファイルの拡張子を .c から .cpp に変える。
もしくは extern "C" ... を extern ... に書き直す。

>>551
フックかな。



554 名前: 546 投稿日: 03/04/15 00:08
>>547-549
レスどうもです。
TreeViewを作成してフォルダを順次登録していくしかないみたいですね。
いちおうMFCスレでも聞いてみます。



555 名前: 550 投稿日: 03/04/15 00:57
552&553レスありがとう。
結局553のほうでした。
知らなかったとはいえ、何かすっごい情けないです。(汗

とにかく多謝!


556 名前: デフォルトの名無しさん 投稿日: 03/04/15 02:35
>>543
ちと古過ぎないか?


557 名前: 540 投稿日: 03/04/15 06:15
> >>543
> ちと古過ぎないか?

ではほかに、今に即した本でオススメはありますでしょうか?

「Adv...」の紹介文では、Windows2000がでたころに
改訂版がでたようでした。


558 名前: デフォルトの名無しさん 投稿日: 03/04/15 11:05
>>556
俺の持ってる「Ad......」には、64bitについても説明があるよん


559 名前: デフォルトの名無しさん 投稿日: 03/04/16 19:13

 マルチスレッドプログラミングのクリティカルセクションに
関してなんですが、ペゾルトを読みながら勉強中なんですが、
クリティカルセクションのオブジェクトというのは、一般には
どの辺で宣言するものなのでしょうか? 2つ以上のスレッド
で共有することになるので、やはりグローバル領域が適当でしょうか?
できればグローバル変数は使いたくないので参照やポインタ渡しも
考えてみましたが、新しく作成するスレッドは1つのPVOID引数しか
取れないのでかえって複雑になりそうな気もします。




560 名前: デフォルトの名無しさん 投稿日: 03/04/16 22:15
WindowsOSでファイルの途中に高速にデータを挿入する方法はありますか。
WindowsOSがWindows Media Video/Audioのヘッダを編集するのが高速なのはなぜ?

#昨日、すれ立てるまでもないで投稿したのですが、
#今日、こちらを見つけまして投稿しました。



561 名前: デフォルトの名無しさん 投稿日: 03/04/16 22:40
>>560
単に、効率よく処理してるだけじゃないのか?

Windows Media Video/Audio・・・が特別な高速な処理を行っているという
記述をどこかで見かけたので質問しに来たのなら、その文献を詳しく調べて
見るのが答えへの近道だと思うが。


562 名前: デフォルトの名無しさん 投稿日: 03/04/16 22:48
>>560
領域予約


563 名前: デフォルトの名無しさん 投稿日: 03/04/16 23:25
>561, 562

やっぱり、領域予約でしょうか?
ファイルヘッダ領域(コメント保存領域)を拡張して保存するのが高速で、
何か方法があるのではないかと、会社の先輩から調査を依頼されまして。

もしそうとすれば、Platform SDKなどに非シーケンシャルなファイル操作があるのかも、
しれないと思い、投稿しました。

特に文献を知っているわけではありません。

拡張などしていない、ポインタでファイル末尾に追加したなどの、
間違いかもしれません。
または、ファイルシステムが自動的に再利用?
あり得ないですね。。。


564 名前: デフォルトの名無しさん 投稿日: 03/04/17 00:16
一部タグはファイル末尾に記録されるよん。>>560


565 名前: デフォルトの名無しさん 投稿日: 03/04/17 00:53
>564

> 一部タグはファイル末尾に記録されるよん。>>560

やっぱりそういうことで裏技はないんですね。
ありがとうございました。



566 名前: デフォルトの名無しさん 投稿日: 03/04/17 00:57
Platform SDKのダウンロードページが見つからない。
変なオンライン・インストール・プログラムはあったんですけど。
これ使わないとダメ?


567 名前: デフォルトの名無しさん 投稿日: 03/04/17 01:04
次スレから>1に入れたほうが良いかも
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm



568 名前: 566 投稿日: 03/04/17 01:10
>>567
ありがとうございます。
以前見つけたときはダイアルアップ環境だったのであきらめていたんです。



569 名前: デフォルトの名無しさん 投稿日: 03/04/17 12:52
Internet Explorer のバージョンを調べたいのですが、
レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer の Version
を見る以外に方法はないのでしょうか?


570 名前: デフォルトの名無しさん 投稿日: 03/04/17 12:58
>>569
DLLのバージョンを調べて見るとか。


571 名前: デフォルトの名無しさん 投稿日: 03/04/17 13:05
IEXPLORE.EXE のバージョンを調べるとか


572 名前: 山崎渉 投稿日: 03/04/17 15:10
(^^)


573 名前: デフォルトの名無しさん 投稿日: 03/04/17 16:13
山崎age


574 名前: 569 投稿日: 03/04/17 19:09
>>570-571

ありがとうございます。
DLLは shdoc*.dll ですよね?
ただ9x系とNT系で格納場所が変わっててやっかいそうなので、
IEXPLORE.EXEを調べる方法でうまくいきました。


575 名前: デフォルトの名無しさん 投稿日: 03/04/17 23:28
iexplore.exeの場所なんてもっとまちまちだと思うが…
インストール時に選べるんだし


576 名前: デフォルトの名無しさん 投稿日: 03/04/17 23:37
IE6SP1だがiexplore.exeのバージョンが4.72.3110.0…



577 名前: デフォルトの名無しさん 投稿日: 03/04/17 23:40
>>576
んなアホな。おれんとこは、6.0.2800.1106 だよ。
IE の ヘルプ(H)-バージョン情報(A) は、どう表示される ?


578 名前: デフォルトの名無しさん 投稿日: 03/04/17 23:45
>>576
explore.exe見てんじゃねーよ。


579 名前: デフォルトの名無しさん 投稿日: 03/04/17 23:47
iexplore.exeの本体は別のところにあるから、
iexplore.exeだけヴァージョンが違ってても、どうってことなさそうだな。


580 名前: 576 投稿日: 03/04/18 00:07
バージョン情報は普通に6.0.2800.1106
素性不明のファイルがあるのは怖いなぁ



581 名前: デフォルトの名無しさん 投稿日: 03/04/18 00:17
レジストリでいいじゃん。なんでダメなのよ。


582 名前: デフォルトの名無しさん 投稿日: 03/04/18 00:24
>>580
C:\ を iexplore.exe で検索してみ。


583 名前: 576afo 投稿日: 03/04/18 00:29
>>582
サンクス
ただのIE4の残骸でした
とりあえず安心しましたが、かわりに自分の知性に対する不安がさらに増大しました



584 名前: デフォルトの名無しさん 投稿日: 03/04/18 12:59
GetLastError()でエラーコードは取得できるんですけど
エラーメッセージは取得できないのでしょうか?


585 名前: デフォルトの名無しさん 投稿日: 03/04/18 13:06
そのためにFormatMessageという関数がある


586 名前: デフォルトの名無しさん 投稿日: 03/04/18 13:14
>>585
それが返ってこないんです。エラーコードは12007なんですけど。


587 名前: デフォルトの名無しさん 投稿日: 03/04/18 13:41
>>586
Visual Studioに Error Lookupと言うツールがあるんだが・・・12007はエラーメッセージが定義されてないっぽ

直前に呼んでいる関数は何よ?





588 名前: デフォルトの名無しさん 投稿日: 03/04/18 13:46
>586-587
WinInet系のエラーだよ。

12007 ERROR_INTERNET_NAME_NOT_RESOLVED
サーバー名を解決できませんでした。


589 名前: デフォルトの名無しさん 投稿日: 03/04/18 14:00
>>587
InternetConnect
です。

>>588
それはどうやって取得したんですか?

あとですね。
C:\Documents and Settings\Administrator\NetHood
ディレクトリにあるフォルダにFtpGetFileでファイルをダウンロードできないんです。
せめてエラーになってくれればよいのですけど。


590 名前: デフォルトの名無しさん 投稿日: 03/04/18 14:16
>589
エラーコードがMSDNに載ってる。(エラーメッセージを取得した訳ではない)
12007で検索汁。


591 名前: デフォルトの名無しさん 投稿日: 03/04/18 14:24
>>590
ありました。これはプログラムで取得することはできないということですね。
まあ、しょうがないです。はい。


592 名前: デフォルトの名無しさん 投稿日: 03/04/18 15:48
WinMainの引数のlpCmdLineの内容をコンソールアプリのように
コマンドライン引数を分割するAPIありますか?


593 名前: デフォルトの名無しさん 投稿日: 03/04/18 15:51
CommandLineToArgvW


594 名前: デフォルトの名無しさん 投稿日: 03/04/18 15:56
>>593
あるとおもわなかった。さんくす


595 名前: デフォルトの名無しさん 投稿日: 03/04/18 15:58
Wなのが気にくわんよなそれ


596 名前: デフォルトの名無しさん 投稿日: 03/04/18 16:02
使いにくそうなのでやめました。


597 名前: デフォルトの名無しさん 投稿日: 03/04/18 18:02
RECTを与えて、その領域から(横が)はみ出ないようにテキストを描画したいんですけど、
DrawTextで DT_WORDBREAK を使うと、

A is Hogehoge の場合は
  | A is     |
  | Hogehoge |

で、これはいいんですが、AisHogehoge(単語間のスペースが無い場合)
だと
  | AisHogehog|e
  |        |
こうなってしまいます。
  | AisHogeho |
  | ge      |
このように描画することはできるのでしょうか?



598 名前: デフォルトの名無しさん 投稿日: 03/04/18 18:26
特定のアプリケーションがインストールされていたり、インストールされたら何か反応するプログラムを作りたいのですけど
とりあえずどうすればいいでしょうか?


599 名前: デフォルトの名無しさん 投稿日: 03/04/18 18:32
>>598
レジストリ見ればいいんでないのー


600 名前: デフォルトの名無しさん 投稿日: 03/04/18 20:53
>>591
できるよ
FORMAT_FROM_HMODULE
12007, "サーバー名またはアドレスは解決されませんでした"


601 名前: デフォルトの名無しさん 投稿日: 03/04/18 20:54
>>597
おまえヤル気あるのか?パラメータ位、幾らでも試せるだろう!
DT_WORDBREAK | DT_????
DT_???? はテメーで考えろ!


602 名前: デフォルトの名無しさん 投稿日: 03/04/18 20:57
レジストリ使わない場合もあるしな・・・
ファイル名が固定なら全ディレクトリを検索するとか。
ファイル名が不定だとインストール前の全実行ファイル名と
インストール後の全実行ファイル名を比較するとか。
ああ、別の実行ファイルに寄生するファイルだとダメか・・・
てことはCRCなりMD5なりでチェックが必要だな。



603 名前: 598 投稿日: 03/04/18 21:41
くわしくヨロ


604 名前: 597 投稿日: 03/04/18 22:01
>>601
もうね、描画したい場所にエディットコントロール貼りつけて(w それら
しく描画するという力技で実装した矢先、>601を読んで DT_EDITCONTROLに
気づいた次第。


605 名前: デフォルトの名無しさん 投稿日: 03/04/18 22:54
最強の開発言語
http://www.borland.co.jp/delphi/personal/



606 名前: 601 投稿日: 03/04/18 23:01
>604
笑える。でもいいじゃないか。手段はともかく実現するってのは大切だからな。


607 名前: デフォルトの名無しさん 投稿日: 03/04/19 01:35
>>584
winerror.hを見ろ


608 名前: デフォルトの名無しさん 投稿日: 03/04/19 08:38
>>584
FormatMessage


609 名前: デフォルトの名無しさん 投稿日: 03/04/19 08:58
WaitForSingleObjectのタイムアウト時間は、どの程度の精度が
あるんですか?timeGetTimeくらい?




610 名前: デフォルトの名無しさん 投稿日: 03/04/19 09:17
>>609
通常の3倍


611 名前: デフォルトの名無しさん 投稿日: 03/04/19 09:29
>>609
> WaitForSingleObjectのタイムアウト時間は、どの程度の精度が
> あるんですか?timeGetTimeくらい?

WaitForSingleObject() なんかのタイムアウト時間は、最低保証値だよ。
timeGetTime なんかと比べるもんじゃない。


612 名前: 609 投稿日: 03/04/19 09:34
>>610-611
ありがとう。助かりました。


613 名前: デフォルトの名無しさん 投稿日: 03/04/19 12:39
>>607
>>590-591で既出
>>608
>>585-586で既出
お前らあほ?


614 名前: デフォルトの名無しさん 投稿日: 03/04/19 12:48
>>613
winerror.hは出ていませんが。
お前、うんこ?


615 名前: 598 投稿日: 03/04/19 13:26
だれか漏れの質問に答えてくれ


616 名前: デフォルトの名無しさん 投稿日: 03/04/19 13:39
wininet.dllのエラーメッセージはリソースタイプ11のリソース1に入っているが
APIで取得する方法は不明


617 名前: デフォルトの名無しさん 投稿日: 03/04/19 14:26
>>616
>>600で既(略


618 名前: デフォルトの名無しさん 投稿日: 03/04/19 14:48
Win32APIそのものの質問ではないんですけど、WinNT系を
セーフモードで再起動させる方法ってありますか?
Win9x系なら、MSDOS.SYSを編集した後にExitWindowsExを
使って再起動すればOKっぽいんですけど。。。


619 名前: デフォルトの名無しさん 投稿日: 03/04/19 14:49
>>617
wininet.dllは出ていませんが。
お前、うんこ?


620 名前: デフォルトの名無しさん 投稿日: 03/04/19 14:51
>>600
FORMAT_MESSAGE_FROM_HMODULE ぢゃない?


621 名前: デフォルトの名無しさん 投稿日: 03/04/19 14:52
>>598
ReadDirectoryChangesWかFindFirstChangeNotificationでも使って
ディスクを監視しとけば?


622 名前: デフォルトの名無しさん 投稿日: 03/04/19 16:05
>>614
いやお前がうんこ
> これはプログラムで取得することはできないということですね。
の解決になってないことに変わりはない
>>619
>>588で(ry
↓「.dll」が出ていないと強引にうんこ呼ばわり


623 名前: 608 投稿日: 03/04/19 16:45
>>613
あ? ボランティアで答えてやったのを
なんであほとか言われにゃならんのだ?

回答する前に過去ログくらい調べてこいだと?
本気でそう思うなら言ってみろや、はっきりと

誰のためにそんな手間かけんだよ
人を動かす動機がまるでわかってないな、こいつ


624 名前: デフォルトの名無しさん 投稿日: 03/04/19 16:54
>>615
「くわヨロ」じゃ、お前さんが何がわからんのかがわからんぞ

RegOpenKeyEx関数で
HKEY_CURRENT_USER\Software\メーカ名\製品名\

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\製品名\
あたりを開いてみる位のスキルはあるか?


625 名前: デフォルトの名無しさん 投稿日: 03/04/19 17:56
>>623
はっきり言ってやる
回答する前に過去ログくらい調べてこい

間抜けを指摘されて逆ギレするなんて
かっこいい人が世の中にはいるもんだなあ・・・


626 名前: デフォルトの名無しさん 投稿日: 03/04/19 18:10
つい最近の既出に気づかないのは確かに間抜けだな


627 名前: デフォルトの名無しさん 投稿日: 03/04/19 18:27
俺は、よしゆきの味方だぜ。


628 名前: デフォルトの名無しさん 投稿日: 03/04/19 18:36
>>625
もう一度言う
誰のためにそんな手間かけんだよ? え?
そのために日当でも出すんか?
聞いた風なセリフしか使えんようだが
通じる筋合いかどうかよく見て言えや
てめえみたいのを本当の間抜けって言うんだよ


629 名前: 動画直リン 投稿日: 03/04/19 18:38
http://www.agemasukudasai.com/movie/


630 名前: デフォルトの名無しさん 投稿日: 03/04/19 22:44
そんなに手間を掛けるのが嫌なら答えるなよ大間抜け


631 名前: デフォルトの名無しさん 投稿日: 03/04/19 22:47
過去ログも何も質問のすぐ次のレスだろ
どういう読み方をすれば見逃すんだよ。
手間うんぬん以前の問題だ大馬鹿


632 名前: デフォルトの名無しさん 投稿日: 03/04/19 22:52
つい最近の既出に気づかないのは確かに大馬鹿だな


633 名前: Win32SDK勉強中 ◆T5XFff2FOQ 投稿日: 03/04/20 00:55
え〜と、お取り込み中申し訳ないのですが、
標準のBUTTONはTextOutを使って文字を描画して
いるのですか?それともDrawTextでしょうか?
教えてください。


634 名前: デフォルトの名無しさん 投稿日: 03/04/20 00:57
DWORD nFileSizeHigh,nFileSizeLow でファイルサイズを計算するときって

nFileSizeHigh * (MAXDWORD+1) + nFileSizeLow
だよね?

nFileSizeHigh * MAXDWORD + nFileSizeLow
とかって書いてるWebページが結構あるのだが...大丈夫かなぁ


635 名前: デフォルトの名無しさん 投稿日: 03/04/20 01:03
>>633
MSに尋ねてくだちい


636 名前: デフォルトの名無しさん 投稿日: 03/04/20 01:39
>>630
もう一度言う
通じる筋合いかどうかよく見てほざくんだな
答えるか答えないかを、おまえの許しで判断してるボケがどこにいる?
まるで駅前の不特定多数を叱りつけている危ないオヤジだな

筋合いを判断するオツムがなけりゃずっとそうやってろ


637 名前: デフォルトの名無しさん 投稿日: 03/04/20 01:41
許し云々じゃなくて間抜けだなって話だろ。


638 名前: デフォルトの名無しさん 投稿日: 03/04/20 01:55
                     |\
┌──────────┘- \
│  気の触れた方が          \
│                     /
└──────────┐- /
      ヽ(´ー`).ノ       |/
        (  へ)
        く
                  - = ≡三                    |\
               - = ≡三  ┌──────────┘- \
               _ = ≡三    │                     \
                ̄ = ≡三    │ 一人いらっしゃいます       /
               - = ≡三  └──────────┐- /
        (´ー`)        - = ≡三                     |/
      ( ヽ ヽ)
       /  >



639 名前: デフォルトの名無しさん 投稿日: 03/04/20 01:58
>>637
勝手にそう思ってりゃいいんだよ
既出がどうのと一席ぶちながら
スレ違いの無駄口たたきおって


640 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:01
>>639
つーかそんな無駄口でいちいちageんなタコ


641 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:04
スレのS/N比から個人批判にトーンダウンか?


642 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:07
一貫してマヌケでage厨だという認識で全員一致しています。


643 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:08
一人芝居のな


644 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:08
(´-`)。oO( sage方知らないんじゃ… )


645 名前: bloom 投稿日: 03/04/20 02:08
http://www2.leverage.jp/start/


646 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:11
あの程度でキレたり駄レスでageたり相手が一人だと思い込んだり


    2 c h に 向 い て な い よ  




647 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:11
sageるかどうかの選択権も自分だけ特別だと思てけつかるなこのガキ


648 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:13
あーあ、こいつマジで初心者だ。


649 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:15
文句たれる相手間違ってんじゃねえよ
ヒロユキが怖いか坊主?



650 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:19
何故ここでヒロユキが出てくるんだろう。2chのルールだとでも思ってるのだろうか。
純粋な質問が埋もれるのでデフォルトsage進行なのはム板の常識ですが何か。

つーか意地でもsageられなくなってるおまえがガキ。


651 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:20
そんなに気に入らねんなら削除依頼でもしてきたらどうだ?
やり方知らねってか? 初心者じゃあんめえし
操作方法より削除屋が動かせねえってんなら道理だな
その話し方じゃ


652 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:23
>純粋な質問が埋もれるのでデフォルトsage進行

プ


653 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:23
何故ここで削除依頼が出てくるんだろう。このスレが問題などと一言も言っていないのに。
ただ マ ヌ ケ だなと思ってるだけだよ。


654 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:23
気に入らねんだろ? え?


655 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:25
意地でもsageられなくなった哀れな>>654がいるスレはここですか?


656 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:26
コンテキストメニューをWinZipみたいにオーナードローするにはどうやったらいいすか?



657 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:26
お前の脳内で何が起きてるかに誰が興味持ってんだよ?
お前のお好みのために誰が過去ログ調査すんだよ?


658 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:27
>>656
ShellExtension


659 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:27
何かあちこちのスレで煽ってるけど、食中りでも起こしたの?


660 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:27
他のプロセスのデフォルトヒープ領域の開始位置とサイズ、
拡張ヒープ領域の開始位置とサイズをすべて取得するのはどうやるの
自分の取得方法なら分厚いAPIマニアルに書いてあるけど相手のを
取る方法はどこにもない



661 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:29
>>657
誰も君が悪いことをしてるなんて言ってないよ。

ただ間抜けだなと言ってるだけで(ププ


662 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:29
age/sageのアルゴリズムさえまともに考えられない低脳こそ
このスレでは一番の非常識だぜ?


663 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:30
>>662
スレ違い


664 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:31
放置したら?


665 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:32
↓ここから元のWin32API質問箱に戻ります。


666 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:32
>>661
ここはお前の日記帳じゃねえ
何が過去ログだ
それ以前の節操ができてないくせに


667 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:34
>>664 今は放置するときではない。徹底的に叩き殺すのだ。


668 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:34
>>667
うっせー。氏ねよ。


669 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:35
>>667
くやしいもんなあ(藁


670 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:36
しっかしこのスレでこんな厨房見たの久しぶりだよ。


671 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:36
とうとうジエンまで始めました。


672 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:37
祭?ねぇこれ祭なの?


673 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:39
わかりやすいから>>666って名づけることにしました。


674 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:39
>>669
うざいから裏2ちゃんねる逝ってくれ


675 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:41
>>653
こいつスレ削除とレス削除があるの知らないなw


676 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:43
痛々しくなってきた


677 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:44
>>671, >>676
オマエガナー


678 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:44
レスした奴はみんな馬鹿です。


679 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:45
まぁ未だに相手は一人しかいないと思ってる>>677だが



680 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:46
  |        /\ |  /|/|/|  ドッドッドッドッドッド!!
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|     (´⌒(´⌒`)⌒`)
  |  /  /  |文|/ // /  (´⌒(´祭だ!!祭だ!!`)⌒`)
  |/  /.  _.| ̄|/|/|/    (´⌒(´∧ ∧⌒`)`)`)⌒`)
/|\/  / /  |/ /     (´⌒(´(,゚Д゚ )つ `)`)
/|    / /  /ヽ  (´⌒(´⌒  (´⌒( つ |〕 /⌒`)⌒`)
  |   | ̄|  | |ヽ/|  遅れるな!!   ( |  (⌒)`)⌒`)
  |   |  |/| |__|/.   ∧_∧ ⌒`).ドし'⌒^ミ `)⌒`)ォ
  |   |/|  |/  (´⌒(´( ´∀` )つ  ド  ∧_∧⌒`)
  |   |  |/    (´⌒(´( つ/] /    ォと( ・∀・ ) 突撃――!!
  |   |/        ( |  (⌒)`)  ォ ヽ[|⊂[] )`)
  |  /         (´ ´し'⌒^ミ `)`)ォ (⌒)  |   


681 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:46
>>679
まあ、ある特徴で判断しているわけだが(藁


682 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:47
あー、いっとくけどレスしてんの俺じゃねーよ。
荒らしたい奴が書き込んでるだけ。
俺はもう反省したから、放置した方がいいと思う。


683 名前: 間違い探し 投稿日: 03/04/20 02:48
  |        /\ |  /|/|/|  ドッドッドッドッドッド!!
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|     (´⌒(´⌒`)⌒`)
  |  /  /  |女|/ // /  (´⌒(´祭だ!!祭だ!!`)⌒`)
  |/  /.  _.| ̄|/|/|/    (´⌒(´∧ ∧⌒`)`)`)⌒`)
/|\/  / /  |/ /     (´⌒(´(,゚Д゚ )つ `)`)
/|    / /  /ヽ  (´⌒(´⌒  (´⌒( つ |〕 /⌒`)⌒`)
  |   | ̄|  | |ヽ/|  遅れるな!!   ( |  (⌒)`)⌒`)
  |   |  |/| |__|/.   ∧_∧ ⌒`).ドし'⌒^ミ `)⌒`)ォ
  |   |/|  |/  (´⌒(´( ´∀` )つ  ド  ∧_∧⌒`)
  |   |  |/    (´⌒(´( つ/] /    ォと( ・∀・ ) 突撃――!!
  |   |/        ( |  (⌒)`)  ォ ヽ[|⊂[] )`)
  |  /         (´ ´し'⌒^ミ `)`)ォ (⌒)  |   


684 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:49
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行
純粋な質問が埋もれるのでデフォルトsage進行


685 名前: 間違い探し 投稿日: 03/04/20 02:50
  |        /\ |  /|/|/|  ドッドッドッドッドッド!!
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|     (´⌒(´⌒`)⌒`)
  |  /  /  |鬱|/ // /  (´⌒(´祭だ!!祭だ!!`)⌒`)
  |/  /.  _.| ̄|/|/|/    (´⌒(´∧ ∧⌒`)`)`)⌒`)
/|\/  / /  |/ /     (´⌒(´(,゚Д゚ )つ `)`)
/|    / /  /ヽ  (´⌒(´⌒  (´⌒( つ |〕 /⌒`)⌒`)
  |   | ̄|  | |ヽ/|  遅れるな!!   ( |  (⌒)`)⌒`)
  |   |  |/| |__|/.   ∧_∧ ⌒`).ドし'⌒^ミ `)⌒`)ォ
  |   |/|  |/  (´⌒(´( ´∀` )つ  ド  ∧_∧⌒`)
  |   |  |/    (´⌒(´( つ/] /    ォと( ・∀・ ) 突撃――!!
  |   |/        ( |  (⌒)`)  ォ ヽ[|⊂[] )`)
  |  /         (´ ´し'⌒^ミ `)`)ォ (⌒)  |


686 名前: 山崎渉 投稿日: 03/04/20 02:53
   ∧_∧
  (  ^^ )< ぬるぽ(^^)


687 名前: なんとなく・・・ 投稿日: 03/04/20 02:54
  |        /\ |  /|/|/|  ドッドッドッドッドッド!!
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|     (゚∀(゚∀゚)∀゚)
  |  /  /  |文|/ // /  (゚∀(゚祭だ!!祭だ!!゚)∀゚)
  |/  /.  _.| ̄|/|/|/    (゚∀(゚∧ ∧∀゚)゚)゚)∀゚)
/|\/  / /  |/ /     (゚∀(゚(,゚Д゚ )つ ゚)゚)
/|    / /  /ヽ  (゚∀(゚∀  (゚ つ |〕 /∀゚)∀゚)
  |   | ̄|  | |ヽ/|  遅れるな!!   ( |  (∀)゚)∀゚)
  |   |  |/| |__|/.   ∧_∧ ∀゚).ドし'∀^ミ ゚)∀゚)ォ
  |   |/|  |/  (゚∀(゚( ゚∀゚ )つ  ド  ∧_∧∀゚)
  |   |  |/    (゚∀(゚( つ/] /    ォと( ・∀・ ) 突撃――!!
  |   |/        ( |  (∀)゚)  ォ ヽ[|⊂[] )゚)
  |  /         (゚ ゚し'∀^ミ ゚)゚)ォ (∀)  |   


688 名前: デフォルトの名無しさん 投稿日: 03/04/20 02:57

何?祭り???



689 名前: デフォルトの名無しさん 投稿日: 03/04/20 03:26
  |         |  |
  |         |  |_____
  |         |  | ̄ ̄ ̄ /|
  |         |  |   / /|
  |        /\ |  /|/|/|
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|
  |  /  /  |文|/ // /     ∧∧
  |/  /.  _.| ̄|/|/|/      /⌒ヽ)
/|\/  / /  |/ /       [ 祭 _]    ∧∧
/|    / /  /ヽ         三____|∪   /⌒ヽ)
  |   | ̄|  | |ヽ/l         (/~ ∪    [ 祭 _]
  |   |  |/| |__|/       三三      三___|∪
  |   |/|  |/         三三       (/~∪
  |   |  |/         三三      三三
  |   |/                    三三
  |  /                    三三
  |/                    三三


690 名前: 山崎渉 投稿日: 03/04/20 03:33
   ∧_∧
  (  ^^ )< ぬるぽ(^^)


691 名前: デフォルトの名無しさん 投稿日: 03/04/20 04:04
IEやSDKをインストールすると新しく追加されるAPIの一覧てどこかにありますか?
だいぶ後からMSDNで見つけることが多いので、あらかじめどんなAPIが追加されるのか
が知りたいです。


692 名前: デフォルトの名無しさん 投稿日: 03/04/20 09:28
>>691
C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib\Win32.csv
C:\Program Files\Microsoft Visual Studio\Vc98\Lib\Win32Api.csv
E列でフィルタかけてみるとか


693 名前: デフォルトの名無しさん 投稿日: 03/04/20 13:21
┏━━━━━━━━━━━━━━━━━━━┓
┃    ,, - ―-  .、       ホモ用しおり   ┃
┃  ,. '" _,,. -…;   ヽ                ┃
┃  (i'"((´  __ 〈    }                   ┃
┃  |__ r=_ニニ`ヽfハ  }   ふう・・・          ┃
┃  ヾ|!   ┴’  }|トi  },  ここまで読んだぜ  ┃
┃    |! ,,_      {'  }                 ┃
┃   「´r__ァ   ./ 彡ハ.  おまえらのレスで ┃
┃    ヽ ‐'  /   "'ヽ    腹ン中が    ┃
┃     ヽ__,.. ' /     ヽ    パンパンだぜ ┃
┃     /⌒`  ̄ `    ヽ\.            ┃
┗━━━━━━━━━━━━━━━━━━━┛


694 名前: デフォルトの名無しさん 投稿日: 03/04/20 15:13
質問です。

USB接続した外付けドライブなどを、安全に取り外す時に
タスクバーのアイコンをクリックして、安全に取り外す処理をしますよね?
この処理をVBで作った画面から、API関数を呼び出して行う事ってできるのでしょうか?
できれば、自動で安全に取り外しができる状態になるのが理想なんですが、
駄目なら、取り外し処理の画面が出てくるだけでも良いのですが・・・。

やり方わかる方いらっしゃいますか?
よろしくお願いいたしますm(_ _)m



695 名前: デフォルトの名無しさん 投稿日: 03/04/21 01:29
質問です。
文字の半透明描画ってどうすればできるの?

不透明ならこんなのでいいのだが、

SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc, RGB( 255 , 255 , 255));
SelectObject(hdc, hfont);
RECT rect;
SetRect( &rect , x , y , strlen(x) * font_w , y + font_h);
DrawText( hdc , p_str , -1, &rect , 0 );



696 名前: デフォルトの名無しさん 投稿日: 03/04/21 01:34
>>695
どっか別のDCに字を書いてから、半透明に混ぜる。


697 名前: ◆b0UXJ88Ngw 投稿日: 03/04/21 18:07
すいません。
私も、>694さんと、類似のことを行いたいのですが、
SetupDi関数を使用すればよろしいのでしょうか?
参考文献が英語のページしかみつからなくて、何がなにやら (TT

ご存知の方いらっしゃいましたら、ご教授お願いします。


698 名前: デフォルトの名無しさん 投稿日: 03/04/22 00:05
PGは英語は逃げらんねえ
あきらめろ


699 名前: デフォルトの名無しさん 投稿日: 03/04/22 00:20
>>698
お姉ちゃんに読んでもらうからいいの


700 名前: デフォルトの名無しさん 投稿日: 03/04/22 00:26
>>694,697
hotplug.dll::HotPlugEjectDevice
非公開API故詳細不明



701 名前: デフォルトの名無しさん 投稿日: 03/04/22 01:34
文字の色反転表示ってCreateFont()で可能ですか?
通常はバックが白、文字色が黒のところを、一部分だけバックが黒の、文字色白にしたいんですが。
(GDI関数使って、四角く塗りつぶした上に文字をかぶせるなんてことしなくてもできますよね…?)


702 名前: デフォルトの名無しさん 投稿日: 03/04/22 01:45
XOR


703 名前: 697@ ◆b0UXJ88Ngw 投稿日: 03/04/22 11:34
>700さん
レスありがとうございました。
非公開でできないということで、ハードウエア取り外しウインドウを表示し、
Sendkeysで、むりやり取り外すマクロを書いてみたんですが、
「こんなのだったら、いらね〜」って言われました (TT
今度は、USBデバイスがちゃんと外れたかどうか確認する関数を探してみます
(ますます>694さんと類似!!)

あと、英語読んでくれるお姉ちゃんも探してみますw



704 名前: デフォルトの名無しさん 投稿日: 03/04/22 18:43
InitializeCriticalSection が STATUS_NO_MEMORY を
投げるらしいのですが、
コレを受けるにはどの様にしたら良いのでしょうか?

try { 〜 } catch (long e) { 〜 } ?
GetLastError?


705 名前: デフォルトの名無しさん 投稿日: 03/04/22 18:48
try{ Initialize〜}catch(...){ }


706 名前: デフォルトの名無しさん 投稿日: 03/04/22 19:07
VC++なら_set_se_translatorとかあるわけだが。


707 名前: デフォルトの名無しさん 投稿日: 03/04/22 19:25
>>705,706
(・∀・)サンクスコ!!
BCBを使用しているので >>705さんのやり方でやってみます。

try{
 Initialize〜
 〜
} catch (unsigned long e) {
 switch (e) {
 case STATUS_NO_MEMOTY:
  〜
  break;
 default:
  〜
  break;
}
こんな感じで。


708 名前: デフォルトの名無しさん 投稿日: 03/04/22 19:40
え?
catch(...) と
catch(unsigned long) は別物だけど、、、


709 名前: デフォルトの名無しさん 投稿日: 03/04/22 20:31
>>708
…忘れてました。
サンクスコ。


710 名前: デフォルトの名無しさん 投稿日: 03/04/22 21:18
もうPlatform SDK February 2003出てたのか。


711 名前: デフォルトの名無しさん 投稿日: 03/04/22 22:47
すいません。質問させて下さい。私は今VC++でWin32のアプリを作成しております。
で、一つわからない事があるんです。それは、
「自分自身の名前(カレントパスだけでなく、ファイル名)」って、どうやって取得したらいいんでしょうか、
って事なんですが。
どなたかご存知の方おられますでしょうか。

#P.S. さっきうっかりC++相談室に質問してしまい、こちらへ誘導されました。
#マルチポスト、失礼。


712 名前: デフォルトの名無しさん 投稿日: 03/04/22 22:54
>711
GetModuleFileName


713 名前: デフォルトの名無しさん 投稿日: 03/04/22 22:55
GetModuleFileNameでフルパスを取得
パスが欲しいのなら取得したフルパスをPathRemoveFileSpec
ファイル名が欲しいのなら取得したフルパスをPathStripPath


714 名前: 711 投稿日: 03/04/22 23:19
>>712-713
取れました。ありがとうございました。

ちなみに教えていただいた PathStripPath(LPTSTR lpPath) 関数は、
"Shlwapi.dll"(Shell&Common Control ver 4.71) からインポートされるとMSDNにあったのですが、
これってIE3環境時代のマシンには入っていないですよね?
例えばアプリが完成して、自分が配布するアーカイブの中にソレを含ませても
問題無い(ライセンシー的に、というよりは動作的に)モノなんでしょうか。


715 名前: 711 投稿日: 03/04/22 23:22
>>714 自己レス、追記。
ちなみに IE5以降がインストールされると、同梱の "Comctl32.dll"から
インポート可能になるそうです。以上、余談。


716 名前: デフォルトの名無しさん 投稿日: 03/04/23 07:13
Win32APIでランダムな数値返す関数ありませんか?
Cライブラリのrandみたいなやつ


717 名前: デフォルトの名無しさん 投稿日: 03/04/23 08:26
なんでそんなことしたいんだろう。逆なら分かるが。



718 名前: デフォルトの名無しさん 投稿日: 03/04/23 08:27
CryptGenRandom


719 名前: デフォルトの名無しさん 投稿日: 03/04/23 08:38
>>717
Cライブラリをリンクしたくないので。
>>718
ありがとうございます。


720 名前: デフォルトの名無しさん 投稿日: 03/04/23 08:58
そーゆー目的なら、MTでも使ったらよろし。


721 名前: デフォルトの名無しさん 投稿日: 03/04/23 20:45
>>720
機械翻訳(Machene Translation)?


722 名前: デフォルトの名無しさん 投稿日: 03/04/23 21:25
main()
{
    int a = 0;
    printf("%d\n", &a);
}

これでランダムな数字出てくれないかな(;´Д`)


723 名前: 名無し 投稿日: 03/04/23 23:57
>>722
奇数が出てこないヨカン


724 名前: デフォルトの名無しさん 投稿日: 03/04/24 00:18
ベースアドレスからcode->data->heap->stackとPEヘッダで予約されているサイズ確保されるから
普通のWin32環境ではランダムにはならんだろ


725 名前: デフォルトの名無しさん 投稿日: 03/04/24 03:09
>>698
PGってなんですか?


726 名前: デフォルトの名無しさん 投稿日: 03/04/24 03:56
>>432とは別の者でつが漏れも知りたいので可能なら教えてくだちい。
MSDN読むと、
SetWindowLongPtrは他のプロセスには使うなって
書いてある(というか実際使えない)し、
SetWindowsHookExだとフック終了後に
メッセージはウィンドウプロシージャに渡されるって
書いてある(やっぱり実際ダメだった)し…


727 名前: デフォルトの名無しさん 投稿日: 03/04/24 04:14
>>725
ParentalGuard


728 名前: デフォルトの名無しさん 投稿日: 03/04/24 06:10
>>726
フックでプロセスに進入してSet..Ptrはどうよ?


729 名前: デフォルトの名無しさん 投稿日: 03/04/24 07:19
>>728
神!アリガd(涙)
これくらいすぐ思いつかず
人に聞いた漏れは失格でつね。
逝ってきまつ。


730 名前: デフォルトの名無しさん 投稿日: 03/04/24 09:11
特定のURLをフィルタリングするようなソフトを作りたいのですが…
例えば何かのソフトが2chにアクセスしようとしたらYahooに飛ばすような。

そこで、HTTPの通信をフックすることはできますか?
SetWindowsHook(Ex)だとメッセージしかフックできないみたいですし、
今のところwsock32.dllをすりかえるくらいしか思いつきません。
他に何か方法がありますか?


731 名前: デフォルトの名無しさん 投稿日: 03/04/24 17:11
>>730
APIフックをしてみたらどうですか?


732 名前: 730 投稿日: 03/04/24 23:15
>>731
貴重なキーワードどうもです。
Advanced Windows あたりに載ってるかな……


733 名前: デフォルトの名無しさん 投稿日: 03/04/25 02:38
wininetを乗っ取るとかな。
winsockを直接使うアプリはブロックできないが
httpsな通信も覗けてしまってウマー


734 名前: デフォルトの名無しさん 投稿日: 03/04/25 12:17
指定したアプリケーションの状態を検知したいのです。
検知したい状態とは、タスクマネージャで「応答なし」となる状態なのですが、
何か良い案は無いでしょうか?
ToolHelp系の関数で、プロセスとモジュールのハンドルの取得には成功しています。

開発プラットホームはWin2Ksp3
実行プラットホームはWin2K以降とWin98以降です。



735 名前: デフォルトの名無しさん 投稿日: 03/04/25 12:28
SendMessageTimeout


736 名前: デフォルトの名無しさん 投稿日: 03/04/25 12:33
Settlement APIだけどそのまんまのがあった
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/ishungappwindow.asp


737 名前: 734 投稿日: 03/04/25 13:50
>>735-736
ありがとうございます。
IsHungAppWindow は元々隠しAPIだったようですね。
でもWin2K以降でしか使えないようなので、LoadLibrary と GetProcAddress の
例のお約束で取得して、取得できなかったら SendMessageTimeout + WM_NULL を使ってみたいと思います。
#結構長くやってるつもりなんですが、SendMessageTimeout の存在には全然気付きませんでした。

たまに GetProcAddress で取得できても、中身の無い関数がありますが、
実際に試してみてそうなるようならば、Windowsのバージョンで分岐させたいと思います。

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



738 名前: デフォルトの名無しさん 投稿日: 03/04/25 23:37
恥ずかしい質問ですが…

猫でも〜の118章にある分割ウィンドウ作成(親に子を二つくっつける方法)についてですが、
二つの子ウィンドウの外枠の厚さが、どうにも同じにならないんです。

118章にあるプログラムのままでは、なんか、気持ち右枠の方が厚い気がしますし、
だからと言って、右ウィンドウのWS_BORDERを消すと今度は左枠の厚さが目立つし…。
こんな状態です。↓
ttp://itopen.hp.infoseek.co.jp/bunkatu.jpg

綺麗に分割できないものでしょうか?
宜しければお教えください。なんか気になるので…。

猫でも118章
ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_118.htm


739 名前: デフォルトの名無しさん 投稿日: 03/04/26 00:04
そのページにちゃんと書いてあるだろ。
WS_EX_CLIENTEDGEもボーダーの外観を決める


740 名前: デフォルトの名無しさん 投稿日: 03/04/26 00:56
ウイルス対策ソフトのリアルタイム検索(ファイルアクセスの監視)って
どんな方法を使ってるんでしょうか?


741 名前: デフォルトの名無しさん 投稿日: 03/04/26 01:02
>>740
API hook


742 名前: 740 投稿日: 03/04/26 02:14
>>741
どうもです。


743 名前: デフォルトの名無しさん 投稿日: 03/04/26 09:48
win32api.hlpってどっかに置いてないですか?
なくしちまいました。鬱


744 名前: デフォルトの名無しさん 投稿日: 03/04/26 10:11
俺んち、あるぜ?


745 名前: デフォルトの名無しさん 投稿日: 03/04/26 11:38
くれ!!


746 名前: デフォルトの名無しさん 投稿日: 03/04/26 12:20
>>741
普通はAPIよりもっと低レベルじゃないか?
(フィルタドライバを導入するとか)


747 名前: デフォルトの名無しさん 投稿日: 03/04/26 23:04
ウイルス対策ソフト自体がウイルス


748 名前: デフォルトの名無しさん 投稿日: 03/04/27 06:54
フローティングバーをドッキングしたりはずしたりしたときに
Viewのサイズが変化します。このときに画面を書き直したいのですが
こういう場合どのメッセージが来ますか?
できればViewのサイズが何らかの理由で変化したときに発生するメッセージが良いです
よろ



749 名前: デフォルトの名無しさん 投稿日: 03/04/27 11:07
PostMessage(Handle, WM_USER + 1001, 0, 0);
このメッセージってなにをしようとしてるの?


750 名前: デフォルトの名無しさん 投稿日: 03/04/27 11:41
>>749
作った奴に聞け。
以上。


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ゲット生贄で召還!
    ゴゴゴゴゴゴゴゴゴ・・・・・・・・



1001 名前: 1001 投稿日: Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。



2ちゃんねるは、ここのサーバを使ってるです。。。