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


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

Win32API質問箱 Build27
251 名前:デフォルトの名無しさん :05/01/26 20:07:18
文句言えるのは、XPUSERだけだな

252 名前:デフォルトの名無しさん :05/01/27 00:02:03
多くの国内企業は契約時の守秘義務で縛られ、公開情報をそのまま流せない。個人の技術所有権を認めない。ソースさらすヤツは入社させない。
その結果、国内ではwinapiやCOM、ネットゲームなどの最新の開発技術情報は入って来ない。
しかも英語ができないで馬鹿なアンシャンレジームの官僚どもが古い技術(CASLとかN88-BASIC)で教育システムを敷いているのに、勇壮たる国内企業はこれから起こる急激な人材不足に何の用意もしていない。

このままではお前らの情報技術は死滅してしまうぞ! 糞ジャップの売国奴どもめ!

253 名前:デフォルトの名無しさん :05/01/27 04:16:32
scrnsave.hにはhMainInstanceが externされていますよね?
ってことは、参照するために実態がなきゃいけないと思うんですけど、
それはどこに宣言してあるんですか? 不思議で仕方ないです。

254 名前:デフォルトの名無しさん :05/01/27 07:04:15
パーシステンスオブジェクト

255 名前:デフォルトの名無しさん :05/01/27 07:11:24
>>252
どうかしたの?

256 名前:デフォルトの名無しさん :05/01/27 08:40:30
>253
scrnsave.cか.cpp探せ

257 名前:デフォルトの名無しさん :05/01/27 08:46:37
>>229(°Д°)ハァ? 何処にIDが?


258 名前:デフォルトの名無しさん :05/01/27 09:04:54
>>257
君以外はみんな見えてるよ

259 名前:デフォルトの名無しさん :05/01/27 11:03:52
Windowの位置を取得するのにGetWindowRectを使うのはまずいでしょうか?
なにやら正常な値が取れない環境があるみたいなのですが

260 名前:デフォルトの名無しさん :05/01/27 11:11:51
>259
IsWindow
GetWindowRect(hwnd,&rc)の返値チェック
GetClientRect(hwnd,&rc)
GetWindowPlacement

261 名前:デフォルトの名無しさん :05/01/27 11:41:07
>>258
(°Д°)ハァ?

262 名前:デフォルトの名無しさん :05/01/27 12:00:32
ハァハァ..
 ハァハァ..




263 名前:デフォルトの名無しさん :05/01/27 12:02:29
>>258
自分の周りの2,3人が当てはまるだけで「みんな」と
表現する奴っているよね。

264 名前:デフォルトの名無しさん :05/01/27 16:03:44
>>253
scrnsave.libにコンパイルされて入ってるんじゃないの

265 名前:デフォルトの名無しさん :05/01/27 16:53:40
IMEのメッセージをマイプログラムで追跡しました。
例えば、IMEで、"おい"と入力して、変換して、"甥"として、
ここから続けて、"あ"と入力すると、IMEメッセージは、
WM_IME_COMPOSITION が発行されて、lParamに、GCS_COMPSTR が入っており、
ここから、ImmGetComposition() を使うと、"あ"が取得され、以前の文字は消えてます。
ということは、それまでの文字はキャンセルされてると思われる。

やっぱだめじゃん?


266 名前:デフォルトの名無しさん :05/01/27 17:27:08
>265
IMEのサンプルコード探せ。
メッセージの聞き方が間違い。
WM_IME_*をマニュアルで見ろ。
GCS_RESULTSTRは?

267 名前:デフォルトの名無しさん :05/01/27 18:20:09
全てのWM_IME_*をキャッチしたつもりだ。

>GCS_RESULTSTRは?
lParamの値は、0x1BF で、GCS_RESULTSTRは、0x800 だから、
GCS_RESULTSTRは、含まれてないようだが



268 名前:デフォルトの名無しさん :05/01/27 18:33:21
サンプルコードをMSDNから下ろせばいいのに。IMEの概要からたどれるはず。
WM_IME_COMPOSITIONでコンテキストに結果を置いたか?
もう一度WM_IME_COMPOSITIONとImmGetCompos~Str~#GCS_RESULTSTRの解説を見ろ 

