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


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

Win32API質問箱 Build26
251 名前:デフォルトの名無しさん :04/12/31 17:59:17
>222
winsock

252 名前:デフォルトの名無しさん :04/12/31 18:11:22
部下の人数を調べるAPIを教えてください。

253 名前:デフォルトの名無しさん :04/12/31 18:15:26
>>252
ない。
以上。

254 名前:デフォルトの名無しさん :04/12/31 18:38:56
>>218
wininetを使った方がわりと楽

255 名前:デフォルトの名無しさん :04/12/31 20:20:07
>>222
Winsock直叩き : ものすごく単純な場合は、これでもいい。
WinInet : これが無難かな
URLモニカ : COMに慣れてるならこれも・・・でもやりすぎ?
IEコンポーネント : リソース使いまくりだけど、これも手

256 名前:デフォルトの名無しさん :04/12/31 21:12:19
>>218
これをコピペすれば、とりあえずお前さんの言っていることは実現できる。
ttp://nienie.com/~masapico/api_sample_inet04_c.html

257 名前:デフォルトの名無しさん :04/12/31 21:18:55
>>222
xmlhttp:スクリプトからも使える。
中身の解析とかレンダリングしないのでIEコンポーネント使うぐらいなら、こっち。

258 名前:デフォルトの名無しさん :04/12/31 21:43:00
WinMain の引数として渡される (最初の引数の) HINSTANCE は、
GetModuleHandle(NULL) で得られる HMODULE と同一視してもよいのでしょうか?

MSDN を見てもそのような記述が見当たりませんでした。
DLL であれば HINSTANCE と HMODULE は同一視できると
ttp://msdn.microsoft.com/library/en-us/dllproc/base/dllmain.asp
に書かれているのですが。


259 名前:デフォルトの名無しさん :04/12/31 21:46:31
>>258
同一視できるよ。

260 名前:デフォルトの名無しさん :04/12/31 21:58:43
Win16の時代は不可で、windowsx.hのGetMod~Inst~使ってた希ガス

261 名前:デフォルトの名無しさん :04/12/31 22:14:25
>260
なによその~は、ふざけてるの?

262 名前:デフォルトの名無しさん :04/12/31 22:15:23
>>261
まだロングファイルネームを使えない人なんだよ、そっとしておいてあげようよ。

263 名前:258 :04/12/31 22:41:32
>>259-260
ありがとうございます。
今まで適当なテストプログラムを書いて同一視できるか試したことがあるのですが、
「たまたま動いてるだけかもしれない」と不安でした。

また、書き込んだ後にもう一度 MSDN を調べてみたのですが、
ttp://msdn.microsoft.com/library/en-us/vclib/html/_mfc_afxwininit.asp
の Example の最初の方に同一視している部分がありました。
確かに同一視できるようですね。

