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


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

Win32API質問箱 Build40
251 名前:デフォルトの名無しさん :2006/02/14(火) 00:51:33
質問です。

アクティブウインドウにキー入力を送信するのに
SendInput や keybd_event などがありますが、
一部のウインドウに対しては全く動作してくれません。
SendMessage WM_KeyDownなどでもだめでした。
(おそらくDirectInputで入力を拾っているためだと思います)

しかし、JoyToKeyというフリーソフトではそのようなウインドウに対しても
キー入力を送信できているので、なにかしらいい方法があるはずです。
どのような方法を使えばキー入力を行うことができると思いますか?


252 名前:249 :2006/02/14(火) 01:10:05
>>250
いやまあそうなんですけど
色々な人がメモリの使用量を抑えるために使っているので
内部では何かされているのかなと。

253 名前:デフォルトの名無しさん :2006/02/14(火) 01:30:54
ようするにdeleteやfreeでプログラムからは開放したつもりでも
Windowsからはまだ割り当てたままのヒープブロックがあるわけだ。
スワップアウトする時はそれを最適化する作業がおまけで付いてくるってこと。

254 名前:デフォルトの名無しさん :2006/02/14(火) 09:00:30
>>252
> 色々な人がメモリの使用量を抑えるために使っているので

それは、どこでどれだけのサンプルを取って言っているのだ?
最低限、統計学的に見て問題のないサンプル数を取ってのセリフか?

255 名前:デフォルトの名無しさん :2006/02/14(火) 09:24:28
お世話になりました

256 名前:デフォルトの名無しさん :2006/02/14(火) 09:51:09
お構いもしませんで

257 名前:デフォルトの名無しさん :2006/02/14(火) 10:57:47
システムへの負荷度合いを測るAPIって無いですか?
いま、タスクマネージャで計ってるんですが、わかりづらくて。
出来れば時間を追ってログに吐き出したりしたいんですけど。
どうでしょう?


258 名前:デフォルトの名無しさん :2006/02/14(火) 11:29:33
>>257
つ NtQuerySystemInformation

259 名前:デフォルトの名無しさん :2006/02/14(火) 11:33:29
ご苦労

260 名前:デフォルトの名無しさん :2006/02/14(火) 14:24:53
セロで割った例外とかはどうすれば捕まえられますけ?

261 名前:デフォルトの名無しさん :2006/02/14(火) 14:26:01
>>260
板違い

262 名前:デフォルトの名無しさん :2006/02/14(火) 14:36:38
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/structured_exception_handling.asp

263 名前:デフォルトの名無しさん :2006/02/14(火) 14:40:31
セロで割るってなんだ?

264 名前:デフォルトの名無しさん :2006/02/14(火) 14:46:28
on error goto でエラートラップ掛けられます

265 名前:デフォルトの名無しさん :2006/02/14(火) 14:46:57 ?
>>263
昔、EL&Pとかのプログレバンドが演奏後にギター叩き壊したりしてたろ。
あれのセロ版。オーケストラのチェロ奏者が演奏後に叩き割るんだよ。

266 名前:デフォルトの名無しさん :2006/02/14(火) 15:05:29
ELPは鍵盤にナイフを刺す。

267 名前:デフォルトの名無しさん :2006/02/14(火) 15:06:51
>>265
セロ「で」割る

268 名前:デフォルトの名無しさん :2006/02/14(火) 15:11:12
EL&Pはキーボード、ベース、ドラムの3人組だよ

269 名前:デフォルトの名無しさん :2006/02/14(火) 15:12:27
>>265
昔って、、、昔杉w

270 名前:デフォルトの名無しさん :2006/02/14(火) 15:30:16 ?
>>267
オーケストラのチェロ奏者が演奏後に(セロで他の楽器を)叩き割るんだよ。

271 名前:デフォルトの名無しさん :2006/02/14(火) 15:54:40
マジレスするとロマンス諸語の一部では0をCeroと読む。

272 名前:デフォルトの名無しさん :2006/02/14(火) 19:00:00
StretchBltで縮小すると、画像がめちゃくちゃ汚いいんですが、こんなときどうしましょう?


273 名前:デフォルトの名無しさん :2006/02/14(火) 19:02:28
>>272
プログラム作る前にグラフィックソフトの使い方勉強しれ

274 名前:デフォルトの名無しさん :2006/02/14(火) 19:07:05
>>272
StrechBltModeを変更しよう

275 名前:272 :2006/02/14(火) 19:11:06
>273
>プログラム作る前にグラフィックソフトの使い方勉強しれ
このような的を得ていないつっこみへの対処は、どうしましょう?


276 名前:デフォルトの名無しさん :2006/02/14(火) 19:13:19
>>275
手前で的知ってるなら わざわざ質問するなってことだ

277 名前:デフォルトの名無しさん :2006/02/14(火) 19:15:51
きたな・いい 【汚いい】

(形)
(1)よごれていていい感じを与える。
「画像がめちゃくちゃ―」

        民明書房提供「大痔林 第二版」より

278 名前:デフォルトの名無しさん :2006/02/14(火) 19:20:48
DirectMusic使いたいんですが、
サンプルをコンパイルしようとすると、
未解決の外部シンボル __imp__CoInitialize@4 が…
のエラーが出ます。
CoInitialize()使うのに必要な.h or .lib って何ですか?

279 名前:272 :2006/02/14(火) 19:25:02
>274
>StrechBltModeを変更しよう
「SetStretchBltMode」で「HALFTONE」を与えることで綺麗になりますた。
ありがとうございます。


280 名前:デフォルトの名無しさん :2006/02/14(火) 19:28:14
>>278
なんでMSDNライブラリ見ないの?

281 名前:デフォルトの名無しさん :2006/02/14(火) 19:36:32
そもそもSDKのサンプルにはプロジェクトファイルも付いてないか?

282 名前:278 :2006/02/14(火) 19:45:04
>>280 MSDN内も探しているのですが、どうも見つかりません。。。
>>281 サンプルをビルドしてみたんですが同様のエラーが…。

283 名前:278 :2006/02/14(火) 19:50:42
すみません。自己解決しました。
ole32.libなんですね。
どっかに.libの一覧表とか無いんでしょうかねぇ。。。

284 名前:デフォルトの名無しさん :2006/02/14(火) 19:53:13
MSDNのCoInitializeのところにしっかり書いてあるけど