269 名前:デフォルトの名無しさん :05/01/27 19:06:39
MSDNって、VC6に同封されてるあの巨大なハルプファイル?(ウソ

270 名前:デフォルトの名無しさん :05/01/27 19:18:37
開発戦略が悪そうだな。

日本語の通るエディタのオープンソース使ってもいいんだぜ

271 名前:デフォルトの名無しさん :05/01/27 19:30:09
↑馬鹿発見

272 名前:デフォルトの名無しさん :05/01/27 19:48:57
パソコン使える奴はいいよな…

273 名前:デフォルトの名無しさん :05/01/27 20:13:10
>268
どこにあるの?
**************ault.asp?url=/library/en-us/intl/ime_9ulh.asp
ここにのってるサンプルじゃないよね?
てか、日本語のMSDNにのってねいよ

274 名前:デフォルトの名無しさん :05/01/27 20:25:43
わかった。
GCS_RESULTSTR を使って取得すると、それまでコンポジションにあったSTRが取得され、
GCS_COMPSTRを使うと、新しく入力されたSTRが取得される。
たとえ、lParameがGCS_COMPSTRであっても

275 名前:デフォルトの名無しさん :05/01/27 20:30:07
あと、漢字入力でスペースを入力したときなんだが、
WM_IME_COMPOSITION が発行されないのはなんで?

276 名前:デフォルトの名無しさん :05/01/27 20:38:21
WM_IME_CHARで判断しときなさいってことじゃないの?
よくわからんけど。

277 名前:デフォルトの名無しさん :05/01/27 21:01:13
>273
当たり前だ。日本人向けに情報を流すわけないよ。慈善団体じゃないんだから。裏でぐぐって30秒で見つけろよ

278 名前:デフォルトの名無しさん :05/01/27 21:11:56
>>273
高卒?

279 名前:デフォルトの名無しさん :05/01/27 21:20:32
小中退です。

280 名前:デフォルトの名無しさん :05/01/27 23:22:10
なんだ。俺の勝ちか

281 名前:デフォルトの名無しさん :05/01/27 23:59:51
英語できない漏れは負け組みですか?(゚∀゚)

282 名前:デフォルトの名無しさん :05/01/28 00:04:34
なことは無い、日本語できないやつよりはまし

283 名前:デフォルトの名無しさん :05/01/28 08:16:26
そこら辺に落ちてるフリーのバイナリエディタとかって
1バイトごとに空白入ってるけど空白にキーボードフォーカスが移動しませんよね?
あれってどうやればできるんですか?

284 名前:デフォルトの名無しさん :05/01/28 08:35:14
>>283
エディットコントロール使わずに
独自に表示・入力受付のコードを書いてるんだろう

285 名前:デフォルトの名無しさん :05/01/28 08:36:49
>>193
> 193 :デフォルトの名無しさん :05/01/25 09:37:47
> そこら辺に落ちてるフリーのバイナリエディタとかって
> 1バイトごとに空白入ってるけど空白にキャレットが移動しませんよね?
> あれってどうやればできるんですか?

286 名前:デフォルトの名無しさん :05/01/28 08:37:06
X座標を調べて、空白の所に移動する場合は2マス移動とかしてんじゃね?

287 名前:デフォルトの名無しさん :05/01/28 08:39:20
>283をほかでも見た気がするが…

288 名前:デフォルトの名無しさん :05/01/28 13:10:21
>>287
おまいは2レス前も読めないのか?

289 名前:デフォルトの名無しさん :05/01/28 15:21:32
>>288
だから、2レス前で見たと言ってるんじゃないかな?

290 名前:デフォルトの名無しさん :05/01/28 15:34:16
タスクバーの色を変えるapiありますか?

291 名前:デフォルトの名無しさん :05/01/28 15:36:41
MSDN の SetProp の説明で、
> Before a window is destroyed,
> an application must remove all entries
> it has added to the property list.
とあるのですが、RemoveProp しないままだとどういう害がありますか?
(SetProp で追加したデータが何らかの後始末が必要なものだった場合
(例えば malloc に対する free) は別として)

292 名前:デフォルトの名無しさん :05/01/28 15:41:23
逆にRemovePropしねーとSetPropしたHANDLEが握られたままだから
解放できねってことじゃねーのかな。
だから、弊害はそのHANDLEによるんじゃねーか。

293 名前:デフォルトの名無しさん :05/01/28 16:21:56
>290
Hookでタスクバーのプロックに寄生

294 名前:デフォルトの名無しさん :05/01/28 16:29:12
>>293
初心者なので言ってる意味がわかりません

295 名前:デフォルトの名無しさん :05/01/28 16:45:08
>>290
SetSysColors()

296 名前:デフォルトの名無しさん :05/01/28 16:51:24
>294
システムカラーを変える場合、
int i=COLOR_3DFACE;
DWORD dw=RGB(赤,緑,青);
SetSysColors(1,&i,&dw);

システムカラーを変えないでタスクバーのみを変えたいなら、SetWindowsHookExの使い方を学べ

297 名前:290 :05/01/28 16:58:11
>>296
どうも。ここは随分親切なインターネッツですね。俺様から貴様へのアドバイスとしては命令口調やめろ糞ボケと。以上

298 名前:デフォルトの名無しさん :05/01/28 17:02:41
>297
古い携帯から書いてると字数制限が

299 名前:デフォルトの名無しさん :05/01/28 17:05:03
システムカラーを一介のアプリケーションごときが勝手に変えるなヴォケ

300 名前:デフォルトの名無しさん :05/01/28 17:11:34
300get

301 名前:デフォルトの名無しさん :05/01/28 17:34:25
>>290
WM_NCPAINTのイベントハンドラを自分でつくる

302 名前::05/01/28 17:34:40
でぶが

303 名前:301 :05/01/28 17:48:07
>>290
すまん適当すぎる答えだった
ここでも参考にしてくれ↓
ttp://hp.vector.co.jp/authors/VA016117/bmpcap1.html

304 名前:291 :05/01/28 17:58:07
>>292
SetProp で追加したデータ自体はどうでもいいのです。
>>291 で引用したように、ああいう注釈がある以上、
RemoveProp しなければ何らかの問題が起こるのではないか、
起こるとすればそれはどのようなものかが知りたいのです。

305 名前:デフォルトの名無しさん :05/01/28 18:22:48
>304
Window Properties Overview見て勉強

306 名前:291 :05/01/28 18:28:07
>>305
既に読んでます。
それに MSDN や他を探しても解らなかったのでここで聞いている次第です。

307 名前:291 :05/01/28 18:28:36
s/解らなかった/見つからなかった/

308 名前:デフォルトの名無しさん :05/01/28 18:30:58
>>305
知らないならスルーしとけば?質問自体下らないしさ。

309 名前:デフォルトの名無しさん :05/01/28 19:20:06
>>306
MSDNになかったらM$の開発者に訊くしかないんじゃない?

310 名前:デフォルトの名無しさん :05/01/28 19:26:27
SetPropの解説に載ってたゼ。Removeしなさいと

311 名前:デフォルトの名無しさん :05/01/28 19:38:29
>>310
それははじめから知ってるだろ

312 名前:デフォルトの名無しさん :05/01/28 19:41:54
その頭でthread local objectが理解できると思えん

313 名前:デフォルトの名無しさん :05/01/28 20:34:35
>>304
あんまりよく知らんが、システムリースの無駄な消費が起こるんじゃない?
派生的に色々な問題が起こるだろ。

314 名前:デフォルトの名無しさん :05/01/28 20:53:02
別スレッドからでも別プロセスからでも参照できるから、TLSではないと思うが。

315 名前:デフォルトの名無しさん :05/01/28 22:05:38
>>313
システムリースってなんですか?


316 名前:デフォルトの名無しさん :05/01/29 02:09:39
借りシステム

317 名前:デフォルトの名無しさん :05/01/29 12:49:28
MIDI演奏エンジン実装の為にms単位でイベントを起こせるタイマを実装したいのですがどのような方法があるのでしょうか?
イメージとしてはSleepのような感じです。
WM_TIMER系は精度が洒落にならないので除外の方向でお願いします。

318 名前:デフォルトの名無しさん :05/01/29 12:55:19
>>317
マルチメディアタイマー

319 名前:317 :05/01/29 13:05:44
>>318
さすがにそれは分かってます。
イベント発生間の待機方法(前回のイベント発生から数ms待機してイベント再発生とか)が思い浮かばないのです。

320 名前:デフォルトの名無しさん :05/01/29 13:14:08
>>317
Sleepでよいなら、Sleep使えば?
timeBeginPeriod(1) すれば、1ms精度で寝られるが?

321 名前:デフォルトの名無しさん :05/01/29 13:53:30
>>202
そうです。メモリマップドファイルなら使ったことがあるので
似たようなクラスとかがあれば一番いいのですが、やりたい
ことは、プロセス間通信です。
CreateFileMappingで作ったMMFの一覧表示ってできますか?

322 名前:デフォルトの名無しさん :05/01/29 14:27:08
>>321は誤爆です。すいません・・・

323 名前:317 :05/01/29 14:48:34
>>320
こんな感じですか?
while(true) {
 timeGetTime(); //経過時間計測
 Sleep(1); //ウェイト
}

それと、Sleep(1)をSleep(0)やPeekMessage、DispatchMessageでやる実装って問題はあるのでしょうか?




324 名前:デフォルトの名無しさん :05/01/29 14:53:33
別スレでやったほうがよくね?

325 名前:デフォルトの名無しさん :05/01/29 15:22:33
wisdomで勉強中なんですが、
たまに、明示的なキャストが必要とでてくるのですが
キャストせずにすむ設定などはないのでしょうか?

326 名前:デフォルトの名無しさん :05/01/29 15:26:33
>>325
コードの実例みせてちょ

327 名前:デフォルトの名無しさん :05/01/29 15:30:57
>>323
そのコードで何がしたいのか教えて欲しい。
第一、どれくらいの精度が欲しいのさ。


328 名前:デフォルトの名無しさん :05/01/29 15:36:27
>>326
static HBITMAP hBMP, hBMPOLD;

hBMP = CreateDIBSection(hdc, &biInfo, DIB_RGB_COLORS, (LPVOID)(&lpPixel), NULL, 0);

CreateDIBSection'
'void*' から非 'void' 型への変換には明示的なキャストが必要です。

となってしまうのですがこれは(HBITMAP)とかを、たせばいいんでしょうか

329 名前:デフォルトの名無しさん :05/01/29 15:42:29
明示的なキャストが必要
て書いてあるだろ

330 名前:デフォルトの名無しさん :05/01/29 15:51:02
>>328
CreateDIBSection()はHBITMAP型を返すはずだが
なんでそんなエラーがでるかな・・・???

331 名前:デフォルトの名無しさん :05/01/29 15:53:58
>>328
hBMP っていう名前の変数が複数あるとか、なんか変数宣言とかに原因がありそうな・・・

332 名前:デフォルトの名無しさん :05/01/29 15:58:18
>>328
STRICTマクロが定義してあると、ハンドルは構造体のポインタになって、
明示的なキャストが必要になる。
winnt.h参照。

333 名前:デフォルトの名無しさん :05/01/29 16:00:17
>>330-331
もうお前ら答えなくていいよ。

334 名前:デフォルトの名無しさん :05/01/29 16:08:26
>>328
CreateDIBSectionの第四引数の型はvoid **だよ。

335 名前:デフォルトの名無しさん :05/01/29 16:09:36
>>332
もうお前答えなくていいよ。

336 名前: ◆utqnf46htc :05/01/29 16:15:27
こんにちは

337 名前: ◆rqDA/8e1Lo :05/01/29 16:16:09
さようなら

338 名前: ◆USIWdhRmqk :05/01/29 16:23:10
こちこちこっちん

339 名前: ◆u47L8X93Gk :05/01/29 18:51:24
こっちんこっちんこっちんこっちんこっちんこっちん

340 名前:デフォルトの名無しさん :05/01/29 19:40:08
システムメニューとウィンドウ右上のボタンについて質問です。

1.WM_SYSCOMMANDで
  SC_MINIMIZE(最小化)、SC_MAXIMIZE(最大化)を
  特定の大きさになるように操作していますが、
  DefWindowProcを通さないためか、
  右上のボタンが変更されません。
  ※WM_SIZEでサイズ変更を試みたのですが、
   どうも最小化最大化のフラグがあるようで、
   うまくいきませんでした。

2.上記に関連して、システムメニューの
  元に戻す、最小化、最大化を状態変更したいのですが、
  グレー状態←→許可状態の変更ができません。
  ※DeleteMenuで項目を消すことはできます。

以上、解決方法があれば教えていただけないでしょうか?


341 名前:デフォルトの名無しさん :05/01/29 20:10:51
>>340
ShowWindowでSW_MAXIMIZEした後、目的のサイズにリサイズするとか。

342 名前:313 :05/01/29 20:11:13
>>315
素で書き間違いだ。
システムリソース!

343 名前:デフォルトの名無しさん :05/01/29 20:57:27
>>341
ありがとうございます。その方向で行きたいと思います。

最小化の動作は回避できそうにないので、
ウィンドウスタイルで無効にすることにします。
最大化の動作は一瞬タイトルバーが伸びてしまうのを、
気にしないようにすることにします。


344 名前:デフォルトの名無しさん :05/01/29 21:51:32
>>340
1.
WM_GETMINMAXINFO を独自に処理してやれば
ウィンドウを目的のサイズに制限はできるよ



345 名前:デフォルトの名無しさん :05/01/29 23:03:14
お尋ねしたいことがあるのですが、

CreatePen(PS_SOLID, 0, 色)



lb.lbStyle = BS_SOLID;
lb.lbColor = 色;
ExtCreatePen(PS_COSMETIC | PS_SOLID, 1, &lb, 0, NULL);

の結果って異なるものでしょうか?

346 名前:デフォルトの名無しさん :05/01/30 01:48:45
Cのexit, _exitに相当するAPIはありますか?

347 名前:デフォルトの名無しさん :05/01/30 01:57:13
>>323
超ナンセンス

そもそも、待機ループ用スレッドをマルチメディアタイマ関数が提供している。
timeSetEvent()呼び出しによって最高優先度スレッドが生成され、
そのスレッド内でループが実行される。車輪の再発明をする意味なし。
自分でループ用スレッドを使ったら、スレッドと同期するための仕組みがさらに必要になるだろ?

348 名前:デフォルトの名無しさん :05/01/30 01:57:59
>>346
PostQuitMessage

349 名前:デフォルトの名無しさん :05/01/30 02:07:49
ExitProcess

350 名前:デフォルトの名無しさん :05/01/30 10:10:18
>>347
わーすごーい。



プッ

351 名前:デフォルトの名無しさん :05/01/30 12:04:53
いやそのとおりでは?

352 名前:デフォルトの名無しさん :05/01/30 12:34:43
>347
職場の先輩に恵まれていないとこういう考えになっちゃうんだろうなぁ。
まぁ気づかなければバレるまで問題にはならないから
なんとかなっちゃうかもしれないけどね。

353 名前:デフォルトの名無しさん :05/01/30 14:39:06
元々MIDI再生エンジンの話だよな>>317のやりたい事って
これを自分で実装する(MCIとか使わない)人って何使ってるの?
マルチメディアタイマー?
自前のメッセージループでタイマー?
他?

ソフトウェアMIDIキーボードとかだと押されたタイミングで音出せば良いだけだけど、再生だとどうしてるんだろ?

354 名前:デフォルトの名無しさん :05/01/30 17:35:36
ウインドウにメニューがその時点で付いているかを確認するには
GetMenuが0を返すかで判断していいのですか?
GetMenuは子ウインドウの場合は戻り値が未定義と書いてあってちょっと不安・・
他に正しい確認方があるのでしょうか?

355 名前:デフォルトの名無しさん :05/01/30 17:43:51
>>354
子ウィンドウはメニューを持てないから、子ウィンドウかどうかを先に確かめればいい。

356 名前:デフォルトの名無しさん :05/01/30 17:46:45
>>353
ふつうマルチメディアタイマー

357 名前:デフォルトの名無しさん :05/01/30 18:12:01
>>355
ありがd それでやってみます。

358 名前:デフォルトの名無しさん :05/01/30 18:37:31
>>356
そか。サンクス。
俺も気が向いたら作ってみようかな。

359 名前:デフォルトの名無しさん :05/01/30 21:26:38
画像の色をだんだん薄くしていって、だんだん透過させるAPIはないですか?

360 名前:デフォルトの名無しさん :05/01/30 21:35:07
>>359
ない

361 名前:デフォルトの名無しさん :05/01/30 21:50:20
GDI+

362 名前:デフォルトの名無しさん :05/01/30 22:12:28
>>359
もしかして、これのこと?
http://msdn.microsoft.com/library/en-us/dnwui/html/layerwin.asp

363 名前:デフォルトの名無しさん :05/01/30 23:03:42
>>359
参)アルファ・ブレンド
ttp://hp.vector.co.jp/authors/VA016117/assem/alpha.html