264 名前:デフォルトの名無しさん :04/12/31 23:08:02
>>263
ちなみにCのスタートアップルーチンもWinMain(GetModuleHandle(NULL), ってやっていると思う。

265 名前:デフォルトの名無しさん :05/01/01 00:34:44
>>218
URLDownloadToFile()

266 名前:デフォルトの名無しさん :05/01/01 00:46:38
>256
だからどうしたの?

267 名前:245 :05/01/01 01:35:43
あれ?とっくに解決してた(>248)のですが・・・
まあどうもです。

268 名前:デフォルトの名無しさん :05/01/01 06:18:43
>>267
解決したならどうやって解決したか書いておいて
もらいたく候。
・情報共有
・騙り「解決しました」防止

269 名前:デフォルトの名無しさん :05/01/01 08:11:29
>268
いやです。ここの情報提供で解決したわけではないので。
あけましておめでとうございます。

270 名前:デフォルトの名無しさん :05/01/01 11:40:10
お前らって部下何人くらいいんの?

271 名前:デフォルトの名無しさん :05/01/01 11:44:22
>>270
>>250


272 名前:  :05/01/01 12:09:06
jpegの読み込み(というかbmpみたいなデータに変換)
って関数用意されてないんでしょうか?

273 名前:デフォルトの名無しさん :05/01/01 12:10:15
お前らって部下何人くらいいんの?

274 名前:デフォルトの名無しさん :05/01/01 12:11:55
>270
2人から5人

275 名前:デフォルトの名無しさん :05/01/01 12:12:46
>272
人に質問するのにそういう聞き方はおかしいと
思わないか?

276 名前:デフォルトの名無しさん :05/01/01 12:20:30
 >273
お前は?

277 名前:デフォルトの名無しさん :05/01/01 12:24:37
>276
俺は部下70人いたけど今は逃げ出して家にいるから部下なし。
うつ病ってのは便利だねー

278 名前:デフォルトの名無しさん :05/01/01 13:37:05
>>272
GDI+にならあったような予感。
確認するのは面倒だからそれらしいとこ探してみてくれ。

279 名前:205 :05/01/01 14:31:06
>>205
WM_ACTIVATEを受け取ったときにフックをかけなおすことでOKでした。
どうもお邪魔しました。

280 名前:デフォルトの名無しさん :05/01/01 14:36:50
>>272
OleLoadPictureてのもある

281 名前:デフォルトの名無しさん :05/01/02 00:45:55
質問です。
ダイアログ内にComboBox(リスト表示)を配置しているのですが、
それをクリックしたときにリストが出ないのです。
↓↑キーで内容は出るのですが、下に描画されるウインドウが出ないです。
何か必要な処理があるのでしょうか?

282 名前:デフォルトの名無しさん :05/01/02 01:03:16
ウィンドウの高さ見てみろ、小さい値になってないか?

283 名前:デフォルトの名無しさん :05/01/02 01:04:48
ウィンドウ=ComboBox

284 名前:281 :05/01/02 01:37:03
>>282
ありがとうございます。
リスト状で標準時のサイズに気づかなかったようです。

できました。



285 名前:デフォルトの名無しさん :05/01/02 08:07:41
お前ら部下いないんじゃねーの?

286 名前:デフォルトの名無しさん :05/01/02 10:01:35
いないが、それがどうした。

部下を抱えて胃に穴を開けたくないから、一生プログラマやるつもりなんだけど。
むしろ、管理職になるよりも、一生プログラマのほうが難しいんだよな。
プログラマとして一流になれずに脱落したりリストラされた者が管理職やSEになる。

287 名前:デフォルトの名無しさん :05/01/02 10:16:29
>286
別にいないことが悪いとは一言も言ってないが・・・
お前自身が部下いないとダメだと思ってるから
そういう書き込みになるんじゃねーの?

288 名前:デフォルトの名無しさん :05/01/02 10:16:55
>プログラマとして一流になれずに脱落したりリストラされた者が管理職やSEになる。

何の夢見てんだ?こいつは。

289 名前:デフォルトの名無しさん :05/01/02 12:57:46
>288
そっとしといてやれ

290 名前:デフォルトの名無しさん :05/01/02 13:21:51
>>288
うちの職場はそうだよ。

プログラマ→SEは、一見ステップアップに見えるし、そういう言われ方をしているけど、
実際の人の動きを見ると、プログラマとしてやっていけなくなった人がSEになってる。
本人の気持ちとやる気に配慮して、ステップアップという建前にしているだけなんだよね。

いくらでも交代の効く兵隊プログラマは別だよ。あんなのただの奴隷だから。

291 名前:デフォルトの名無しさん :05/01/02 13:57:00
FillRgn(hdc , hrgn[0] , GetStockObject(BLACK_BRUSH));

void*' から非 'void' 型への変換には明示的なキャストが必要です
三番目の引数に対して、とでたのですが、これはどう対処すればよろしいのでしょうか

292 名前:デフォルトの名無しさん :05/01/02 14:06:51
>>291
HBRUSH型にキャスト

293 名前:デフォルトの名無しさん :05/01/02 14:09:18
>>291
エラーメッセージの通り。
GetStockObjectを調べれば解かることだと思うけど...

FillRgn(hdc , hrgn[0] , (HBRUSH)GetStockObject(BLACK_BRUSH));


294 名前:デフォルトの名無しさん :05/01/02 17:41:02
エディットボックスに EM_SETSEL を送ると、MSDNに書いてるとおり、
WPARAMとLPARAMの順に関係なく選択した文字の後ろ側にキャレットが移動するけど、
これを選択した文字の先頭にする(「Shift + ←」を押したような状態にしたい)には
どうすればいいんでしょうか。

295 名前:デフォルトの名無しさん :05/01/02 18:00:47
#include<windowsx.h>
GetStockBrush

296 名前:デフォルトの名無しさん :05/01/02 18:09:34
>290
夢の続きご苦労。ま、正月だしな。

297 名前:デフォルトの名無しさん :05/01/02 18:12:59
SEキター!

298 名前:デフォルトの名無しさん :05/01/02 23:27:47
Win32APIプログラミングができたら、飯が食える?
というか雇ってくれる?

299 名前:デフォルトの名無しさん :05/01/02 23:50:14
>>298
無理

300 名前:デフォルトの名無しさん :05/01/02 23:59:48
>>298
まともに作れるならそりゃどこでも雇ってくれるさ。
Win32を組める奴なんて、滅多にいない。
国内人口一億3000万人の中で組めるのは限られた一部。

301 名前:デフォルトの名無しさん :05/01/03 00:09:35
>300
脳内乙

>299
別に無理ではないと思うが。年齢にもよるよな。


302 名前:デフォルトの名無しさん :05/01/03 00:57:18
Win32を必要とする仕事は業界全体として少ない
Windowsアプリの仕事はめっきり減ってほとんどない
JavaやらPHPを使ったWebアプリケーションの仕事はそれなりに増えた
VBAでのOfficeアプリは局所的ではあるが根強い人気

Win32だけでは自分には仕事が回ってこない、または必要とされない

Win32だけでは食えない
というか食うためだったら、あまり必要ない

303 名前:デフォルトの名無しさん :05/01/03 01:29:30
>302
脳内乙。

自分の周りだけ見て「業界全体」って言ってみたのね。

304 名前:デフォルトの名無しさん :05/01/03 01:34:07
>>298
鼻くそほじりながら
Win32でプログラムするといいよ

305 名前:デフォルトの名無しさん :05/01/03 01:37:48
>304
禿同

306 名前:デフォルトの名無しさん :05/01/03 01:38:08
>304-305
自演うざい

307 名前:デフォルトの名無しさん :05/01/03 01:45:23
おまいら釣られすぎだぞ

308 名前:デフォルトの名無しさん :05/01/03 01:49:23
俺の知り合いでSONYに働いている奴がいるけど、DoVaioアプリを開発してる人らしい。
あれはWin32で動いてるんだってよ。

309 名前:デフォルトの名無しさん :05/01/03 01:50:54
>308
脳内乙。

310 名前:デフォルトの名無しさん :05/01/03 01:55:30
どの日本メーカーでも
ハードはともかくソフトがクソなのはなんで?

311 名前:デフォルトの名無しさん :05/01/03 01:55:39
>308
Win32で書かれているじゃなくてWin32で動いていることが
そんなに珍しいんだー。へー。やっぱ脳内みたいだねー。

312 名前:デフォルトの名無しさん :05/01/03 01:56:13
>310
スレ違いに気付かないのはなんで?

313 名前:デフォルトの名無しさん :05/01/03 01:59:03
>310 >312
自演うざい

314 名前:デフォルトの名無しさん :05/01/03 02:20:42
むしろ自演は、>>309>>311
つーか、ここWin32APIスレだろ?
なんでこんなにWin32を否定する奴が多いんだ?
何しにきた。

315 名前:デフォルトの名無しさん :05/01/03 02:29:05
>>314
Delphi厨が嫌がらせに来てるのさ♪

316 名前:デフォルトの名無しさん :05/01/03 02:50:44
>>315
? わけわからん

317 名前:Delphi厨 :05/01/03 08:32:12
316 名前:デフォルトの名無しさん[sage] 投稿日:05/01/03(土) 02:50:44
>>315
? わけわからん

318 名前:デフォルトの名無しさん :05/01/03 09:00:44
>314
>311のどこがWin32を否定しているように見えるんだ?

>313
それが自演に見えるのはなんでだ?

319 名前:デフォルトの名無しさん :05/01/03 15:07:31
殺伐とした流れをぶった切って悪いのですが、
ウインドウメッセージを調べられるサイトないですか?(WM_・・・のやつ)
フォーカスが当たった時に来るメッセージとかを調べたいのです
猫でもわかるプログラミングのサイトで確か見たのですが、どの章で見たのか
覚えてないし、章が多すぎて見つけられない・・・

320 名前:デフォルトの名無しさん :05/01/03 15:20:58
VC持ってるならSpy++
こういうのは窓プロで必須だと思う
フリーソフトであるのかねえ
俺も欲しい

321 名前:デフォルトの名無しさん :05/01/03 15:22:42
>>319
なんで検索せんの?
猫でもの情報量なんてしれたものなんだからすぐにみつかるでしょ。

322 名前:321 :05/01/03 15:24:39
>>320
そんなあなたにWinspector
http://www.windows-spy.com/

323 名前:デフォルトの名無しさん :05/01/03 16:44:31
>322
ざっくり言って、Spyとどこが違うの?

324 名前:デフォルトの名無しさん :05/01/03 17:28:52
APIで乱数を発生させるには
srand((unsigned)time( NULL ));
以外に方法はないのでしょうか?

325 名前:デフォルトの名無しさん :05/01/03 17:40:01
それAPIじゃないし
それ乱数発生じゃなく乱数シードの設定だし

326 名前:デフォルトの名無しさん :05/01/03 17:45:19
携帯電話アプリ開発をしている俺からしてみると、Win32APIプログラミングが神に見える・・・。

327 名前:デフォルトの名無しさん :05/01/03 17:46:44
Cランタイム使いたくないなら、srand,randを自作するか、ソースを使うか、msvcrt*を静的にリンクしな。GetTickCountやハンドル値も使える

328 名前:デフォルトの名無しさん :05/01/03 17:50:46
ハンドル値は使えねえだろ・・

329 名前:デフォルトの名無しさん :05/01/03 17:56:12
>>324
C++ではかなりメジャーなboostというライブラリには、アルゴリズムを指定して
乱数を発生できるものが含まれるぞ。ソースつきで。static linkするから外部
DLLの呼び出しもなし。

330 名前:デフォルトの名無しさん :05/01/03 18:02:37
>328
使えますよ。もうちょっと想像力を働かせては?

331 名前:  :05/01/03 18:04:30
デスクトップマスコットとかの
画面端やウインドウの上に吸着させるのは
自分で座標持ってきて比較してやるしかないんでしょうか?

332 名前:デフォルトの名無しさん :05/01/03 18:04:56
お前が使う程度の乱数だったらそれでいいかもな

333 名前:デフォルトの名無しさん :05/01/03 18:05:32
そこまでわかってるならやってみろ

334 名前:デフォルトの名無しさん :05/01/03 18:16:20
>>330
は?想像力ってナニ?
全然わからん

335 名前:デフォルトの名無しさん :05/01/03 18:19:22
性的リンク

336 名前:デフォルトの名無しさん :05/01/03 18:22:03
>Cランタイム使いたくないなら、・・・msvcrt*を静的にリンクしな。
使ってるじゃん

337 名前:デフォルトの名無しさん :05/01/03 18:23:07
結局
ハンドル値を乱数として使う神は
なにが言いたいんだ?

338 名前:デフォルトの名無しさん :05/01/03 18:23:14
どのみちkernel32.dllとか使ってるわけだが。

339 名前:デフォルトの名無しさん :05/01/03 18:23:58
>GetTickCountやハンドル値も使える
>GetTickCountやハンドル値も使える
>GetTickCountやハンドル値も使える

340 名前:デフォルトの名無しさん :05/01/03 18:24:42
>ソースを使うか、
ここもわからん。誰か教えて。

341 名前:デフォルトの名無しさん :05/01/03 18:27:06
想像力を働かせると乱数が発生するってこと?

342 名前:デフォルトの名無しさん :05/01/03 18:28:34
327=320は何か勘違いしてるみたい
つーか沢村っぽいけど正解?
さすがに恥ずかしなってコテハンも使わなくなったか

343 名前:デフォルトの名無しさん :05/01/03 18:29:52
327=330

344 名前:デフォルトの名無しさん :05/01/03 18:30:15
どんな勘違いやねん。誰か教えて。

345 名前:デフォルトの名無しさん :05/01/03 18:39:49
>337
ハンドル値に乱数をかけて使うんですよ。

346 名前:デフォルトの名無しさん :05/01/03 18:40:37
沢村って何?

347 名前:デフォルトの名無しさん :05/01/03 18:41:09
>341
想像力のルートを取らないとダメですね。

348 名前:デフォルトの名無しさん :05/01/03 18:58:06
新しい乱数=古い乱数×ハンドル値×√想像力

349 名前:デフォルトの名無しさん :05/01/03 19:51:18
>>348
ありがd
たすかりました


350 名前:デフォルトの名無しさん :05/01/03 20:07:02
ここで 想像力=0


351 名前:デフォルトの名無しさん :05/01/03 20:16:25
すごく初歩的なことですがよろしくお願いします
猫のページを参考にしていますが1つのウィンドウにボタンやタブ、
リストビューのついたアプリケーションを作る場合を考えると
リソースエディタでダイアログを作成してボタンやタブもリソースで
配置してプログラムのエントリポイントでダイアログを呼び出して作成するというのが一般的でしょうか?

僕の想像ではCreateWindow関数ですべての部品(ボタンやタブ、リストビュー)が
作成できるとしたらシンプルではないかと思いました
そもそもダイアログとCreateWindow関数で背景を灰色にしたウィンドウを作るのとの
違いがわかりません。
低脳な質問だと思いますが、何かアドバイスよろしくお願いします

352 名前:デフォルトの名無しさん :05/01/03 20:30:35
ダイアログはOS内部でメッセージを処理しているウィンドウの一種。modalとmodelessの二種類ある。メッセージボックスもダイアログ。

コントロールのHWNDはそのIDからGetDlgItemで取得できる。

353 名前:デフォルトの名無しさん :05/01/03 20:31:48
>>351
ダイアログだとリソースエディタを使えば
マウスで位置・大きさを調節でき、即座に目で見て確認できる。
CreateWindow(Ex)で作ると位置・大きさを調整するたびに
コンパイル&実行し直して確かめなければならないので時間が掛かる。
もちろん頭の中でコントロール(部品)の配置が完璧に想像できるのであれば、
CreateWindow(Ex)を使ってもなんの問題はない、どうぞ御自由に。

あとダイアログだと普通はタスクバーにボタンが出ない、
CreateWindow(Ex)で作ったウィンドウは大抵タスクバーにボタンが出る。

354 名前:デフォルトの名無しさん :05/01/03 20:38:00
>>353
ん?ダイアログベースで作ってリソースエディタで最小、最大化ボタンを表示する設定にすれば出るぞ

355 名前:デフォルトの名無しさん :05/01/03 20:40:37
ウィンドウとダイアログの大きな違いの一つにコントロールのフォーカス制御
があるね。
ダイアログだったら、TABキーで次のコントロールにフォーカス移動が出来るし、
アイコン化して元のサイズに戻したら、前回フォーカスをもっていたコントロール
に再びフォーカスを移動してくれる。


356 名前:351 :05/01/03 20:43:11
修行が足りないためいまいち>352の説明されたことが飲み込めてません
すいません。ですがいつかの時のために頭にとどめておきます。
>353のおっしゃるとおりCreateWindow(Ex)だけで作ると部品の位置調整が
めんどくさいということですね。
>あとダイアログだと普通はタスクバーにボタンが出ない、
↑のことですがダイアログを実行するとボタンがでました
タイトルバーだけにしてもでました。
ダイアログボックスの設定になっていないのでしょうか

357 名前:351 :05/01/03 20:48:49
>355さんのおっしゃる
>ウィンドウとダイアログの大きな違いの一つにコントロールのフォーカス制御

>352さんのおっしゃる
>ダイアログはOS内部でメッセージを処理しているウィンドウの一種。
タブの制御をOS内部でおこなっていると言う意味の一つにがあると考えてよいでしょうか


358 名前:デフォルトの名無しさん :05/01/03 20:49:10
>348
新しい乱数の初期化をお忘れなきよう。

359 名前:デフォルトの名無しさん :05/01/03 20:51:05
>>356
お前が言ってる事を要約すると

メインウィンドウにコントロールを持ったソフトを作るにはリソースエディタを使うのが一般的な方法か?
CreateWindowで作れたらシンプルではないか?
ダイアログとウィンドウの違いが解からない

って事だな?
ウィンドウにはリソースエディタ使ってコントロールの位置を指定する事はできないぞ。
ウィンドウはCreateWindow使ってしかコントロールを置けない。
ダイアログベースで作れば別だが。


360 名前:351 :05/01/03 20:55:59
皆さまのおかげて、だんだんイメージがわいていきました
とことろで、リソースエディタで作成したダイアログに
リストビューコントロールを貼り付けて使おうと思ったのですが
ボタンやコンボボックスをリソースエディタで貼り付けると
CreateWindow(Ex)関数が必要なかったのですが、リストビューコントロールは
猫のページによると必要なようです。さらに、タブコントロールをしようするときは
#include <commctrl.h>を参照しています。
僕の理解ではコンボボックスもリストビューもコモンコントロールのような
きがするのですが、違いはどのようなことになりますか?


361 名前:デフォルトの名無しさん :05/01/03 21:00:23
>360
想像力の初期化は?

362 名前:デフォルトの名無しさん :05/01/03 21:01:06
ややこしいが、ダイアログの上に出てくる部品のことをコントロールという。

modalなダイアログはDialogBox* APIで始まり、対話が終わるまで親の動作を邪魔し、IDOK,IDCANCELなどの値を返す。modelessダイアログはCreateDialog*で作成され、HWNDを返す。modelessはツールボックスなどに多い。

363 名前:デフォルトの名無しさん :05/01/03 21:02:04
>>360
リストビューもエディタで貼り付けられるよ。

364 名前:デフォルトの名無しさん :05/01/03 21:02:55
>363
うわ

365 名前:351 :05/01/03 21:08:51
>359さん
>お前が言ってる事を要約すると
>メインウィンドウにコントロールを持ったソフトを作るにはリソースエディタを使うのが一般的な方法か?
>CreateWindowで作れたらシンプルではないか?
>ダイアログとウィンドウの違いが解からない
>って事だな?

そうです。最初MFCからはいったので意味のわからないファイルがたくさん
できてちょっといやだなって思っていたんです
それで次はリソースファイルという不思議なスクリプトがあって
できればxxx.hやxxx.cppだけのファイル構成にしたいという思いなんです
>360さん
>想像力の初期化は?
頭をやわらかく汁ということですか?
>362さん
体系的なレスダイアログの使い方わかってきました


366 名前:351 :05/01/03 21:13:29
>>363さん
リソースエディタで貼り付けたリストビューを使うのに
InitCommonControls();
hList = CreateWindowEx(0,
という手順を踏んでいました(猫でもわかる)
タブコントロールは
InitCommonControls();//コモンコントロール初期化
hTab = GetDlgItem(hDlg, TAB_TEST);
の手順でした
リストビューもタブコントロールの手順ですとパターン化できるので
まだ理解できるのですが.....

367 名前:デフォルトの名無しさん :05/01/03 21:27:08
間違い?
誤〉親の動作を
正〉所有者の動作を

368 名前:351 :05/01/03 21:37:56
すいませんトンチンカンな質問ばかりで...
ですが皆さまのレスを読み返しているうちに整理ができてきました

・作りたいプログラム
 部品(ボタン、コンボボックス、タブ、リストビュー)を使ったサンプル
・ダイアログベース
 エントリポイントの中でDialogBox* APIを直接呼び出すのでmodelやmodelessの違いがなし
・コントロールのリストビュー、タブコントロールに限り
 InitCommonControls();//コモンコントロール初期化
 hTab = GetDlgItem(hDlg, TAB_TEST);
 といった手順を踏んで利用する


369 名前:デフォルトの名無しさん :05/01/03 21:47:34
キー押下時に、現在選択されているメニューIDを調べる方法のご指南をお願い致したく候。

370 名前:デフォルトの名無しさん :05/01/03 21:49:42
_>コンボボックスもリストビューもコモンコントロールのような
>きがするのですが

違う。コンボボックスはエディトと同類だろ

371 名前:デフォルトの名無しさん :05/01/03 21:54:30
#include <dlgs.h>
#include "resource.h"
//こんな感じか?
hDlg IDD_MYAPP
hTab ?
hChildDlg IDD_PAGE
hBtn ?
hCb ?
hLb ?

372 名前:351 :05/01/03 22:06:08
>>370さん
>違う。コンボボックスはエディトと同類だろ
その分類方法がいまいち理解していません
CreateWindow(Ex)関数を実行するときにクラス名として
BUTTON ボタン、チェックボックス。。。。。
COMBOBOX コンボボックス
EDIT エディットボックス
LISTBOX リストボックス
を調べたのですがコンボボックスがエディットに分類される
のはどうやって考えたらよいですか?
>>371さんは僕へのレスではないですね?

373 名前:デフォルトの名無しさん :05/01/03 22:09:56
分類よりもむしろ子持ちと考えた方がいい。

374 名前:デフォルトの名無しさん :05/01/03 22:10:16
>>373

375 名前:デフォルトの名無しさん :05/01/03 22:13:48
>>372
comctl32.dllが実装しているのがコモンコントロール。
そうじゃないけどWindowsが実装していると言う意味で、
370は「コンボボックスはエディトと同類だろ」と言ったんだろう。

376 名前:デフォルトの名無しさん :05/01/03 22:28:29
エディトってUSER32の管轄だと思ってた

377 名前:デフォルトの名無しさん :05/01/03 22:34:27
comctl32.dllで新しく提追加されたコモンコントロールと
それ以前からあるもの
(リストボックスやコンボボックスなど)とでは
通知メッセージの送られ方にも違いがあるな

378 名前:351 :05/01/03 22:35:29
>373-375さん
なんとなくわかりました。ありがとうございます。
たぶんMFCみていたときにCEDITクラスでだいたいのコントロール作れたような記憶があります
たぶんですが
comctl32.dllですがプログラムするときにバージョンを特に気にする必要はあるでしょうか?
Win32SDKで組んだらインストーラとかなしで動くのが好きなのですが。。。

379 名前:デフォルトの名無しさん :05/01/03 23:02:16
>>378
これを書けばバージョンを気にする必要はない。Win32上なら必ず動くようになるはず。
#define WINVER 0x0400
#define _WIN32_WINNT 0
#define _WIN32_WINDOWS 0
#define _WIN32_IE 0
#include <windows.h>

380 名前:デフォルトの名無しさん :05/01/03 23:07:35
randはそのままじゃ使わない事が多いから
rand_range(min,max)とか
範囲を指定できるインターフェース関数を作ると良い
かなり使える

381 名前:351 :05/01/03 23:12:12
>379さん
ありがとうございます
>Win32上なら必ず動くようになるはず。
Windows2000,WindowsXPの初期の状態であれば動く感じでしょうか
定義の意味は後々調べてみます。ありがとうございました。

382 名前:デフォルトの名無しさん :05/01/03 23:12:45
お前らまだその話してんの?

383 名前:デフォルトの名無しさん :05/01/03 23:13:17
>>380
それも既にboostにある。

384 名前:デフォルトの名無しさん :05/01/03 23:15:33
>>381
それどころかIEを全くインストールしていないWindows 95/NT4でも動く。

385 名前:322 :05/01/03 23:23:21
>>323
無料

386 名前:デフォルトの名無しさん :05/01/03 23:26:16
>384
ププッ

387 名前:デフォルトの名無しさん :05/01/03 23:27:46
>385
Spyって無料でしょ?

388 名前:デフォルトの名無しさん :05/01/03 23:59:10
VS付属: Spy++
PlatformSDK付属: Spy

正直Spy(++じゃないほう)は使いにくい

389 名前:デフォルトの名無しさん :05/01/04 00:13:46
SpyかSpy++だったか忘れたけど、
VCにサンプルソース付属してなかった?
あ、メモ帳だったかもしれない。

390 名前:デフォルトの名無しさん :05/01/04 00:30:48
>>389
Spyのソースは付いてるらしい。
Spy++のは無いらしい

391 名前:デフォルトの名無しさん :05/01/04 14:30:24
プリンターをUSBで繋げたときどんなメッセージが飛んでるんですか?
調べてもわからん。

392 名前:デフォルトの名無しさん :05/01/04 14:46:36
>>391
そ、そんな餌に…クマー

393 名前:デフォルトの名無しさん :05/01/04 15:45:46
WM_DEVICECHANGE とか?

394 名前:391 :05/01/04 16:03:23
おお!>393ありがとう。
調べてみます

395 名前:デフォルトの名無しさん :05/01/04 19:27:17
DialogBoxIndirectなどに渡すダイアログテンプレートのデータ構造について
詳しい資料ないでしょうか。
動的にダイアログボックスの部品を組み立てたいので・・・
C++クラスとかのライブラリ形態でもかまいません。

396 名前:デフォルトの名無しさん :05/01/04 20:02:56
>>395
DLGTEMPLATE
ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxstructures/dlgtemplate.asp
DLGITEMTEMPLATE
ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxstructures/dlgitemtemplate.asp

397 名前:デフォルトの名無しさん :05/01/04 20:16:43
>>396
英語読めないので日本語の解説ページはないでしょうか?

398 名前:デフォルトの名無しさん :05/01/04 20:21:17
そういう手で来たかw

399 名前:デフォルトの名無しさん :05/01/04 20:23:06
                        |
                        |
      ∩___∩              |  ぷらぷら
      | ノ  _,  ,_ ヽ        ((   |
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)    J  ))
    彡、   |∪|  ノ
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /        ヽ /
   \_,,ノ      |、_ノ


400 名前:デフォルトの名無しさん :05/01/04 20:42:37
400get
DLGTEMPLATE
あれ、わざとややこしい表現使ってるんだよ。繰り返しの表現とかを簡略化して、自動翻訳に掛けてみな。LPWORD ...malloc...

401 名前:395 ◆O5nHPxsjb2 :05/01/04 22:20:29
なんとか出来ました。
配置予定の全部のコントロールの大きさをあらかじめ計算したり、
難しいというか、面倒です。

>>397は別人です。


402 名前:395 ◆O5nHPxsjb2 :05/01/04 22:29:13
あと、
googleで見つけたコードはテンプレートのメモリ確保に
LocalAllocを使ってますが、別にmallocでもかまわないですよね?
それでうまくいってるので。

ちなみに既存のリソースエディタで作ったダイアログリソースを
FindResourceしてLoadResourceしてLockResourceで得たアドレスが
そのままテンプレートの構造体みたいです。
(DialogBoxIndirectに食わせたら動いた。)
これがなかったらちょっとわかんなかった。
それにしても面倒すぎ。

403 名前:デフォルトの名無しさん :05/01/04 22:33:13
>>401
志村!>>397のメール欄!

404 名前:デフォルトの名無しさん :05/01/04 22:38:58
>403
は?メール欄ぐらい気付いてますけど。何言ってるんですか?
自分がバカっていうアピール?

405 名前:デフォルトの名無しさん :05/01/04 23:13:17
>>404
403では無いが、メール欄に気づいてたら、わざわざ「別人です」と書く必要ないだろ(分かりきった事だし)

406 名前:395 ◆O5nHPxsjb2 :05/01/04 23:18:07
>>404は別人です。

>>405
メール欄なんて読まないので気付きませんでした。

407 名前:デフォルトの名無しさん :05/01/04 23:39:03
>405
いや?他の気付いていない人に誤解されるのがイヤだから
わざわざ書いたまでさ。あなた洞察力ゼロですねぇ。

408 名前:デフォルトの名無しさん :05/01/04 23:41:00
>>406
バカじゃねーの、お前。

409 名前:デフォルトの名無しさん :05/01/04 23:41:21
>405
分かってない人のために書いたんでしょ。

410 名前:デフォルトの名無しさん :05/01/04 23:41:57
まあまあ、バカって言われたらバカでもカチンとくるってことが
分かっただけでもよかったじゃん。

411 名前:デフォルトの名無しさん :05/01/04 23:42:49
>>410
そういじめてやるなよ。

412 名前:デフォルトの名無しさん :05/01/04 23:49:15
(・∀・)ニヤニヤ

413 名前:デフォルトの名無しさん :05/01/04 23:54:03
>>403
>>404
>>405
>>407
>>408
>>409
>>410
>>411


414 名前:デフォルトの名無しさん :05/01/05 00:15:22
>413
自演って言いたいのかもしれんけど、正解率は4/8
洞察力ないね。

415 名前:デフォルトの名無しさん :05/01/05 00:16:26
バカじゃねーの、お前ら。


416 名前:デフォルトの名無しさん :05/01/05 00:29:31
結局>>397(=>>403=>>407)がせっかく仕込んだメール欄に
>>401が気付かなかったのが悔しくて引きずってるわけか


バカ?

417 名前:デフォルトの名無しさん :05/01/05 00:35:15
騙りグセからして397=404じゃねーの?
404でバカって言われて頭に血が上ってる奴が
約1名わめいてるだけだよw

418 名前:デフォルトの名無しさん :05/01/05 00:37:28
>416-417
うわ、粘着系か。変なのにからんじゃったな。

419 名前:デフォルトの名無しさん :05/01/05 00:38:05
>416
はずしまくりなんだけど。あなた洞察力ゼロですね。

420 名前:デフォルトの名無しさん :05/01/05 00:39:06
「あなた洞察力ゼロですね。」は今年の流行語大賞行ける。

421 名前:デフォルトの名無しさん :05/01/05 00:41:35
>>418
粘着にからんだ時点でお前も粘着なんだよ。
ほっといてやれ。

422 名前:デフォルトの名無しさん :05/01/05 00:42:19
>1-421>423-1000
あなたたち、洞察力ゼロですね。

423 名前:デフォルトの名無しさん :05/01/05 00:45:26
誰かわかりやすく要約してくれよ

424 名前:397 :05/01/05 00:47:39
なにやら荒れてしまったようで申し訳ない。

425 名前:デフォルトの名無しさん :05/01/05 01:08:47
map<string, int>でmap<"1234">に
何かデータが入っているかどうかを調べるにはどうすればいいですか?
データが存在しないのにアクセスするとエラーになるし・・・

426 名前:デフォルトの名無しさん :05/01/05 01:09:32
>>425
すいません、Win32APIと関係ないですね、失礼しました

427 名前:デフォルトの名無しさん :05/01/05 03:02:53
WNDCLASSのhIconに
wc.hIcon = LoadIcon(hInst,"IDI_ICON");
という形でアイコンを設定しても
exeファイルのアイコンとタスクバーのアイコンは変化するんですが
タイトルバーのアイコンが変化しません

サイトを回ってみてもこれでタイトルバーも変わるようなのですが
他に何かやらないといけないのでしょうか?

428 名前:デフォルトの名無しさん :05/01/05 03:47:01
IDI_ICONが数値で定義されてないか?
それかwcがWNDCLASSEXになってるとか・・

429 名前:デフォルトの名無しさん :05/01/05 07:17:18
>426
構わん。続けたまえ。ただし、どうせこのスレの住人は回答
できないがね。

430 名前:デフォルトの名無しさん :05/01/05 07:21:50
>>427
数値を使うときはMAKEINTRESOURCE使わんといかんだろ。
LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON));
に汁