285 名前:デフォルトの名無しさん :2006/02/14(火) 19:53:43
MSDNからCOMのドキュメントがなくなったのかと思って慌てて
見にいっちゃったよ。ちゃんとあってよかった。ε-(´ー`;)
逆にどんな探し方したら見つからないのか知りたい。

286 名前:デフォルトの名無しさん :2006/02/14(火) 21:03:08
>>278
MSDNに書いてあるだろ

287 名前:デフォルトの名無しさん :2006/02/14(火) 21:58:05
すみません。教えてください。
今、メインのウィンドウ(ダイアログでない)にチェックボックスをベタ貼りするプログラムを書いています。
チェックボックスはCreateWindowでウィンドウクラスを"BUTTON"として生成できることはわかりました。
またスタイルの指定でチェックボックスになることもわかりました。
ただ、どうしても背景色が灰色になってしまうのです。
俺はメインのウィンドウの背景色に合わせたいのですが。
このような場合、チェックボックスの背景色を変える(もしくは透明にする)方法はないのでしょうか。
メインのウィンドウのWM_CREATE:でチェックボックス(hButton)を生成後
HDC hdc = GetDC(hButton);
SetBkColor(hdc, RGB(0,0,0));
のようなことをしても背景色は変わりませんでした。
調べてみるとオーナードローという方法が使えそう(?)ですが、ちょっと大変そうです。
どなたか、簡単に背景色を変える方法を、ヒントだけでも教えてもらえないでしょうか。
よろしくお願い致します。

288 名前:287 :2006/02/14(火) 22:00:50
すみません。書き忘れました。
環境はWindowsXP、VS2003です。
また、MFCは使わず、SDKで作っています。

289 名前:デフォルトの名無しさん :2006/02/14(火) 22:01:51
>>287
「コントロール 背景色 変更 Win32」でググるとかしないの?

290 名前:デフォルトの名無しさん :2006/02/14(火) 22:03:01
Windows Picture and FAX Viewer をコントロールしたいのですが、
Preview 1.0 Type Library(shimgvw.dll)を使ってできませんか。

メソッドの使い方はある程度予測つきますが、Previewクラスへ
オブジェクトを得る方法が分かりません。

破損したファイルを読み込むと次の画像に進むボタンの位置が動いて
うまく制御できないので困ってます。

VB板で聞いたらレスつきませんでした。


291 名前:デフォルトの名無しさん :2006/02/14(火) 22:41:28
>>289
うるせー、この糞。わかんねーから質問スレで質問してんだろうがよ。
われこそ知らねーなら黙っときや。

292 名前:デフォルトの名無しさん :2006/02/14(火) 22:42:24
そういえばgoogleの表紙、まだバレンタインだった?
怖くて見れないんだけど・・・

293 名前:デフォルトの名無しさん :2006/02/14(火) 22:43:21
>>292
OK見てくる



アイススケートだった

294 名前:デフォルトの名無しさん :2006/02/14(火) 22:44:24
普通のに戻ってるよ

295 名前:デフォルトの名無しさん :2006/02/14(火) 22:47:19
>>287
チェックボックスの文字の背景はスタティックコントールの色になってるみたい。
だからWM_CTLCOLORSTATICでブラシを戻すとよいようだよ。

296 名前:デフォルトの名無しさん :2006/02/14(火) 22:48:03
>>287-288
WM_CTLCOLOR*

>>291
おまえ287じゃないだろ?

297 名前:287 :2006/02/14(火) 23:00:18
>>295
ありがとうございました。STATICでうまくいきました。

>>289
誰が読んでも、これは糞。もう出てくんなよ。

298 名前:デフォルトの名無しさん :2006/02/14(火) 23:30:13
>>297
糞っていうからどんな検索結果が出てくるのか気になってやってみたけど、
それなりに質問の答えになってるような気がする・・・

http://www.google.co.jp/search?hl=ja&q=%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB+%E8%83%8C%E6%99%AF%E8%89%B2+%E5%A4%89%E6%9B%B4+Win32&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

299 名前:デフォルトの名無しさん :2006/02/14(火) 23:39:02
>>298
確かに答えになってるね。
287=291=292=297で、この時期googleが見れないから質問したってとこか。

300 名前:デフォルトの名無しさん :2006/02/14(火) 23:40:01
キレる若者!多発する少年犯罪!眠らない街歌舞伎町!!!

301 名前:デフォルトの名無しさん :2006/02/14(火) 23:40:16
誰かわかる方教えて頂けないでしょうか。

マウスカーソルについてなんですが、エクスプローラなどでctrlキーを押しながらドラッグアンドドロップするとカーソルに[+]記号が追加されますが、あれはどのように実現しているかわかる方いませんか?


302 名前:デフォルトの名無しさん :2006/02/14(火) 23:44:46
298=299=300

303 名前:299 :2006/02/14(火) 23:54:26
>>302
残念!299は別人でした。しかしそう見えるなw
これだけだとあれなので、ついでに回答。
>>301
LoadCursorとかじゃないかな。

304 名前:デフォルトの名無しさん :2006/02/14(火) 23:59:01
>>301
追加されんるじゃなく、[+]がついたカーソルを使っているだけ。
普段は矢印で、ちょっと時間がかかる処理では、砂時計とかに変えたことは
ないの? SetCursor() だと思ったけど。

305 名前:デフォルトの名無しさん :2006/02/15(水) 00:00:45
>>301
アレと同じ形のカーソルリソースを用意して
WM_SETCURSORでSetCursorを呼び出す

306 名前:デフォルトの名無しさん :2006/02/15(水) 00:08:43
MessageBoxのOKだけ出るダイアログに独自のボタンを一つ追加して、
そのボタンを押したら何かこちらで処理できるようなことは可能ですか?

307 名前:デフォルトの名無しさん :2006/02/15(水) 00:11:26
>>304-305
[+] は*.lnkと一緒であとから追加されてると思われ。
そんなカーソル見当たらんし。

308 名前:デフォルトの名無しさん :2006/02/15(水) 00:13:39
>>306
MessageBoxを独自に作るのが一番早いかと

309 名前:デフォルトの名無しさん :2006/02/15(水) 00:14:15
>>308
わかりました。
ありがとうございました。

310 名前:デフォルトの名無しさん :2006/02/15(水) 00:20:48
>>302
はい、300も別人でした。
これだけだとあれなので、ついでに回答。

>>306
要らないと思うけど一応こんなのもあるみたい。
A reverse-engineered MessageBox()
http://www.codeproject.com/dialog/xmessagebox.asp

311 名前:301 :2006/02/15(水) 00:22:33
>>304, 305
システム標準のマウスカーソルの形を変えても、
エクスプローラでは、その変えたカーソルにも[+]記号が追加されるので、
ImageListかなにかかと思ったんですけど違いますか?
ベッキー等では、システム標準のカーソルに関係なく、決まった形の
アイコンに[+]が付いてくるので、それはそのやり方なのかなと思いますが。。

わかる方いませんでしょうか?




312 名前:デフォルトの名無しさん :2006/02/15(水) 01:23:28
Sleipnir2 みたいなマウスを重ねると青い枠が出てくるような
ボタンとかメニューは自前での実装ですか?
それともWindowsでそうゆうコントロールを用意してるんでしょうか?

313 名前:デフォルトの名無しさん :2006/02/15(水) 01:39:51
>>312
自前です。

314 名前:デフォルトの名無しさん :2006/02/15(水) 03:01:28
ファイル名を渡してExplorerのコンテキストメニュー出すAPI教えてください。

315 名前:デフォルトの名無しさん :2006/02/15(水) 08:43:06
質問です。

Handle= CreateWindowEx(
WS_EX_CLIENTEDGE,WC_LISTVIEW,NULL,
WS_CHILD|LVS_REPORT|LVS_EDITLABELS,
PosX,PosY,Width,Height,
GetDesktopWindow(),(HMENU)id,
GetModuleHandle(NULL),NULL);

でリストビュー作った後にSetParent( Handle, ParentHandle )で
親指定するとWM_NOTIFYメッセージを親に渡してくれないんですが
なんか他にセットすることがあるんでしょうか?
WM_PARENTNOTIFYは渡してるみたいなんですが……。

316 名前:デフォルトの名無しさん :2006/02/15(水) 14:38:38
ネットワークの接続状態はどうやって確認したらいいの?


317 名前:デフォルトの名無しさん :2006/02/15(水) 15:20:05
>>311
ショートカットのアイコンは編集しているみたいだから、カーソルも作ってるのでは
ないか。LoadCursorFromFile() などあるから編集してロードして表示できるのは
確か。編集は bitmap が作れれば、アイコンやカーソルにするのはそんなに面倒でも
ない。

318 名前:デフォルトの名無しさん :2006/02/15(水) 15:32:37
メニューやウィンドウのタイトルバー等に使われている
フォントについての情報を取得する方法はありますか?

319 名前:デフォルトの名無しさん :2006/02/15(水) 16:03:20 ?
GetFont

320 名前:デフォルトの名無しさん :2006/02/15(水) 16:28:13
>>315
WM_NOTIFY は SetParent() の実行にかかわらずコントロール作成時の親に送信される。
WM_NOTIFY の送信先を変更する一般的な方法はおそらく存在しない。

321 名前:デフォルトの名無しさん :2006/02/15(水) 17:05:10
>>316
IP Helperを使う。接続しているアダプタ一覧は以下のようにして得る
DWORD size;
GetIfTable(NULL, &size, FALSE);
PMIB_IFTABLE pIf = malloc(size);
GetIfTable(pIf, &size, FALSE);
for(DWORD i = 0; i < pIf->dwNumEntries; i++){
if (pIf->table[i].dwOperStatus == MIB_IF_OPER_STATUS_CONNECTED){
printf("CONNECTED Interface: %s\n", pIf->table[i].bDescr);
}
}
free(pIf);

322 名前:315 :2006/02/15(水) 17:09:37
>>320
ありゃーそうなのか。
じゃあ親はあらかじめ渡すようにします。
モヤモヤが解消されたので安心。ありがとうございました。

323 名前:デフォルトの名無しさん :2006/02/15(水) 17:42:47
なぜ最初から親を指定しないのか・・・

324 名前:デフォルトの名無しさん :2006/02/15(水) 17:46:23
いいじゃないですか。

325 名前:デフォルトの名無しさん :2006/02/15(水) 18:01:58
>>318
SPI_GETNONCLIENTMETRICS

326 名前:318 :2006/02/15(水) 19:23:28
>>325
まさにそれです。ありがとうございました。

327 名前:306 :2006/02/15(水) 20:27:31
>>310
ありがとうございます!
ばっちり使えました。

328 名前:デフォルトの名無しさん :2006/02/15(水) 21:17:53
質問です。
アプリケーションのメインアイコンを変更するには
そのアプリのリソースを追加・変更するしか方法がないのでしょうか?
アイコンを外部ファイルとして持っておきたいのですが。

329 名前:デフォルトの名無しさん :2006/02/15(水) 21:20:25
あ、質問の内容が不完全でした。
アプリケーションというか、
エクスプローラー等から見えるそのアプリのexeファイルの
アイコンを変えたいのです。


330 名前:デフォルトの名無しさん :2006/02/15(水) 21:53:42
>>316
ネットに接続されているか確認するだけなら、HTTPハンドルを使って適当なサイトに接続すればいい。
接続できればネットにつながってると。

331 名前:デフォルトの名無しさん :2006/02/15(水) 21:56:12
http://nienie.com/~masapico/api_InternetOpen.html

332 名前:デフォルトの名無しさん :2006/02/15(水) 22:28:40
サブストリームの名前がMAX_PATHを超えることはありますか?

333 名前:287 :2006/02/15(水) 23:23:37
はげしく遅レスだしもうどうでもいいけど。
>>298
>それなりに質問の答えになってるような気がする・・・
答になってねーよ。どこにチェックボックスのことが書いてあるよ?マヌケ。
おまえ>>289だろ。心を入れ替えてくだらんレスはやめとけ。

334 名前:デフォルトの名無しさん :2006/02/15(水) 23:29:33
>>333
遅漏の上に粘着と来たか・・・
そうとう腐ってるな?

335 名前:デフォルトの名無しさん :2006/02/15(水) 23:32:33
>>287さん
>>298==>>299==>>300さん
>>334さん
荒らすのやめましょうよ。

336 名前:デフォルトの名無しさん :2006/02/15(水) 23:39:22
指定のドライブが書き込み可能かどうか調べる方法ってありますか?


337 名前:デフォルトの名無しさん :2006/02/15(水) 23:51:29
GetFileAttributes("c:\\")

338 名前:デフォルトの名無しさん :2006/02/16(木) 00:19:14
>>337
ありがとうございました。


339 名前:デフォルトの名無しさん :2006/02/16(木) 02:06:54
>>331
それ使うのダイアルアップ接続の画面出たりしてマズくね?

340 名前:デフォルトの名無しさん :2006/02/16(木) 08:37:52
>>332

ない

341 名前:デフォルトの名無しさん :2006/02/16(木) 10:55:05
>>339
でるの?俺常時接続なもんでわからなくて。

342 名前:デフォルトの名無しさん :2006/02/16(木) 11:09:57
>>341
PPPoEなダイヤルアップで今試したら出た。

343 名前:デフォルトの名無しさん :2006/02/16(木) 17:41:55
>>342
InternetGetConnectedState()だとどうでそ。

344 名前:デフォルトの名無しさん :2006/02/16(木) 18:52:45
じゃぁおれはpingでも進めてみるka

345 名前:デフォルトの名無しさん :2006/02/16(木) 19:16:32
316が求めてるのは
1)どのインターフェースでもいいからインターネットに接続されているか知りたい
2)各インターフェースのうちどれがインターネットかどうか関係なく接続状態なっているか知りたい
3)各インターフェースのうちどれがインターネットに接続されているか知りたい
どれなんだろ?
1)なら>>342、2)なら>>321じゃないかと思うんだが、とりあえず316を待ってみね?

346 名前:デフォルトの名無しさん :2006/02/16(木) 19:18:27
本人はそんなこともわかっていないと思われ。

347 名前:デフォルトの名無しさん :2006/02/16(木) 19:18:33
げ、アンカーミスった。1)なら>>343な。無駄レスすまん

348 名前:デフォルトの名無しさん :2006/02/16(木) 19:19:51
ネットワークと書いてあるようだけど

349 名前:デフォルトの名無しさん :2006/02/16(木) 20:17:36
MessageBoxのMB_ICONINFORMATION、MB_ICONSTOPとかで出てくるアイコンを自前作ったダイアログで表示させたいんだけども、
参考になるサンプルでもないでしょうか?
よろしくお願いします。


350 名前:デフォルトの名無しさん :2006/02/16(木) 20:40:31
ちょっと印刷のことで質問を。
Crystal Report 4.6の帳票印刷してるのですが、
指定した用紙サイズで印刷されない、フォントが急に大きくなるなどの現象に苦しんでいます。
環境は
・プリンタはドット
・帳票の種類が多く、用紙のサイズも多様。
・共有プリンタで複数端末から印刷ジョブを送る。OSは2000/XP中心に色々。
 印刷をする頻度もかなり高い。
・印刷時にダイアログを出して用紙を選択させるのはNG
SetPrinterで用紙を変更しているんですが、3行目に書いたような現象が出て死に掛けました。

用紙サイズの変更とかトラブルなく行うのってどうやればいいんですかね・・・
ちょっとしたアドバイスとか、参考文献の紹介とかでもいいのでなんかお願いします・・・

351 名前:デフォルトの名無しさん :2006/02/16(木) 20:43:37
>>349
user32.dllから取り出せば?

352 名前:デフォルトの名無しさん :2006/02/16(木) 21:13:58
>>349
LoadIcon()のヘルプ見れ
例えばIDI_ASTERISKとか

353 名前:デフォルトの名無しさん :2006/02/16(木) 21:20:51
そこでIDI_INFORMATIONと言わずIDI_ASTERISKというところがなんとも

354 名前:デフォルトの名無しさん :2006/02/16(木) 21:27:51
>>342
うは。サンクス。ちょと修正してくる。

>>343
それ試してみる。

355 名前:デフォルトの名無しさん :2006/02/17(金) 15:25:25
>>332

上限無しじゃない
少なくとも512文字は作れた

356 名前:デフォルトの名無しさん :2006/02/17(金) 16:10:27
ウィンドウを最小化する時
アニメーション(枠線がタスクバーに収まるやつ)させたくないんですが
何か方法ありますか?

357 名前:デフォルトの名無しさん :2006/02/17(金) 16:17:36
>>356
デスクトップを右クリックしてプロパティ(以下略

358 名前:デフォルトの名無しさん :2006/02/17(金) 16:26:32
>>357
APIでどうにかしたいんです
というか、
自己解決しかけてます

WM_COMMANDのSC_MINIMAIZEで
消せばいいかもしれない

359 名前:デフォルトの名無しさん :2006/02/17(金) 16:28:23
>>358
そのアプリケーションだけUIが違うっていうのがそもそも間違いかと
もし不可視にしようとしてるなら、やめておいたほうが良いぞ

360 名前:デフォルトの名無しさん :2006/02/17(金) 16:31:10
よく考えたら
最小化どうでもよかった。

DelphiかBuilderアプリってそんな感じなので
別にいいかと思った

おしまい。

361 名前:デフォルトの名無しさん :2006/02/17(金) 16:35:10
っ [タスクトレイ]

362 名前:デフォルトの名無しさん :2006/02/17(金) 16:41:41
つ ダミーウィンドウ?

363 名前:デフォルトの名無しさん :2006/02/17(金) 16:54:16
>>362
これに近いかな?

隠し親ウィンドウ

364 名前:デフォルトの名無しさん :2006/02/17(金) 17:08:32
リストボックスで、現在選択中の項目が何番目かって、どう知ればいいですか?

365 名前:デフォルトの名無しさん :2006/02/17(金) 17:17:11
>>364
げtくrせl

366 名前:& ◆faj.9Iowjo :2006/02/17(金) 17:35:23
>>365
-1が返ってくる


367 名前:デフォルトの名無しさん :2006/02/17(金) 17:35:31
何かと思った。「げっとかーせる」だなw

368 名前:デフォルトの名無しさん :2006/02/17(金) 17:36:05
-1なのは未選択状態

369 名前:364 :2006/02/17(金) 17:41:38
できた。ありがとう。


370 名前:デフォルトの名無しさん :2006/02/17(金) 17:42:06
>>366
LB_GETCURSEL
Send an LB_GETCURSEL message to retrieve the index of the currently selected item, if any, in a single-selection list box.

LB_GETCURSEL
wParam = 0; // not used; must be zero
lParam = 0; // not used; must be zero

Parameters
This message has no parameters.

Return Values
In a single-selection list box, the return value is the zero-based index of the currently selected item. If there is no selection, the return value is LB_ERR.



371 名前:364 :2006/02/17(金) 18:00:37
もう1つ聞きたいんだけど、
環境変数をセットする時みたいなリストって、
あれはなんていうの?
2次元配列的にリスト作れるやつ。

372 名前:デフォルトの名無しさん :2006/02/17(金) 18:06:09
環境変数をセットするダイアログを見に行ってしまった・・・
あれはリストコントロールのレポートビューだよ

373 名前:デフォルトの名無しさん :2006/02/17(金) 18:07:44
>>372
おまえエスパーだろ
>>371が何を伝えようとしてるのかわからなかったぞ…

374 名前:371 :2006/02/17(金) 18:25:59
>>372
ありがとう、わかりました。

375 名前:371 :2006/02/17(金) 19:38:08
また質問。
コモンダイアログの「名前を付けて保存」で、
lpstrFileに保存名を入れると思うんだけど、
入力した文字列をどうやって取得したらいいですか?

376 名前:デフォルトの名無しさん :2006/02/17(金) 19:41:25
ハァ?
strcpyでもなんでもしろや

377 名前:375 :2006/02/17(金) 19:50:13
>>376
何を参照すればいいのかわからないため、strcpyできんのです。

378 名前:デフォルトの名無しさん :2006/02/17(金) 19:52:07 ?
MSDN見ろよ

379 名前:デフォルトの名無しさん :2006/02/17(金) 19:52:10
同じ物を参照汁

380 名前:375 :2006/02/17(金) 20:06:27
>>379
同じものとは?すみません、本当にわからなくて困ってます。

381 名前:デフォルトの名無しさん :2006/02/17(金) 20:11:16 ?
Pointer to a buffer that contains a file name used to initialize the File Name edit control. The first character of this buffer must be NULL if initialization is not necessary.

When the GetOpenFileName or GetSaveFileName function returns successfully, this buffer contains the drive designator, path, file name, and extension of the selected file.

382 名前:親切な俺 :2006/02/17(金) 20:16:05
ファイル名を含むバッファへの指針は以前はよくFile Nameエディット・コントロールを初期化していました。
初期化は必要でないなら、このバッファの最初のキャラクタがNULLであるに違いありません。

GetOpenFileNameかGetSaveFileName機能が首尾よく戻るとき、このバッファは選択された
ファイルのドライブ指示子、経路、ファイル名、および拡大を含んでいます。


383 名前:は@ c178.016.c3-net.ne.jp ◆cplnFO9T0I :2006/02/17(金) 20:21:16 ?
指定したフォルダからファイルリストを取得する方法ってありますか?
出来たら作成日時とかも取得できるといいです。

384 名前:デフォルトの名無しさん :2006/02/17(金) 20:26:55
>>383
王道としてはFindFirstFile方面>ファイルリスト

385 名前:デフォルトの名無しさん :2006/02/17(金) 20:41:46
파일 이름을 초기화하기 위하여 이용되는 파일 이름을
포함하는 완충기에 포인터는 통제를 편집한다.
초기 설정이 필요하지 않으면 이 완충기의 첫번째
특성은 무효 이어야 한다.
GetOpenFileName또는GetSaveFileName기능이
성공적으로 돌려보낼 때, 이 완충기는 선정한
파일의 드라이브 지명자, 경로, 파일 이름,
및 연장을 포함한다.


386 名前:デフォルトの名無しさん :2006/02/17(金) 20:51:20
意味不明なきちゃない記号が表示されてるよ

387 名前:デフォルトの名無しさん :2006/02/17(金) 20:51:59
>>385
それ、なんて日本語?


388 名前:デフォルトの名無しさん :2006/02/17(金) 21:10:50
>>386
謝罪と賠償を要求する

389 名前:デフォルトの名無しさん :2006/02/17(金) 22:14:31
エクスプローラーの機能を拡張することってできますか?


390 名前:デフォルトの名無しさん :2006/02/17(金) 22:21:55
>>389
シェルエクステンション

391 名前:デフォルトの名無しさん :2006/02/17(金) 23:36:05
http://www.print-driver.com/
ここで販売されているような、
あたかも通常のプリンタで印刷するかの操作で、
GIFファイルを作成できるようなプリンタドライバ(?)を
作りたいと考えております。(スレ違いでしたら、申し訳御座いません。)

どなたか、上記のような所謂バーチャルプリンタとでもいいましょうか、
そのようなアプリケーション又はドライバ又はiniファイルなどの作り方、導入方法をご存知な方がいらっしゃいましたら、
教えてください。おながいします。

スレ違いでしたら、導いてください○rz...

392 名前:デフォルトの名無しさん :2006/02/17(金) 23:55:36
>>391
DDK

393 名前:は@ c178.016.c3-net.ne.jp ◆cplnFO9T0I :2006/02/18(土) 00:24:47 ?
>>384
最初どの様に結果が出るのか解らなかったんですが、
2番目の引数に設定したWIN32_FIND_DATA型で帰ってくるんですね。
瞬答ありがとうございました。

394 名前:デフォルトの名無しさん :2006/02/18(土) 00:56:10
VisualStudioで、非MFCで、C++なアプリの場合、文字列クラスはどうするもんなんですか?
atlstr.h(CString) でも string でも好きな方使えやって感じでしょうか?

395 名前:デフォルトの名無しさん :2006/02/18(土) 00:57:43
オープンしたソケットで利用中のNICのMACアドレスを得る方法はありますでしょうか?
接続元、接続先のMACアドレスどちらでもかまいません。

396 名前:デフォルトの名無しさん :2006/02/18(土) 00:57:50
スレ違い。

397 名前:デフォルトの名無しさん :2006/02/18(土) 02:09:34
WinAPIは永遠に不滅です。

398 名前:は@ c178.016.c3-net.ne.jp ◆cplnFO9T0I :2006/02/18(土) 02:23:33 ?
ふと気になったんですが、FindNextFileでファイルの情報を見ていった後
全部のファイルを列挙し終わったことを検知するのにはどうすればいいんでしょうか?

399 名前:デフォルトの名無しさん :2006/02/18(土) 02:30:34
MSDNに書いてるだろ

400 名前:デフォルトの名無しさん :2006/02/18(土) 02:33:08
もしくは、ぐぐれ

401 名前:デフォルトの名無しさん :2006/02/18(土) 03:40:11
列挙中にディレクトリに新規ファイルを作成するなどしてハマッただけだろ。

402 名前:デフォルトの名無しさん :2006/02/18(土) 07:53:09
リストビューコントロール(SysListView32)を単独でCreateWindowして使っています。何かの子ウィンドウにはしていません。

A) 現在選択されているアイテムのインデックス番号を取得するにはどうしたらよいのでしょうか? (LVS_SINGLESELでたった一つしか選択できないようにしています。)

リストボックスの場合はLB_GETCURSELメッセージで取得できました。

でもリストビューにはそれに相当するものが見当たりません。

思いつくのはLVM_GETITEMメッセージで全アイテムを一つ一つstate & LVIS_SELECTEDチェックする、というものですが、ちょっとバカみたいな気がするのですが・・・

B) あと、カラムヘッダの部分を右クリックすると暴走してしまうんですが、これはCOMCTL32のバグなんでしょうか? リストビューを他のウィンドウの子ウィンドウにしていると暴走しないみたいなんですが・・・Win98+IE5.5でもWin2000+IE6.0でもそうなります。

以下、選択アイテム検出部がリストボックスのものになっています。

#include <windows.h>
#include <stdio.h>
#include <commctrl.h>
void main(){
  HINSTANCE hInst = GetModuleHandleA(NULL);
  InitCommonControls();
  HWND hwnd = CreateWindowA("SysListView32", "LIST", WS_VISIBLE | LVS_REPORT | LVS_SINGLESEL, 20, 20, 200, 180, NULL, NULL, hInst, NULL);
  if (hwnd == NULL){
    printf("CreateWindow() error\n");
    exit(-1);
  }

403 名前:デフォルトの名無しさん :2006/02/18(土) 07:57:03
  SendMessageA(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
  LVCOLUMNA column;
  column.mask = LVCF_TEXT | LVCF_WIDTH;
  column.cx = 48;
  column.pszText = "No.";
  SendMessageA(hwnd, LVM_INSERTCOLUMNA, 0, (LPARAM)&column);
  column.pszText = "Name";
  SendMessageA(hwnd, LVM_INSERTCOLUMNA, 1, (LPARAM)&column);
  LVITEMA item;
  item.iItem = 0;
  item.iSubItem = 0;
  item.mask = LVIF_TEXT;
  item.pszText = "0";
  SendMessageA(hwnd, LVM_INSERTITEMA, 0, (LPARAM)&item);
  item.iItem = 1;
  item.pszText = "1";
  SendMessageA(hwnd, LVM_INSERTITEMA, 0, (LPARAM)&item);
  item.iItem = 2;
  item.pszText = "2";
  SendMessageA(hwnd, LVM_INSERTITEMA, 0, (LPARAM)&item);

404 名前:デフォルトの名無しさん :2006/02/18(土) 07:57:38
 item.iSubItem = 1;
  item.pszText = "a";
  SendMessageA(hwnd, LVM_SETITEMTEXT, 0, (LPARAM)&item);
  item.pszText = "b";
  SendMessageA(hwnd, LVM_SETITEMTEXT, 1, (LPARAM)&item);
  item.pszText = "c";
  SendMessageA(hwnd, LVM_SETITEMTEXT, 2, (LPARAM)&item);
  MSG msg;
  for(;;){
    GetMessage(&msg, NULL, 0, 0);
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    if ((msg.message == WM_KEYDOWN) && (msg.wParam == VK_RETURN)){
      LRESULT index = SendMessageA(hwnd, LB_GETCURSEL, 0, 0);
    }
    if (msg.message == WM_SYSCOMMAND){
      if (msg.wParam == SC_CLOSE){
        exit(0);
      }
    }
  }
}

405 名前:デフォルトの名無しさん :2006/02/18(土) 08:04:19
>>402
> A) 現在選択されているアイテムのインデックス番号を取得するにはどうしたらよいのでしょうか? (LVS_SINGLESELでたった一つしか選択できないようにしています。)
LVM_GETNEXTITEM

406 名前:デフォルトの名無しさん :2006/02/18(土) 08:12:38
>>402
子ウィンドウじゃないなんてアリエナイ

407 名前:デフォルトの名無しさん :2006/02/18(土) 08:14:42
コンソールアプリとして作ってるとか、バカじゃねーの・・・

408 名前:デフォルトの名無しさん :2006/02/18(土) 08:15:42
メッセージループも無駄が多いな

409 名前:デフォルトの名無しさん :2006/02/18(土) 08:49:19
>>394

LPTSTR

410 名前:デフォルトの名無しさん :2006/02/18(土) 10:00:12
>>394
WinAPIスレとしてはstd::stringを使うなら、
それよりもstd::basic_string<TCHAR>を使えと言っておく。

411 名前:デフォルトの名無しさん :2006/02/18(土) 15:41:19
ttp://msdn.microsoft.com/library/en-us/vccore/html/_core_.2f.section_link.asp?frame=true
section name に使える文字と字数の上限は何でしょうか?

412 名前:デフォルトの名無しさん :2006/02/18(土) 16:24:53
>>411
ASCII8byteじゃなかったかな

413 名前:デフォルトの名無しさん :2006/02/18(土) 19:42:30
// 画面消去
HBRUSH oldbr = (HBRUSH)SelectObject(g_hdcOff, g_hbrBg);
SelectObject(g_hdcOff, GetStockObject(WHITE_BRUSH));
Rectangle(g_hdcOff, -1, -1, CLIENT_WIDTH+1, CLIENT_HEIGHT+1);
SelectObject(g_hdcOff, oldbr);


でうまく画像が消去できません」。
ヘルプ

414 名前:デフォルトの名無しさん :2006/02/18(土) 19:46:13
>>413
左上は(0,0)の筈だが(-1,-1)ってどこから書きたいんだ?

415 名前:デフォルトの名無しさん :2006/02/18(土) 19:49:26
>>413
FillRectはつかわんの?

416 名前:デフォルトの名無しさん :2006/02/18(土) 19:58:52
ExtTextOut

417 名前:デフォルトの名無しさん :2006/02/18(土) 19:59:38
まずは各APIの戻り値を調べるべきだな。

418 名前:デフォルトの名無しさん :2006/02/18(土) 20:57:20
SetWindowsHookExのWH_SHELLを用いて
ウィンドウの作成/破棄されたかどうか調べているのですが、
一部のアプリケーションについては、
HSHELL_WINDOWCREATEDは送られてくるのですが、
HSHELL_WINDOWDESTROYEDは送られてきません。
また、両方とも送られてこないアプリケーションも存在します (例えば cmd.exe)。

送られてこない原因は何なのでしょうか?
また他の方法でウィンドウの作成/破棄を調べることはできるでしょうか?

419 名前:418 :2006/02/18(土) 21:19:31
WH_SHELLの代わりにWH_CBTで試してみましたが、結果は変わりませんでした。

420 名前:デフォルトの名無しさん :2006/02/18(土) 22:06:57
TextOut(g_hdcOff, i2*cs, i*cs, str, (int)strlen(str));


で文字が正常に表示されません!
低い確率で、ちゃんと表示さてるときはあります。
ヘルプー

421 名前:デフォルトの名無しさん :2006/02/18(土) 22:08:05
帰れカス

422 名前:デフォルトの名無しさん :2006/02/18(土) 22:10:56
>>420
引数のそれぞれが適切な値か確かめてみる。
GetLastErrorで何が返ってくるか確かめる。

これくらいをまずやってから来い。

423 名前:デフォルトの名無しさん :2006/02/18(土) 22:15:56
あと「正常に表示されない」じゃなく、症状を具体的に他人にもわかるように書く事。
「腹が痛い」だけで原因を突き止められる医者はいないだろ?

424 名前:デフォルトの名無しさん :2006/02/18(土) 22:26:31
文字化けみたいなかんじで、表示される文字が変わってしまいます。

http://read.kir.jp/file/read38074.txt
ソースです

425 名前:デフォルトの名無しさん :2006/02/18(土) 22:35:07
CreateFontのパラメータが良くない可能性が高い。
特に理由が無い限りCreatePointFontを使う方が確実で簡単。

426 名前:デフォルトの名無しさん :2006/02/18(土) 22:47:34
falseとFALSEを混同するのはよくないよ。

427 名前:デフォルトの名無しさん :2006/02/18(土) 22:54:56
な直りましt!!!!!!!!!!!!!!!!!!!!!

どうやら確保していた変数の量を超えていたらしいです!


オーバーフローっていのかな?


うぉぉぉぉ!!!!
俺っておばかチン!


ハッハッハハハハハハッハア
正義は勝つ!!

428 名前:デフォルトの名無しさん :2006/02/18(土) 23:00:04
( ゚キリル゚) ・・・

429 名前:デフォルトの名無しさん :2006/02/18(土) 23:02:58
だから死ねって

430 名前:デフォルトの名無しさん :2006/02/19(日) 00:06:09
窓出してメモコントロール表示するところまではいったんですが
ウィンドウの下側に貼り付ける方法とスプリッターの出し方がわかりません。
これってどちらもウィンドウのリサイズとかを検出して
自前で実装する物なんでしょうか?

431 名前:デフォルトの名無しさん :2006/02/19(日) 00:38:22
editコントロールで数字のみ入力を受け付けることができるようにするには、
どうすればいいですか?

432 名前:デフォルトの名無しさん :2006/02/19(日) 00:42:21
すぐ上にSTATICコントロールを置いておき
「↓数字だけ入れてね」とでも書いておく

433 名前:デフォルトの名無しさん :2006/02/19(日) 00:51:20
>>431
スタイルにES_NUMBER付けとけばとりあえず数字以外の入力の抑止はできるが
コピペは抑止できないので、後はごにょごにょする。
めんどくさければ432の如く

434 名前:デフォルトの名無しさん :2006/02/19(日) 00:56:59
>>432 は天才だと思う

435 名前:431 :2006/02/19(日) 01:14:13
432さん、433さんありがとうございます。
一応432さん提案のコメントも置いておきますが、
無法者もいるとおもいますので、
433さんにごにょごにょを教えていただきたいです。

436 名前:デフォルトの名無しさん :2006/02/19(日) 02:04:15
サブクラス化

437 名前:433 :2006/02/19(日) 02:09:24
>>435
貼り付けで考えられるのは
1.Ctrl+Vで貼り付け
2.右クリックメニューから貼り付け
3.別のプログラムからWM_SETTEXTで無理やり入力

1.WM_CHARで数字以外の入力は全てはじく
(CTRL+Vは抑止できるが、CTRL+C,CTRL+X,CTRL+Zも使えなくなるので
 その動作を残したければその点も考慮にいれて書く)
2.WM_CONTEXTMENUで抑止してしまう(コピー等もできなくなるが・・・)
3.これは考えなくてもいいと思うけど一応

あと、EN_CHANGEでチェックするのもありか?

MFCベースのサンプルがいろいろあるから
あとは適当に参考にしてやってください。
ttp://www.codeproject.com/editctrl/

438 名前:431 :2006/02/19(日) 02:23:46
ありがとうございました。
結構手間がかかるようですが、
なんとかやれそうです。

439 名前:デフォルトの名無しさん :2006/02/19(日) 02:23:46
>>430
どちらもAPIでは用意されていない。

440 名前:デフォルトの名無しさん :2006/02/19(日) 02:25:21
コントロールに表示されるフォントの種類やサイズはどうすれば変えられますかね?
SelectObjectを使ってできたりするんでしょうか?

441 名前:デフォルトの名無しさん :2006/02/19(日) 02:26:02
>>391
>>392も書いてるけど要DDKだし
↓あたりで
【WDM】Windows Driver Model相談室【デバドラ】
http://pc8.2ch.net/test/read.cgi/tech/1063453024/

442 名前:デフォルトの名無しさん :2006/02/19(日) 08:14:24
>>440
CreateFont
あとは自分で

443 名前:デフォルトの名無しさん :2006/02/19(日) 10:21:50
MFCや.NET Frameworkは使わず、
API直使用でMDIのアプリ(と言ってもMDIのフレームとドキュメントウィンドウが出るだけ)を作りました
そのフレームにCreateToolbarExでツールバーをつけたのですが、
その状態でドキュメントウィンドウを作ると、初期位置でタイトルバーがツールバーの下に隠れてしまいます。

ツールバー付きのMDIアプリって、どうやって位置調整してるのでしょうか?
やっぱりMDICLIENTのサブクラス化ですかね?

444 名前:デフォルトの名無しさん :2006/02/19(日) 12:45:13
>>440
WM_SETFONT

445 名前:440 :2006/02/19(日) 14:51:53
>>444
うひょー
ありがとう

446 名前:デフォルトの名無しさん :2006/02/19(日) 16:08:59
>>443
猫でも分かる...に例がある。tool bar の高さで調整したと思う。
SizeWindow() で加味したはず。
この部分は何年も前のソースを今も使いまわしていて、どうしているか
気にもしなくなった。

447 名前:443 :2006/02/19(日) 18:35:17
>>446
ありがとうございます、後で見てみます

448 名前:デフォルトの名無しさん :2006/02/19(日) 19:32:37
警告 W8057 first.cpp 31: パラメータ 'hPrevInst' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 first.cpp 31: パラメータ 'lpsCmdLine' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 外部シンボル '_main' が未解決(F:\PROGRAM FILES\BORLAND\BCC55\LIB\C0X32.OBJ が参照)
上のような警告やエラーが出てきてexeファイルが作られません。
どうすればいいでしょう。ソースは猫でもわかる...のwebサイトからとってきたので間違いはないと思います。

449 名前:デフォルトの名無しさん :2006/02/19(日) 19:35:46
>>448
ttp://gimite.ddo.jp/bcbqtree/qtreemain.cgi?mode=thread&thread=341

450 名前:448 :2006/02/19(日) 19:46:11
>>449
ありがとうございました。解決しました。

451 名前:デフォルトの名無しさん :2006/02/19(日) 20:06:50
>>448
その警告はC++ならこのように仮引数の名前を与えなければよい。
int WINAPI WinMain(HINSTANCE hinst, HINSTANCE, PSTR, int nCmdShow)

452 名前:デフォルトの名無しさん :2006/02/19(日) 23:48:48
FILE, fopen, fgets, EOFに相当するAPIってありますか?
Cなのにこれらの関数が使えません><

453 名前:デフォルトの名無しさん :2006/02/19(日) 23:57:01
>>452
何故使えない?
それはともかくそれぞれAPIでやるとなると
HANDLE, CreateFile, ReadFile(行単位でなくfreadに近い), ReadFileを呼んで判断するとなる。

454 名前:デフォルトの名無しさん :2006/02/20(月) 00:49:55
なぜ使えないのか凄く興味あるw
#include<stdio.h>してる?パスは通っている?
あと質問するは、なんてエラーが出てるか書こうね。

455 名前:デフォルトの名無しさん :2006/02/20(月) 06:57:56
おそらくWindowsCEだな。
本見るとつかえるようなつかえないようなよくわからん表現になってるw
だから、とりあえず使わないでおこうかってなるw

456 名前:デフォルトの名無しさん :2006/02/20(月) 08:33:02
そういうコーディング規約のプロジェクトなのかも

457 名前:デフォルトの名無しさん :2006/02/20(月) 12:37:48
HTMLのフレームの様にウィンドウを分割する方法を教えて下さい。
MFCにはそれっぽいものがあるようなのですが……。
ベタのAPIだと機能として提供はされていないのでしょうか?


458 名前:デフォルトの名無しさん :2006/02/20(月) 12:43:20
>>457
自前で作るしかない

459 名前:デフォルトの名無しさん :2006/02/20(月) 12:58:17
素直にMFC使え。ウィザードで一発。

460 名前:デフォルトの名無しさん :2006/02/20(月) 13:00:17
TSplitter

461 名前:デフォルトの名無しさん :2006/02/20(月) 13:11:25
457じゃないけどWin32APIの素プリッ他のサンプルってないですかね

462 名前:デフォルトの名無しさん :2006/02/20(月) 13:14:14
・ウィンドウAに子ウィンドウBと子ウィンドウCをフレーム分の間をあけて貼り付ける。
・フレーム部分でマウスドラッグが発生したらBとCのウィンドウサイズ・位置を適当に調整する。

だけ。

463 名前:デフォルトの名無しさん :2006/02/20(月) 13:14:16
>>461
MFCのソース

464 名前:デフォルトの名無しさん :2006/02/20(月) 13:31:04
>>462
まぁ、確かにその通りなんだが、
・スプリッタ自身がリサイズされた時の子ウィンドウの再配置
・上記のときのスプリッタの位置の調整
・3分割もサポートするか。3分割はスプリッタのネストにするか。
・子ウインドウのワクを、どのように(どんなデザインで)描くか。
とか考えながら再利用できるものにしようとすると、えらくめんどくさくなる。
この手のWidget、もう2,3回書いた気がする。

C++から使える、MFCじゃないウィジェットセット、どこかに無料で転がってないもんだろか。
look&feelはMFC互換で。

465 名前:デフォルトの名無しさん :2006/02/20(月) 13:33:55
457です。
とりあえず>>462さんに従って適当にやってみます。
どうもありがとうございました。

466 名前:デフォルトの名無しさん :2006/02/20(月) 13:49:47
>>464
【C++】マイナーGUIツールキット
ttp://pc8.2ch.net/test/read.cgi/tech/1065627704/

MFC的つーとwxWidgetあたりか

467 名前:デフォルトの名無しさん :2006/02/20(月) 14:02:35
Qtは大分違うしなぁ

468 名前:デフォルトの名無しさん :2006/02/20(月) 14:03:06
>>457

VC のチュートリアルに載っているでしょ。

469 名前:デフォルトの名無しさん :2006/02/20(月) 14:04:30
ダメでした。

470 名前:デフォルトの名無しさん :2006/02/20(月) 14:12:34
>>469
何が?

471 名前:デフォルトの名無しさん :2006/02/20(月) 14:16:01
>>469
人生はリセットボタンはなくても電源ボタンならあります
気が向いたら試してみてください

っ П

472 名前:デフォルトの名無しさん :2006/02/20(月) 14:16:34
ぽちっとな

473 名前:デフォルトの名無しさん :2006/02/20(月) 15:23:50
>>457-466
WTLを忘れるな。

474 名前:デフォルトの名無しさん :2006/02/20(月) 15:45:22
>>473
WTLは確かにすばらしいけど、ATLがなければ使えないから。
無料で〜という条件にあたらない。

まあ、Windowsな以上、
VCが、さまざまな点において、最適だとは思うけど。

475 名前:デフォルトの名無しさん :2006/02/20(月) 16:07:22
VC Express に WTL つっこんで、サンプルビルド出来たんだが

476 名前:デフォルトの名無しさん :2006/02/20(月) 16:08:07
MFCWTLATLなんてお呼びじゃねーんだよ

477 名前:デフォルトの名無しさん :2006/02/20(月) 16:37:46
SDKだけでコーディングするのはいいんだけど、標準的なメッセージのハン
ドラが記述してなかったり、時間のかかる処理をスレッド化してなくて、
ウィンドウが真っ白になるようなアプリケーションは組まないで頂きたい。

いまどき、クラスも理解できなくて、C+SDKで生産性の低いコーディング
スタイルしかできないのを棚に上げて、MFCや、WTL,ATLの所為にされても
なぁ。

478 名前:デフォルトの名無しさん :2006/02/20(月) 17:53:50
MFCWTLATLみたいな生産性低いの使わないで.NET Framework使え。

479 名前:デフォルトの名無しさん :2006/02/20(月) 17:55:54
>>474
ATLって無料で配布しているような…

480 名前:デフォルトの名無しさん :2006/02/20(月) 18:22:07
>>478
あんなクソフレームワーク誰が使うか
自分で作ったほうが数倍軽いわ

481 名前:デフォルトの名無しさん :2006/02/20(月) 18:54:31
>>477は勘違いでいっぱいのような気がする。

482 名前:デフォルトの名無しさん :2006/02/20(月) 19:33:07
>>480
論点がずれてます

483 名前:デフォルトの名無しさん :2006/02/20(月) 20:02:01
論点なんて関係ありません

484 名前:デフォルトの名無しさん :2006/02/20(月) 20:10:13
まずはもちついてスレタイ100回嫁と

485 名前:デフォルトの名無しさん :2006/02/20(月) 20:13:21
はい、だから.NETなんてイラネといいました

486 名前:デフォルトの名無しさん :2006/02/20(月) 20:24:36
暇人同士仲良くしろよ

487 名前:デフォルトの名無しさん :2006/02/20(月) 20:31:22
>>486 がいいこといった。
よろしく頼むぜ >>486


488 名前:デフォルトの名無しさん :2006/02/20(月) 20:40:45
GetModuleFileNameやGetModuleFileNameExを使って取得されるパスの長さって_MAX_PATHより長くなることってあるんですか?
_MAX_PATH以内確定ってことでプログラムしてるんですが、まずいですか?

489 名前:デフォルトの名無しさん :2006/02/20(月) 20:45:21
あるよん。

\\?\
で始まる形式のとき。

詳しくはmsdnみるよろし。


ま、普通は考慮せんでもええけどね。


490 名前:デフォルトの名無しさん :2006/02/20(月) 20:47:26
いい加減Windowsから char[]とかchar*とか追放しろよ。
そんなことだからいつまでも安定動作しないんだよ。

491 名前:デフォルトの名無しさん :2006/02/20(月) 20:50:27
ハァ?

492 名前:デフォルトの名無しさん :2006/02/20(月) 20:59:33
char *shineyo490;

493 名前:デフォルトの名無しさん :2006/02/20(月) 21:01:50
>>488
_MAX_PATHはCRTの定数。WindowsSDKはMAX_PATH。

494 名前:デフォルトの名無しさん :2006/02/20(月) 22:26:21
Cの関数とWindowsAPIの両方とも使っているとき、
_MAX_PATHとMAX_PATHのどっちを使うべきか悩む。
_UNICODEとUNICODEとか・・・。

495 名前:デフォルトの名無しさん :2006/02/20(月) 22:34:02
#define _MAX_PATH_ MIN(_MAX_PATH,MAX_PATH)
#define _UNICODE_ _UNICODE&&UNICODE

496 名前:デフォルトの名無しさん :2006/02/20(月) 22:38:02
>>495
#define _UNICODE_ _UNICODE||UNICODE
の間違いじゃないか?

497 名前:デフォルトの名無しさん :2006/02/20(月) 22:52:25
つーかstdafx.hでどっちもdefineしときゃ問題ないねん

498 名前:デフォルトの名無しさん :2006/02/20(月) 22:53:48
Windowsのどこかのヘッダにこんなことをしている箇所がある。
「_UNICODEが定義されているけれどUNICODEが定義されていなければUNICODEを定義する。
UNICODEが定義されているけれど_UNICODEが定義されていなければ_UNICODEを定義する。」
だから混同してもまあいいかという気持ちでいる。

またUNICODE(TCHAR)に関しては、CRTとWinAPIを比べたら
まず間違いなくWinAPIでお世話になることが多いから、UNICODEを俺は使うことにしている。
どうせ<tchar.h>は標準でもなんでもないし。

それに合わせて_MAX_PATHではなくMAX_PATHを使う。

あと_MAX_PATHはVC++独自。標準C/C++に存在するのはFILENAME_MAX。

499 名前:デフォルトの名無しさん :2006/02/20(月) 23:06:03
MSDNにかかれているWindowsAPIの引数で_TCHARを使ってるのなんてないだろ。いずれもTCHAR。
MAX_PATHもWindowsAPIでは標準なものだ。

500 名前:デフォルトの名無しさん :2006/02/21(火) 10:58:32
CreateWindowの前でSetLastError(ERROR_SUCCESS)としておいて
WM_CREATEメッセージでGetLastErrorでエラーコードを調べると
ERROR_FILE_NOT_FOUNDが返ってくるのですが・・・。
これは気にしないで構わないでしょうか?
ちなみにWinXP SP1だと問題なく(ERROR_SUCCESSが返ってくる)、
Win2k SP4で発生しています。



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