364 名前:デフォルトの名無しさん :05/01/30 23:21:42
ttp://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_alphablend.asp

つーか、まんまな名前のAPIあるけどな。

365 名前:デフォルトの名無しさん :05/01/31 00:15:22
画像の色をだんだん薄くしていってだんだん透過させる
って言ってるから、単に半透過させるだけじゃだめなんじゃない?

366 名前:デフォルトの名無しさん :05/01/31 00:19:00
なにいってる

367 名前:デフォルトの名無しさん :05/01/31 00:21:42
画面切り替えでしょ。
タイマーで透過率を変えていくとか

368 名前:デフォルトの名無しさん :05/01/31 00:58:26
メッセージ駆動型アプリを理解できてないヤシが
一連の質問を連投しているように見えて仕方ない。

タイマーと透過に関する質問は同一人物か、ひょっとして?

369 名前:デフォルトの名無しさん :05/01/31 01:09:07
自動的に画像の色をだんだん薄くしていってだんだん透過してくれないと困るんです

370 名前:デフォルトの名無しさん :05/01/31 01:48:58
>>362 英語読めないんで雰囲気としてしか分からないんですが、これはウィンドウを透過
させるやつですよね。でも、参考になりました。

>>363
>>364
アルファブレンドっていうんですか。
覚えておきます。
僕だって、メッセージ駆動型ぐらい理解できてますとも!
ありがとうございました。