431 名前:427 :05/01/05 07:24:58
>430
「汁」じゃなくて「してください」ですよね。
日本語は正確に使わんといかんだろ。

432 名前:デフォルトの名無しさん :05/01/05 07:25:39
>430
LoadIconの結果もチェックしないんですか?

433 名前:デフォルトの名無しさん :05/01/05 07:26:51
>432
あー、わりいわりい。俺直前2レスまでしかみねーからさー

434 名前:デフォルトの名無しさん :05/01/05 07:27:33
誰か難しい質問してよ。このスレの固まりっぷりが見たい。

435 名前:デフォルトの名無しさん :05/01/05 07:41:49
API関係で難しい物ってなんかあるかね。
基本的にこのスレってぐぐれとかリンク貼って終わりじゃん。
それか先のDLGTEMPLATEみたいに資料不足で暗中模索する
とかそういう類になる様な。
あとは下手糞な質問の意図を解読するとか。

あ、COM関係だとわかんない奴沢山いるよ。

436 名前:デフォルトの名無しさん :05/01/05 08:17:23
DLGTEMPLATEで作成したダイアログのDS_SETFONTを指定した場合の
大きさについて質問です。

ダイアログやその上に貼り付けるコントロールのx,y,cx,cyの各値は
「ダイアログ単位」という座標系で作るらしいのですが、ダイアログのスタイルに
DS_SETFONTを加えた時に正確な大きさにすることができませんでした。

