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


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

Win32API 質問箱 Build10
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
みたいに定義すれば警告メッセージがでると思う
そのメッセージ項目をクリックすればその定義されてるファイルが開かれる



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