371 名前:デフォルトの名無しさん :05/01/31 02:09:59
薄くなると同時にメッセージもだんだん透過していったら面白い。

372 名前:デフォルトの名無しさん :05/01/31 02:35:47
グローバルフックのみで、メッセージを受け取っているソフトに対し、
メッセージを投げるには、どうしたらいいのでしょうか?

373 名前:デフォルトの名無しさん :05/01/31 03:11:28
>>359 >>362 >>370
日本語はここね
http://www.microsoft.com/japan/msdn/windows/windows2000/layerwin.asp


374 名前:デフォルトの名無しさん :05/01/31 05:04:33
最前面にあるウィンドウのパスが欲しいんですが、GetForegroundWindow と
GetWindowModuleFileName を使っても、ちゃんとした値が返ってきませんでした。
どうしたらできるでしょうか?

375 名前:デフォルトの名無しさん :05/01/31 05:26:34
デバイスコンテキスト削除する前にペンを削除しちゃいけないって見たんですけど、
やっちゃったら、具体的にどんな危険な事が起こるのですか?

376 名前:デフォルトの名無しさん :05/01/31 07:02:55
やってみろ


377 名前:デフォルトの名無しさん :05/01/31 07:22:39
削除できなかったと思うぞ。

378 名前:デフォルトの名無しさん :05/01/31 07:28:47
普通にmsdnを見さえすれば解決する質問がなされた回数を
取得するAPIってありますか?

379 名前:デフォルトの名無しさん :05/01/31 08:00:16
メモリDC
『ビットマップハンドルをメモリDCに選択した場合,メモリDCに最初に選択されていたビットマップハンドルに戻してからメモリDCを解放するのだろうか?。
Microsoftのサンプルプログラムがこのようにしていたからであるが,このようにしていないアプリケーションも多いので,戻さなくても害がないのだろうか?。
調べたところ,戻さないとだめだった。』

ググっていたらこれ見つけましたが、彼、もしくは彼女はどこをどのように調べたか
どなたか検討がつきますか?

380 名前:デフォルトの名無しさん :05/01/31 09:29:29
>>379
タスクマネージャで監視しつつ
その動作をループで回してみる

まぁ、数万回も回せば、見なくても分かるんじゃね?

381 名前:デフォルトの名無しさん :05/01/31 14:32:39
>>374
GetWindowThreadProcessID 使ってプロセスIDとってそこから取得でたと思う

382 名前:デフォルトの名無しさん :05/01/31 15:22:17
OPENFILENAME ofn;
static char szFn[512]="", szFt[512]=""; //ファイル名を格納

ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd;
ofn.hInstance = NULL;
ofn.lpstrFilter = "ビットマップ(*.bmp)\0*.bmp\0\0";
ofn.lpstrCustomFilter = NULL;
ofn.nMaxCustFilter = 0;
ofn.nFilterIndex = 1; // フィルターの初期位置
ofn.lpstrFile = szFn; // ファイル名用文字列バッファ
ofn.nMaxFile = 511; // 文字列バッファのサイズ
ofn.lpstrFileTitle = szFt; // ファイルのタイトル用文字列バッファ
ofn.nMaxFileTitle = 511; // 文字列バッファのサイズ
ofn.lpstrInitialDir = NULL;
ofn.lpstrTitle = "ビットマップを開く"; // タイトル
ofn.Flags = OFN_FILEMUSTEXIST ;//| OFN_HIDEREADONLY;
ofn.nFileOffset = 0;
ofn.nFileExtension = 0;
ofn.lpstrDefExt = NULL;
ofn.lCustData = 0;
ofn.lpfnHook = NULL;
ofn.lpTemplateName = NULL;

if(!GetOpenFileName(&ofn)) return 0;

GetOpenFileNameを上のような感じで使うと、そこではエラーは出なく、
選んだファイル名、パスをちゃんと得られて成功するのですが、
その後にLoadImageで画像を表示しようとすると、NULLが返って来て失敗します。
得たファイル名だけでは無く、それとは関係ない画像ファイルでもです。
原因はどこに考えられるでしょうか。教えてください。

383 名前:デフォルトの名無しさん :05/01/31 15:27:02
>>382
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_loadimage.asp
を熟読してみたら?

384 名前:デフォルトの名無しさん :05/01/31 15:38:26
>>384
ありがとうございます。調べて見ます。

385 名前:382 :05/01/31 15:39:02
>>383へです。

386 名前:382 :05/01/31 16:09:20
>>383さんにお教えいただいたリンクから、
何が原因でエラーが起こったか調べるAPIがあるのが分かり、
調べた所、「指定したファイルが見つかりません」と出ました。

もしかしたら、パスの位置がGetOpenFileNameを使う事で
おかしくなるのかなと思い、GetOpenFileNameで開くファイルを、
LoadImageで開くファイルと同じパスに置いた所、成功しました。