デフォルトフォントで作成したダイアログ(DS_SETFONTスタイルなし)
の場合は、dlgbase = GetDialogBaseUnits()で得た値を、

x = x * 4 / LOWORD( dlgbase )
y = y * 4 / HIWORD( dlgbase )
cx = cx * 4 / LOWORD( dlgbase )
cy = cy * 4 / HIWORD( dlgbase )

という風に変換した値をテンプレートに設定することでピクセル→ダイアログ単位に
変換することができますが、これでは文字が大きすぎるので他のフォントを
使う事にしました。

ダイアログのスタイルにDS_SETFONTを設定し、フォントを9ptの
MSゴシックにしてDialogBoxIndirectを呼ぶと、ダイアログの位置、
大きさが異常にズレて表示されます。
ズレる原因はデフォルトフォント以外を設定したからというのは判ってる
のですが、任意のフォント用のGetDialogBaseUnits相当のAPIが存在しないので
うまく変換できないでいます。

長くなりましたが、DirectBoxIndirect系のAPIでテンプレートから作成したダイアログで、
DS_SETFONTを指定した場合の適切な大きさを得る方法を教えてください。

言い換えると、任意フォントに対するピクセル単位→ダイアログ単位
の変換方法を探しています。

437 名前:デフォルトの名無しさん :05/01/05 08:44:10
>436
MapDialogRect

438 名前:デフォルトの名無しさん :05/01/05 10:17:51
MapDialogRectはダイアログ単位→ピクセル単位です。

439 名前:デフォルトの名無しさん :05/01/05 11:18:44
MapDialogRectの解説によると、GetDialogBaseUnitsはDS_SETFONTをサポートしてない。MapDialogRectは、線形変換。4,8の最小公倍数は8だろ?

440 名前:デフォルトの名無しさん :05/01/05 11:42:43
win64もここに質問してもいいでしょうか?

441 名前:デフォルトの名無しさん :05/01/05 13:59:27
APIフック使用してキーボードフックを無効化したいんですけど
サンプルソースとかあるのでしょうか?

442 名前:デフォルトの名無しさん :05/01/05 14:26:20
他のウィンドウへのメッセージ送信について教えて下さい。

IEで特定のHPを表示している時に、一定時間で自動的に画面を更新させるツールを作ろうとしています。
例えば予めIEで新聞社のトップページを表示しておき、これのウィンドウハンドルに一定時間おきにメッセージを送って表示を更新させるといった具合です。

んで、EnumWindows()で目的のウィンドウハンドルを取得するところまでは行ったのですが、これに何のメッセージをどうやって送ればいいのかが判りません。
単純にSendMessage()やPostMessageでWM_KEYDOWNでWPARAMにVK_F5を送っても何も起こりません。ついでにWM_QUITを送ってみても終了しませんでした。
送り方に問題があるのか、または何か送った後で処理が必要なのでしょうか?