さらに書くと、実行ファイルの ../ の位置のファイルをGetOpenFileNameで
開いた場合、実行ファイルと同じ位置のファイルをLoadImageで開く時、
実行ファイルのあるフォルダ名/ をファイル名に付ければ成功するという感じです。

原因が分かったので、GetOpenFileNameで変更されたパス?を
元に戻すコードを調べたいと思います。どうもありがとうございました。

387 名前:デフォルトの名無しさん :05/01/31 16:28:38
lpstrTitleの方を使ってんじゃねーか?

388 名前:デフォルトの名無しさん :05/01/31 16:29:21
じゃない、lpstrFileTitleだ

389 名前:デフォルトの名無しさん :05/01/31 16:37:53
レジストリの名前の列挙をしたいのですがうまくいきません

int main(int argc,char **argv){
char subkey[256];
DWORD nu=0,lpcbClass,lpcbName;
long rf=0;
char class[256];
FILETIME FT;
HKEY hkey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"",0,KEY_READ,&hkey);

while (nu < 5){
rf=RegEnumKeyEx(hkey,nu,subkey,&lpcbName,NULL,
NULL,NULL,&FT);
printf("%u %s %u %u\n",nu,subkey,rf,lpcbName);
nu++;
}


------------------
出力結果

0 HARDWARE 0 8
1 SAM 0 3
2 SE 234 3
3 SO 234 3
4 SY 234 3

なにが原因でしょう?

390 名前:382 :05/01/31 16:42:34
>>387>>388
ありがとうございます。調べて見ます。

391 名前:デフォルトの名無しさん :05/01/31 16:47:59
>>389
そこまで表示しといてわからんもんかな…
RegEnumKeyEx() くんが subkey のサイズを知るために、lpcbName に入っ
ている値を参照する。ようするに、RegEnumKeyEx() を呼ぶ前に
lpcbName = 256; が毎回必要。


392 名前:391 :05/01/31 16:53:45
よた話だけど、>>389 で 234(ERROR_MORE_DATA) が返るのは意外だ。
ERROR_INSUFFICIENT_BUFFER じゃないんだね。


393 名前:389 :05/01/31 16:57:17
>>391
ありがとうございます。
馬鹿なのでわかりませんでした

394 名前:デフォルトの名無しさん :05/01/31 16:59:38
>>393
自分を卑下するんじゃない。
経験を積めば問題解決のセンスも磨かれるので、がんばれ。


395 名前:デフォルトの名無しさん :05/01/31 17:57:23
卑下が読めなかった俺はどうすれば。

396 名前:デフォルトの名無しさん :05/01/31 18:00:04
IMEさまに再変換願いだせば?

397 名前:374 :05/01/31 22:31:12
>>381
初めはプロセス情報からファイル名しか取れなくて悩みましたが、
GetWindowThreadProcessID で得たプロセスのモジュール情報から、
ちゃんとフルパスを得ることができました。
どうもありがとうございました。


398 名前:デフォルトの名無しさん :05/02/01 01:09:32
SetWindowsHookEx関数について詳しく説明してるサイト教えてください

399 名前:デフォルトの名無しさん :05/02/01 01:14:19
あとタイトルバーの色を変えるには第1引数にどのフックタイプを指定するか教えてください

400 名前:デフォルトの名無しさん :05/02/01 01:24:24
>>398
MSDN

401 名前:デフォルトの名無しさん :05/02/01 01:37:38
WH_CALLWNDPROCでWM_NCPAINTをフックでどうかな。

402 名前:デフォルトの名無しさん :05/02/01 08:22:17
>>398
ttp://techtips.belution.com/ja/vc/0026/
ttp://hp.vector.co.jp/authors/VA016117/hook.html
ttp://hp.vector.co.jp/authors/VA016117/spy.html
ttp://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N006.html

403 名前:デフォルトの名無しさん :05/02/01 23:04:08
JPEG・PNG等の一般的な画像ファイルから画素を得られる、標準API・DLLは
どの様な物があるのでしょうか。

今まではIJGのライブラリやSUSIEのプラグインを使用させて頂いて
いたのですが、ライブラリは実行ファイルのサイズが膨れあがり、
SUSIEはもうマイナーな様なので、一般的なDLLで読めるなら、もう
素直にそっちを使いたいなぁ・・・
何年か前にぐぐった時は、IE関連のDLLが利用出来ると読んだ様な
記憶があるのですが、今探してみるとそれらしい事が書かれたサイトは
見つかりませんでした。

404 名前:デフォルトの名無しさん :05/02/01 23:23:20
GIFとJPEGならOleLoadPictureで読める。

405 名前:デフォルトの名無しさん :05/02/01 23:27:56
>>403
IE関連の〜ってのは、多分 OleLoadPicture() かな?
ただ、それだと>>404なのでGDI+かねぇ


406 名前:デフォルトの名無しさん :05/02/01 23:50:02
必要なDLLがないと言われちゃうぞ。


407 名前:403 :05/02/02 00:20:25
どもです。
PNGは読みたい所なので、保存も出来るらしいGDI+の方向で逝こうと
思ったのですが、プラットフォームSDKが・・・暫く悩んでみます。

408 名前:デフォルトの名無しさん :05/02/02 00:34:02
別にPNGだけならlibpng+zlib組み込んでもいいと思うが。
あとはIE本体をCOM経由で呼びだしてhogeるとか?

409 名前:デフォルトの名無しさん :05/02/02 00:40:07
どこで聞けばいいのかわからないのですが…
あるUSB機器を使用しているときに
機器との通信内容をモニタすることはできますか?


410 名前:デフォルトの名無しさん :05/02/02 01:25:14
LeadToolなりImageMagickなりを使うとフォーマットに関しては悩む必要がなくなるけど。
多少の加工もできることだし。

411 名前:デフォルトの名無しさん :05/02/02 01:28:35
>>407
GDI+ねぇ。
PSDKのダウソ&導入の点で悩むよりはむしろ、
WindowsNT5.0以上でないと動かないという点で悩むべきでしょ。
あと、WindowsUpdateでアップデートされたりする対象なので取り扱い注意。

412 名前:デフォルトの名無しさん :05/02/02 01:39:21
>>411
> WindowsNT5.0以上でないと動かないという点で悩むべきでしょ。
今時、問題ねーよ。

413 名前:デフォルトの名無しさん :05/02/02 01:41:49
今時XP未満使ってる香具師なんて物好きだけだし
そういう香具師ならGDI+位自分で入れるでしょ

414 名前:デフォルトの名無しさん :05/02/02 01:46:12
アーカイバのDLLは実質統一されてるのに、イメージは何で統一されなかったのかなぁ。

415 名前:デフォルトの名無しさん :05/02/02 01:47:35
ここは世間知らずの多いスレですね

416 名前:デフォルトの名無しさん :05/02/02 01:48:57
多分、一時期susie規格が跋扈してたから規格統一する必要性がなくずるずると…