443 名前:436 :05/01/05 15:11:09
>>439
仰ってる事がよくわかりませんが、
MapDialogRectから逆算するってことですか?

MapDialogRectを使うということは、一度仮のダイアログを
作成してフォントを設定しないといけないみたいですね。
うーん。

444 名前:デフォルトの名無しさん :05/01/05 15:11:16
>>442
その目的なら、JavaScriptで事が足りると思うけど?
#VBScriptでもできるかな。

445 名前:デフォルトの名無しさん :05/01/05 15:34:53
>>444
このスレのスレタイを声に出して読んでみろ

446 名前:デフォルトの名無しさん :05/01/05 15:37:40
声に出して読みたいスレタイ3選

447 名前:デフォルトの名無しさん :05/01/05 15:43:06
>443
GetTextMetricsだったかな。ふぁ〜あ

448 名前:デフォルトの名無しさん :05/01/05 15:52:21
>442
PostThreadMessage
GetWindowThreadProcessId
FindWindowEx
WindowFromPoint
SetCursor
SetCaption
IEのメッセージをスパイ汁

449 名前:デフォルトの名無しさん :05/01/05 20:53:59
英語が(自動翻訳などで)読める貧乏人がwinapiを学ぶならwinehq.orgを見ろ。古いAPIならMSDNより早いし、運がよければレファレンスも見れる。

450 名前:デフォルトの名無しさん :05/01/05 20:58:50
そういうのは次スレの参考リンクに入れといてよ

451 名前:デフォルトの名無しさん :05/01/05 21:42:27
>449
winehq.com

452 名前:デフォルトの名無しさん :05/01/05 23:39:59
標準入力や標準出力がリダイレクトされていることを調べるにはどうすればいいでしょうか?

453 名前:デフォルトの名無しさん :05/01/06 06:07:57
CreateProcessの出力をコマンドラインの記述だけで簡潔にファイル
リダイレクトする事は出来ないのでしょうか?

454 名前:デフォルトの名無しさん :05/01/06 07:15:54
>453
なんなの?その聞き方は。人をムカつかせようとしてるわけ?

回答は「できる」
方法は「自分で調べろ」

455 名前:デフォルトの名無しさん :05/01/06 07:19:02
どこがムカつくポイントか分からない

456 名前:デフォルトの名無しさん :05/01/06 07:24:50
>455
「出来ないのでしょうか?」の部分だろ。
開発担当者への質問ならありうるが。

457 名前:デフォルトの名無しさん :05/01/06 07:25:32
>455
「出来ないのでしょうか?」は「なんで出来ないの?」とケンカを
売ってると見なされる。

458 名前:454 :05/01/06 07:26:14
>456-457
大体そんな感じ。普通そう感じると思うけどねー

459 名前:デフォルトの名無しさん :05/01/06 07:35:21
>>457
相手は誰

460 名前:デフォルトの名無しさん :05/01/06 07:37:20
>459
誰かに。このスレ読んでてたまに回答したりする奴は
自分と感じるだろうな。

461 名前:デフォルトの名無しさん :05/01/06 07:37:56
>459
真正のアホか?こいつは。

462 名前:デフォルトの名無しさん :05/01/06 07:38:33
>459
お前って>454なの?

463 名前:デフォルトの名無しさん :05/01/06 07:39:19
まあなんのかんので回答は得られた(>454)だから
質問者も満足しただろうよ。

464 名前:デフォルトの名無しさん :05/01/06 07:40:01
はーい、次の質問どうぞー