417 名前:405 :05/02/02 01:50:21
>>411
Win98/Me/NT4.0でも使えるよ。
そもそもGDI+は.NETのグラフィック関係で使われてるから、
少なくとも.NETが動くWindowsでは使える。

WinXPより前のOSだと、インストールしないといけないけどね。

418 名前:デフォルトの名無しさん :05/02/02 01:53:18
>>417
> WinXPより前のOSだと、インストールしないといけないけどね。
exeの横にdllを置けばOK。

419 名前:デフォルトの名無しさん :05/02/02 02:44:43
>>413
新品のPC買う人でXP以外、って意味ならね。
わざわざ2000入れる人も居るみたいだし

420 名前:デフォルトの名無しさん :05/02/02 03:38:24
DirectX で読み込んでみるとか

421 名前:デフォルトの名無しさん :05/02/02 07:51:04
SDKでツリービューコントロールについて質問です。
編集可にしたい場合はウィンドウスタイルにTVS_EDITLABELSを付け加えますが、
編集可のアイテムと不可のアイテムを混合させたい場合は
どのようにするのがいいでしょうか?

422 名前:421 :05/02/02 07:58:53
自己解決しました。m(_ _)m

423 名前:デフォルトの名無しさん :05/02/02 08:27:51
>>422
せめてどうやったのか書いてくれ

424 名前:デフォルトの名無しさん :05/02/02 08:34:46
>>409
ソフトでやるなら、フィルタドライバをかませる
そうでなければ、プロトコルアナライザを使う

425 名前:421 :05/02/02 09:29:13
>>423
親の無いアイテム(ルートのアイテム)のみ編集可能にする場合
下記のような感じでできました。
ですが、一つ問題があって、
TreeView_EndEditLabelNowで編集を強制終了したときに画面がちらつきます。
よく考えてみればラベルの編集可と不可の混合するツリービューを見たことないですし、
もしかするとこの処理は良くないのかもしれません。

case WM_NOTIFY:
  if(wParam == IDC_TREEVIEW){
   ptv_disp = (TV_DISPINFO *)lParam;
   HTREEITEM hTi;
   switch(ptv_disp->hdr.code){
   case TVN_BEGINLABELEDIT:
    // 編集してよいか調べる //
    hTi = TreeView_GetSelection(hTreeView);  // 選択されているアイテムを取得
    hTi = TreeView_GetParent(hTreeView, hTi); // 選択されているアイテムの親を取得
    if(hTi != NULL){
     TreeView_EndEditLabelNow(hTreeView, TRUE); // ルートのアイテムではないので編集処理を強制終了
    }
    break;
   case TVN_ENDLABELEDIT:
    // 編集の結果を反映する //
    TreeView_SetItem(hTreeView, &ptv_disp->item);
    break;
   }
  }
  break;

426 名前:デフォルトの名無しさん :05/02/02 10:20:40
タスクマネージャとかで終了させようとしたときに、
操作が拒否されましたと出るようにするにはどうすればいいですか?

勝手に外部から終了されないようにしたいのですが。

427 名前:デフォルトの名無しさん :05/02/02 10:49:24
>>426
どんなウィルス作るの?

428 名前:デフォルトの名無しさん :05/02/02 10:58:37
まぁ、ウィルスでないにしても拒否しないべきだな。
完全にバグの無いプログラムを書ける自身があれば別だが

429 名前:デフォルトの名無しさん :05/02/02 11:00:53
>>428
なるほど、そういう考え方もありますね

430 名前:仕様書無しさん :05/02/02 11:18:33
普段は待機していてメモ帳(notepad.exe)が起動したことを

検出するにはどうしたらいいんでしょうか?
・1分ごと(1000ms*60)ごとにチェック
・特定のプロセス名が起動していたら・・・
というところがわかりません。

簡単でしたらwinmain()からお願いします。
AfxMessageBox()程度なのでウインドウを作ったりする必要はありません。
難しかったらMFCでもOKです。




431 名前:デフォルトの名無しさん :05/02/02 11:27:59
>>430
>難しかったらMFCでもOKです。
この一文でキサマがどれだけプログラムできないかが
よく分かった。

432 名前:デフォルトの名無しさん :05/02/02 11:29:17
>>430
部品だけ教えてやる
SetTimer
KillTimer
CreateToolHelp32Snapshot
Process32First
Process32Next
CloseHandle

433 名前:デフォルトの名無しさん :05/02/02 11:38:17
ヘルプで、PSAPIを調べろ。
Enumerating All Processes という項目
(Windows開発 > Windows Development > Windows Base Services >
Performance Monitoring > SDK Documentation > Process Status Helper >
Using PSAPI)
に、ソースコードがそのまんま載ってる。実際にコンパイルして確認した。

434 名前:デフォルトの名無しさん :05/02/02 11:42:13
>>430
if (AfxProccessFind("notepad.exe"))
 //見つかった
else
 //見つからない

435 名前:デフォルトの名無しさん :05/02/02 11:53:31
>>433
PSAPIはWin9x系未サポートな罠

436 名前:デフォルトの名無しさん :05/02/02 12:30:33
>>435
今更Win9x系をサポートする必要あるのかねえ。
やっぱあるかねぇ。

437 名前:デフォルトの名無しさん :05/02/02 12:39:07
特殊な場合を除いて9x系は無視して良いと言っても過言ではない。
最近はUnicodeビルドばっかりやってる。

438 名前:デフォルトの名無しさん :05/02/02 13:03:43
>>411
既出だけど、gdiplus.dllは再配布可能。

でも初期の版はセキュリティ問題あるので、新しい奴じゃないとダメ。
libpngもセキュリティ関連で似たような経緯あるし、OleLoadPictureに
頼っておいて Windows Update でカタ付けてもらうのが良いような・・

439 名前:デフォルトの名無しさん :05/02/02 13:17:59
>>436
95はともかく98-Meは現役で使われてるのがかなりある。
特にMeあたりだとPentium3搭載とかでハードウェア的には全く問題ないわけだし

440 名前:デフォルトの名無しさん :05/02/02 13:47:18
うちはもう今年から対応止めた。2K以上は楽だよ

441 名前:デフォルトの名無しさん :05/02/02 13:58:34
>>426
「タスクバーにアイコン表示しないようにする」くらいにして
起動してるのを目立たなくしておく、くらいにしといたら?

442 名前:デフォルトの名無しさん :05/02/02 14:01:46
たしかデバッガ噛ませると…
結構危険なのでお勧めしないけどね

443 名前:デフォルトの名無しさん :05/02/02 14:55:03
うちは9xまだまだ現役。
Unicodeビルドでもlibunicows + unicows.dll使ってるし。
最近unicows.dllの代わりにOpencowsなんてものも出てきたからちょっと期待。

444 名前:409 :05/02/02 14:58:15
>>424
レスthx.
プロトコルアナライザは高くて手が出ないので、ソフトウェア的に行きたかったのです。
今回の場合、USB Monitor というプログラムで目的が実現しそうです。
どうもでした。