465 名前:デフォルトの名無しさん :05/01/06 08:58:17
相変わらず馬鹿のすくつだw

466 名前:デフォルトの名無しさん :05/01/06 09:33:27
>>448

467 名前:デフォルトの名無しさん :05/01/06 09:57:23
>453
DOSやCMDの内部でないと「できない」。
cmdlineで>などでリダイレクトするのは、DOSやCMDの機能。名無しパイプを使えって言うか、調べろ。

468 名前:デフォルトの名無しさん :05/01/06 09:59:53
>452
GetStdHandleの解説を見よ

469 名前:デフォルトの名無しさん :05/01/06 10:01:47
>>467
DOSやCMDの「内部」ってなんですか?

470 名前:デフォルトの名無しさん :05/01/06 10:07:25
>469
今日は天気が良いですな。

471 名前:デフォルトの名無しさん :05/01/06 10:08:23
そう言えば標準入力がリダイレクトされているとBCCではfseek(stdin, ...)が成功を返すんだよな。
これってGetStdHandleからのハンドルにも応用できないかな。

472 名前:デフォルトの名無しさん :05/01/06 10:15:51
つーか雑談すんなよ
無意味なんだよおめーらのスレの使い方はよ

473 名前:デフォルトの名無しさん :05/01/06 11:05:01
>>443 KB145994のMethod One

474 名前:デフォルトの名無しさん :05/01/06 12:30:28
>>471
問題は、成功を返すかどうかではなく、実際にシークできるかどうかだ。

#そう言えばMS-DOSの時代は普通にシークできたなぁ。

475 名前:デフォルトの名無しさん :05/01/06 12:33:36
>>454
もう少しカルシウムを摂取した方が良さそうだね

476 名前:デフォルトの名無しさん :05/01/06 12:37:01
>>467=>>470
判ってないなら書くなや。
もしかしたら、cmd.exeは対話環境でないと使えないなんて思ってたりしない?

477 名前:デフォルトの名無しさん :05/01/06 12:37:55
>>453
CreateProcess()でcmd.exeを起動するようにすればコマンドラインでリダイレクトできる。

478 名前:デフォルトの名無しさん :05/01/06 13:17:04
>>454
意味が解からんw

479 名前:デフォルトの名無しさん :05/01/06 13:50:41
(・∀・)ニヤニヤ

480 名前:デフォルトの名無しさん :05/01/06 14:43:36
>>478
「何だ貴様のその口のきき方は!私を誰だと思っている!」
という意味です。

481 名前:デフォルトの名無しさん :05/01/06 15:02:09
GetTickCountみたいな感じでマイクロまでチョイスできるAPI教えて

482 名前:デフォルトの名無しさん :05/01/06 15:03:29
QueryPerformanceCounter

483 名前:デフォルトの名無しさん :05/01/06 15:03:30
>>480
解説ありがとう、凡人の俺にもようやく理解できたよ。

484 名前:デフォルトの名無しさん :05/01/06 15:28:39
>>482
ありがとーありがとー
こんな関数があったなんて知らなかったー

485 名前:デフォルトの名無しさん :05/01/06 16:34:15
質問です。
ちなみに、僕はwindowsプログラミングの超初心者です・・・。

チェックボックスが5個、ALLボタン、RESETボタンがあるダイアログボックスを作成しています。
ダイアログプロシージャで
「ALLボタン(IDC_BUTTON1)を押したらチェックボックス(IDC_CHECK1〜5)全てにチェックが入る」
「RESETボタン(IDC_BUTTON2)を押したらチェックボックス全てのチェックが外れる」
という風にしたいのですが、そのやり方がわかりません・・・。
どなたか教えてください!お願いします。



486 名前:デフォルトの名無しさん :05/01/06 16:37:18
一つ一つにチェックを入れる(外す)やり方がわかるなら、それを5つやるだけ。
わからないなら、CheckDlgButtonを調べる。

487 名前:33,35 :05/01/06 16:40:33
>>485
ボタンが押されたときの動作と
チェックボックスのチェックの入れ方/外し方
の勉強して出直して来い!!

488 名前:デフォルトの名無しさん :05/01/06 16:57:19
>485-487
解説が不十分だ。

case WM_COMMAND:で
BN_CLICKEDを受け取れ。CheckDlgButtonを参照。

489 名前:デフォルトの名無しさん :05/01/06 17:12:34
Use MFC.

490 名前:デフォルトの名無しさん :05/01/06 17:25:43
>489
After u study C++ if ur a rich man.

491 名前:デフォルトの名無しさん :05/01/06 18:03:25
VC6sp6で標準入力を取得する場合に
__argc __argvを使用しているのですが
このやり方だとファイル・フォルダ数が多くなった場合に
「指定されたデバイス、パスまたはファイルにアクセスできません。アクセス許可がない可能性があります。」
のダイアログが出てしまいます。

皆さんどのように対応されていますか?

492 名前:デフォルトの名無しさん :05/01/06 18:06:40
GetCommandLine

493 名前:436 :05/01/06 18:13:12
>>473
欲しかった情報はまさにそれでした。

無事ピクセル→ダイアログ単位の変換ができるようになりました。
ありがとうございました。

494 名前:デフォルトの名無しさん :05/01/06 18:19:22
>>491
藻前のいう標準入力の意味は?

495 名前:491 :05/01/06 19:21:20
>>494
「ファイルを複数選択してコンテキストメニューから起動」です。

496 名前:デフォルトの名無しさん :05/01/06 19:24:01
標準入力の中の人も大変だな…

497 名前:491 :05/01/06 19:26:43
もしかしてコンテキストメニューハンドラを
調べていけば解決しますか?

498 名前:デフォルトの名無しさん :05/01/06 19:35:01
>>491の意味が何となく分かってきた。
そもそも __argc __argv の問題ではないような…

499 名前:デフォルトの名無しさん :05/01/06 19:46:15
D&Dでアプリに落としても、ある程度を超えるとなるね。
どーも2000バイトあたりにリミットがありそう。

で、これはシェル側の問題(自アプリは起動すらしていない)

500 名前:デフォルトの名無しさん :05/01/06 20:25:33
バッチファイルから起動すると制限なくなるんじゃなかった?
つーか実際どうやって起動したら出るのか書けよ


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