445 名前:443 :05/02/02 15:21:15
まちがえた。OpencowsじゃなくてOpencow。

446 名前:デフォルトの名無しさん :05/02/02 16:50:28
Wininet APIのInternetSetStatusCallbackでHTTPからのダウンロード状況を知る方法はないでしょうか?
FTPならINTERNET_STATUS_RESPONSE_RECEIVEDにダウンロードサイズが付いてくるようなんですがHTTPの場合来ないようなので‥‥

447 名前:デフォルトの名無しさん :05/02/02 16:54:00
NTFSの機能である「ファイルの概要」はどのように
読み書きすればよいのでしょうか。

タイトル、表題、作成者、カテゴリ、キーワード、コメント
等をファイルマネージャで弄りたいのです。

448 名前:デフォルトの名無しさん :05/02/02 16:55:02
>>443
すごい、がんばってください、

449 名前:デフォルトの名無しさん :05/02/02 17:00:39
>>447
ググったらこれがトップに出てきた。
http://www.geocities.jp/bruce_teller/adsmngr/helpfiles/aboutads.htm

450 名前:デフォルトの名無しさん :05/02/02 17:18:22
長い時間が必要な処理をする場合どういう方法が適しているのでしょうか?

思いついたのは、長時間の処理をする為のスレッドを作成するか、
処理の途中で状態を変数に残しておきリターンして
タイマー呼出しで処理を継続する(関数のポインタによる呼出し)
という方法の二つです。
スレッドは使いたくないので後者にするとして、
処理を中断するタイミングや次に処理するタイマーの設定が問題になります。
10ミリ秒処理をすれば一度中断して1秒後に再開とか。
システムに過度の負荷を与えない範囲で、できる限り高効率で実行したいと
なるとどういう数値を指定すればいいのかもわかりません。
処理も結構複雑になりそうですし、他にいいやり方があればと思っています。

451 名前:デフォルトの名無しさん :05/02/02 17:22:09
>>446
来ると思うけど・・・

452 名前:デフォルトの名無しさん :05/02/02 17:22:32
>>450
スレッド使え。何が嫌なんだ?
それと負荷軽減にはSleep(0);

453 名前:デフォルトの名無しさん :05/02/02 17:22:58
>>450
スレッド。使いたくなくてもスレッド。

454 名前:デフォルトの名無しさん :05/02/02 18:03:00
>>451
InernetReadFileに渡すバッファサイズが大きすぎて(== ファイルサイズ)来てなかったみたいです。
thx

455 名前:450 :05/02/02 18:13:30
>>452
WSAAsyncSelect を用いたネットワークプログラム(GUI)です。
Winsock は一つのソケットを複数のスレッドで共有出来ないはずなので、
スレッドを利用するとなるとそのソケットの専用スレッドが必要ですよね?
PostThreadMessage を利用すればソケットから読んだデータに応じて
GUI に処理を渡すのは楽なんですが、別の何らかの方法で逆も実装しなければ
いけないのと、ソケットスレッドがその長時間の処理を行ってる最中に、
どうやって読み込み処理をするかが問題になってきます。

スレッドを使わない方法の方は、Sleep(0) で負荷の軽減は出来ましたけど、
長時間の処理をやりながら、なおかつ本来のメッセージ処理も滞りなく
する方法が必要になります。

456 名前:デフォルトの名無しさん :05/02/02 18:15:08
Task,または、プロセス、それを細かくしたスレッド、使えよ、
ごるぁ

457 名前:デフォルトの名無しさん :05/02/02 18:39:16
wParamとかlParamってなんなんでしょうか?

458 名前:デフォルトの名無しさん :05/02/02 18:46:29
>>457
区別は、Win3の互換性だな

459 名前:デフォルトの名無しさん :05/02/02 18:48:43
>>455
> GUI に処理を渡すのは楽なんですが、別の何らかの方法で逆も実装しなければ
その逆の流れもPostThreadMessage使えよ。

460 名前:デフォルトの名無しさん :05/02/02 19:16:30
>>457
どっちもDWORDで置き換え可能

461 名前:450 :05/02/02 19:19:02
>>その逆の流れもPostThreadMessage使えよ。
スレッド用に不可視のウィンドウですか?

残りの問題は、長時間処理をしている最中に
どうやって読み込んで処理を出来るかなんですが、
>>450 に書いた処理を中断・継続する方法を使えば同様に実装できるとは
思いますが、実装がややこしいのはほとんど変わりません。
特に不可視のウィンドウを使ってメッセージで処理するなら、
スレッドを使わない場合と同じような実装になると考えられます。

>>455 では読みづらかったかもしれませんが、長時間の処理をしている
最中でも、ソケットから来るデータを別途処理しなければなりません。

この場合、スレッドを使うメリットは何かありますか?


462 名前:デフォルトの名無しさん :05/02/02 19:51:59
>>461
漏れならこういう設計にする

・UIスレッド
- 通信用スレッドからのイベントに反応
- 通信用スレッドへデータ供給 (Queueや共有するメモリなどで)

・通信用スレッド
- 送るべきデータがあればsend
- 読めるデータがあればrecv。
 アプリケーション的に意味あるカタマリになったらUIスレッドへ通知

・ワーカスレッド
- UIスレッドから指示を受けて動く。
- なにか時間のかかる処理があるならここで。

スレッド間のメッセージのやり取り・同期。待ち合わせはイベント等を使う。
おしまい。

463 名前:デフォルトの名無しさん :05/02/02 19:53:43
UIスレッドがデータ供給するのはアフォ設計だな。
ロック中描画が止まる。

464 名前:デフォルトの名無しさん :05/02/02 19:55:39
>>463
一般に言ってユーザとのインタラクトの他にどこからデータが発生する?
Queueに貯めとけばいいだけじゃん。

465 名前:デフォルトの名無しさん :05/02/02 19:58:47
フックについてわかりやすく説明しているところを教えてください。

466 名前:デフォルトの名無しさん :05/02/02 19:59:00
ちがう、スレッドベースだろう?、

467 名前:デフォルトの名無しさん :05/02/02 20:10:18
>>466
何を言っているのかさっぱりわからないので詳しくお願いします。
例えばメーラのUIスレッドで「ログイン」ボタンの押下イベントを受けたら、

・UIスレッドはアカウント名とパスワードを特定のメモリに保存して、
 「ログインしろ」と通信用スレッドへ通知 (queueでコマンドを送る/
 stateを変更した後イベントをセットする等)
・通信用スレッドはログイン処理開始。
 成功したり失敗したらUI側へ通知

みたいな流れになると思うんだけど・・・

468 名前:デフォルトの名無しさん :05/02/02 20:18:18
一番ユーザーとして嫌いなのが、やった処理が直ぐに取リ消し出来ないこと
分かる?

469 名前:デフォルトの名無しさん :05/02/02 20:18:40
ユーザーにテキストボックスを選択させて、sendkeyで文字列を送る
と言う事をしたいのですが、どうしたら良いのかさっぱりわかりません。

とりあえずSpy++のTARGETアイコン(?)のような機能を呼び出す方法を探しているんですが、それが上手くみつからず、、

わかる方がいらっしゃいましたら教えて頂ければ幸いです。

470 名前:デフォルトの名無しさん :05/02/02 20:25:00
>>463
例えば>>467の例だと、非UIスレッドが「アカウント名」とか「パスワード」を
どっからか手に入れて供給するのが正しいわけですね。
面倒なので合意しときます。

>>466>>468
何を言っているのかさっぱりわからないので具体的に詳しくお願いします。
っていうか割と由緒正しいこんなスレでも妄想キチ相手にしてる漏れって・・・

通信をステートマシンで実装するのは当たり前だし、
ちゃんと作れば当たり前に中断だってできるだろう・・・
(プロトコルが許す範囲において)

471 名前:デフォルトの名無しさん :05/02/02 20:30:30
Queueには確実にmutex(Winとかいうローカル環境限定で言えばCriticalSection)が必要だけど、
そこが混み合ったらどうすんの?しばらくメインスレッドが応答不能になりそうだよ。

472 名前:デフォルトの名無しさん :05/02/02 20:33:35
まあ普通は分離するわな

473 名前:デフォルトの名無しさん :05/02/02 20:36:33
しをしを、もうだめぽ

474 名前:450 :05/02/02 20:49:32
>>462
長時間占有してなおかつ送受信が必要な処理を想定してたのですが、
それを純粋に分離しちゃった方がいいわけですね。
同期・通信(キューとか)機構をどうするかは考えなくてはいけないけど、
今まで考えてたやり方よりはまだ簡単そうです。


475 名前:デフォルトの名無しさん :05/02/02 22:56:24
>>246
もう答え要らんみたいだけど、実行するユーザを工夫するか。
ちょっと違うけど複数プロセスで構成してお互いに監視して再起動でも要件満たす?
ぐらいしか思いつかんかったがどうだろう。

476 名前:デフォルトの名無しさん :05/02/03 01:19:48
他のアプリケーションのツールバーを拡張する事って出来るんでしょうか?

具体的にやりたい事は、Beckyのプラグインをつくってるのですが、
そこで、ツールバーにアイコンをひとつ加えたいのです。

477 名前:デフォルトの名無しさん :05/02/03 01:29:32
やれない事はない。

478 名前:デフォルトの名無しさん :05/02/03 01:55:13
joySetCaptureってjoyGetPosと同じで4つボタンまでしか対応してないんですか?
何か、メッセージ調べてると、どうも0x2を押したときに0x202が送られてきてるみたいなんですが…
こういう場合は、DirectInputを使うかjoyGetPosExを使うしか無いですか?

479 名前:デフォルトの名無しさん :05/02/03 03:28:29
>>447
これでも参考にしなさい
http://support.microsoft.com/kb/186898

480 名前:デフォルトの名無しさん :05/02/03 04:30:39
>>477
具体的にどうやればいいのでしょうか?
なにか、API名などのヒントだけでも頂ければあとは自分で調べます。

481 名前:デフォルトの名無しさん :05/02/03 05:16:12
GetEnumWindow
AddMenu


482 名前:デフォルトの名無しさん :05/02/03 07:50:40
>>477
>>481
わかんねーんなら、黙ってろ
てきとーな関数名ならべてんじゃねーよ

483 名前:デフォルトの名無しさん :05/02/03 10:30:32
誘導されてきました。

C++ ではなくて C で Windows95 以降用のプログラムを作りたいの
ですが、どの開発環境を使えば出来るのかよくわかりません。
ランタイムライブラリのファイルを 1,2 個入れる程度なら妥協は
出来ますが、.NET Freamwork をインストールするなんて方法は取
りたくありません。
何か方法がありますか?

今思い出したのですが、Quick C for Windows 持っています。
それでいいかも。
代案があればお願いします。

484 名前:817 :05/02/03 10:39:27
>>483
bcc

485 名前:デフォルトの名無しさん :05/02/03 11:37:55
Cygwin/MinGW

486 名前:デフォルトの名無しさん :05/02/03 11:39:27
lcc-win32

C++に対応してないC専用開発環境。マジオススメ。

487 名前:477 :05/02/03 15:37:58
>>480
フックしてツールバーにボタン追加。コマンド待つ。
寿命が長くなれば危険も増すからお勧めしないけど。

488 名前:デフォルトの名無しさん :05/02/03 16:01:29
検索のダイアログとかapiで出せるけど
検索アルゴリズムは自作するしかないの?

489 名前:デフォルトの名無しさん :05/02/03 16:12:49
お前が「何の中から」検索したいかはシステムは知らないからね。

490 名前:デフォルトの名無しさん :05/02/03 16:22:46
>>488
何を検索したいのか知らんが、とりあえず "Indexing Service"でも使えば?

491 名前:デフォルトの名無しさん :05/02/03 16:50:30
ウィンドウスタイル(ウィンドウ拡張スタイル)で、縁無しのウィンドウ(周りに何も境界線とかの表示がない。)を作りたいのですが、
何を指定すればいいのでしょうか?
数時間かけて調べてみましたが、よくわかりません。

すいません。

492 名前:デフォルトの名無しさん :05/02/03 17:08:23
ws &= ~WS_THICKFRAME;


493 名前:デフォルトの名無しさん :05/02/03 17:08:43
^ WS_THICKFRAME ?

494 名前:493 :05/02/03 17:11:13
orz

495 名前:デフォルトの名無しさん :05/02/03 17:12:06
>>461
別にウィンドウなんてなくてもメッセージはやり取りできるし、
そのためにPostThreadMessageはあるんだが……。

496 名前:488 :05/02/03 17:12:12
文字列の検索

497 名前:デフォルトの名無しさん :05/02/03 17:13:12
WS_BORDERも含めて完全になにも枠がないウィンドウつくりたいならWS_POPUPのほうが手っ取り早いと思うが。

498 名前:デフォルトの名無しさん :05/02/03 17:29:47
任意のアドレスにある命令が実行されたというのを調べるのはどうすればいいのでしょうか?
いわゆるVC++でデバックする時に使うブレークポイントを自分でAPIを使って実現したいのですが。
またその時のレジスタ値を取得するようなAPIはあるのでしょうか?

499 名前:デフォルトの名無しさん :05/02/03 17:32:48
WS_POPUPだけにしたら何も出てこなくなったんですけど・・・
タスクバーにはアイコンがあります・・・

500 名前:デフォルトの名無しさん :05/02/03 17:33:26
WS_POPUPで試しても
やはり境界(2ドット程度)ができるんですよ。
くぼみっぽいものが。
http://www.geocities.jp/ayana_city/windowstyle.jpg

完全に窪み・縁がないウィンドウはつくれないのでしょうか?

ToolTipの小さいウィンドウみたいな感じのものを作りたいのです。



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