[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 07/09 05:34 / Filesize : 231 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build59



1 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:39:56 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-5くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで


369 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 19:46:11 ]
>>368
やってみます。
ありがとうございました。

370 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:20:42 ]
すでに起動してるアプリケーションに文字列をSendMessageするにはどうすればいいのでしょうか?
FindWindowをしてWM_APPのLPARAMに文字列を乗せて送信してみたところ
誤ったポインタが届いてしまいました

371 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:26:21 ]
WM_COPYDATA

372 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:36:44 ]
ポインタを別プロセスに送っても無意味
>>371かファイルマッピングを使う

373 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:51:36 ]
テキストファイルから複数行の文字列を取り出し
リストビューに表示させるにはどうしたらいいですか?

374 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:51:37 ]
アトムくんじゃダメなの?

375 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:51:47 ]
>>371-372
出来ました!
こんな便利なのあったのかー
ありがとうございました

376 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:57:38 ]
>>373
そりゃテキストファイル開いて、読んで、リストビューコントロールにに登録すりゃいいんでない?

377 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:19:04 ]
複数のBMPを結合して4GBytes以上のAVIファイルを作成するには
どうしたらいいですか?
できればVideo compressorも使いたい。



378 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:20:49 ]
どのように登録すればいいんですか?

379 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:17:05 ]
まずパソコンの電源を入れます

380 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:24:19 ]
>>379
次は?


381 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:25:06 ]
入れました。

382 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:29:17 ]
そしてスタートボタンをクリックします

383 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:31:46 ]
>>373
これって、リストビュー1つのアイテムに複数行表示させるってこと?
ならオーナードローかな、LVS_OWNERDRAWFIXEDあたり

384 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:42:45 ]
>>383
いえ、
テキストファイルから一行ずつ項目を追加したいです。

385 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:49:55 ]
うるせーばかどっかいけ

386 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:51:55 ]
リストビュー使うのにリストビューアイテムの追加の仕方なんて
人に聞くことじゃないでしょ。。。
調べろ禿で終わり

387 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:55:05 ]
あなたがここに書いたとおりに実装すればよい
ただし、そのために何のどのような設計が必要かを検討する
さらにそのために何のどのような設計が必要か検討する これを繰り返す。
言語や実装方法依存しない設計であること、この繰り返しで疑問の余地がなくなるまでコーディングを開始しないことが重要

これが完了すればコーディングなんて一瞬で終わるし、再コーディングなんて手戻りはまず発生しない



388 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:58:36 ]
ここでのレスを参考に分割ウィンドウ作っていたんですが
スクロールバーってオーナードローできないんでしょうか?
境界線を自力描画したせいか普通に置くと
境界線がスクロールバーの下をくぐるんです

389 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:00:37 ]
コーディングして実際に確認しないと、言語や実装方法依存しないことが確認できない。
理論だけで集結するなら、実験をする科学者はいない。
太平洋で核実験をする国もない。

390 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:02:34 ]
>>388
クライアントに直接書かずにウインドウを作ればいい。

391 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:03:09 ]
ReadLinesToListviewItems()

392 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:44:38 ]
>>388
MFCかWTLのソースでも見ろよ

393 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 00:08:57 ]
フックについて詳しく書かれた書籍はありますか?
ネット上の情報ではあまり身につかないと思うので・・

394 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 03:38:42 ]
すべてを詳しく網羅したものはない

395 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 04:35:45 ]
Advanced Windows かなあ

396 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 10:32:43 ]
フックなんて大して覚えることねーだろ

MSDNの説明読めば各フックが呼び出される状況は把握できるし
そしたらあとは自分で応用方法を考えるだけ

397 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 10:34:51 ]
APIフックかも知れんよ?



398 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 10:39:45 ]
>>395
あの分厚いやつですね
本屋でちょっと覗いてこよう

399 名前:デフォルトの名無しさん [2007/11/24(土) 15:51:48 ]
タブコントロールをCreateWindowで作成する際に、
TCS_RIGHTJUSTIFYを指定しているのですが、タブが最大まで拡大されません。
どういう原因が考えられますか?

400 名前:デフォルトの名無しさん [2007/11/24(土) 18:34:22 ]
マイクロソフトヘルプのhxsファイルはテキストなどに変換できませんか?

401 名前:デフォルトの名無しさん [2007/11/24(土) 18:36:30 ]
純正以外のgrepツールや全文検索のインディックスを作りたいんですが
htmlに変換することも難しいです シェアでABC Amber HxS Converter
というのがあるんですが日本語無理で、まとめて変換も出来ずつかえません

402 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 18:54:02 ]
純正とは?

403 名前:デフォルトの名無しさん [2007/11/24(土) 19:02:25 ]
MSDNライブラリをインストールすると入っているMicrosoft Developer Networkが純正ツールです

404 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 19:50:44 ]
s_hIml = ImageList_LoadImage(hInstance, MAKEINTRESOURCE(IDB_HEADER), 7, 0, CLR_DEFAULT, IMAGE_BITMAP, LR_LOADTRANSPARENT);
Header_SetImageList(ListView_GetHeader(s_hListView), s_hIml);

このようにして登録しておいたリストビューのヘッダのImage(14 x 6)を切り替えようと以下のような関数を作りました。
ところが何度呼び出しても切り替わってくれません…
一体全体どこが間違っているのでしょうか?

BOOL SetColumnState(void)
{
 HWND hHeader = ListView_GetHeader(s_hListView);
 int i;

 for(i = 0; i < Header_GetItemCount(hHeader); ++i)
 {
  HDITEM hdi = {HDI_FORMAT | HDF_IMAGE};
  Header_GetItem(hHeader, i, &hdi);

  if(hdi.fmt & HDF_IMAGE)
  {
   hdi.iImage = 1;
   return Header_SetItem(hHeader, i, &hdi);
  }
 }

 return FALSE;
}

405 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 20:01:12 ]
すみません自己解決しました
hdi.maskに入れないといけないんですね
1時間も悩んでたのになんてこった…

406 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 20:39:04 ]
簡単なウェブブラウザ作りたいんですが、何から手を付けたらいいかわかりません。

407 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 20:41:54 ]
おまいが作るまでも無い。既存のもので充分だ。

ちなみに、下手なウェブブラウザ作るとw3c厨に命を狙われるから覚悟しとけ。



408 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 20:45:07 ]
>>406
独自レンダリングはどこからやっても簡単にはならないだろうなw
IEコンポーネント使っていいならIEコンポーネントの使い方から調べたらいいなじゃないかな?

409 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 20:58:50 ]
>>407
目の前の人に厳しくなるってのは、自分の足が引っ張られるからとか、正当化のための理由は確かにあり得ると思うんだけど、こういうアカの他人に厳しい人ってのは、どういう倫理感を持ってるんだか、おれには非常に不思議だ。

410 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 21:02:31 ]
下手に穴のあるもの作られて
それが原因でウィルスやワームばらまかれて
結局は足を引っ張られることになってる

一番低能で一番迷惑な連中がMSの糞ソフト


411 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 21:08:48 ]
>>410
それは>>406本人ですか?

412 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 21:14:30 ]
windows使わなきゃいいじゃん

413 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 21:27:19 ]
自分は使わなくても世間が使うとその割合が増えて
ウィルスがそっちから流れ込んでくるだろ

最近はやったSARSみたいに
自国だけ閉鎖しててもどうにもならんのだよ

おれはWindows使わないっていうスタンスで
影響受けずに済むのは
ヒッキーだけ


414 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 21:29:35 ]
>>413
目の前の人に厳しくなるってのは、自分の足が引っ張られるからとか、正当化のための理由は確かにあり得ると思うんだけど、こういうアカの他人に厳しい人ってのは、どういう倫理感を持ってるんだか、おれには非常に不思議だ。

415 名前:デフォルトの名無しさん [2007/11/24(土) 21:45:37 ]
>>399どなたかわかりませんか?

416 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 21:49:31 ]
>>415
使い方を間違っている


417 名前:407 mailto:sage [2007/11/24(土) 21:50:03 ]
アカの他人に厳しい人って、まさかと思うけど俺のことじゃないよね?
単にコピペネタなのかもしれんが。



418 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 22:06:10 ]
>>413
mac使えば良いんじゃない?

感染のリスクは比較的低いと思うよ

419 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 22:09:08 ]
>>413
macなら、ウィルスが流れ込んで来ても、
たいていはWin用だから、せいぜい自分は感染せずに済む

420 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 22:12:14 ]
>>417
お前の同僚がお前のために作ったツールが穴だらけなのは迷惑かもしれないが、
赤の他人が勉強のためか、vectorに登録するためか、もしくは仕事で作ったのかしらないけど、
彼がどの程度のものを作るのかわかってもいないうちから足を引っ張ろうとするのは倫理的にどうかと思うぞ。
お前に直接迷惑がかかるわけじゃないし、
仮に彼一人が作るのをやめたところで全体的には大して変化はないだろう。
それどころか彼の向上意欲やチャンスすら奪ってしまうことになりかねない。
お前は彼に責任を取れるのか?
文句を言いたいなら実際に迷惑を被った場合だけにしろ。

421 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 22:13:47 ]
(゚Д゚)ハァ?

422 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 22:37:47 ]
子ウィンドウをWM_LBUTTONDOWNで親ウィンドウの下に置いて
WM_LBUTTONUPで親の上に戻そうと思ってSetWindowPos()を弄ってるんですが
もしかして親ウィンドウの下に子ウィンドウを置く事はできませんか?
全然下がらなくて困っています

423 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 23:20:19 ]
>>420
彼乙彼

424 名前:デフォルトの名無しさん [2007/11/24(土) 23:45:33 ]
>>416
どういう事でしょうか?

hTabCtrl = CreateWindowEx(0, WC_TABCONTROL, NULL,
   WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE | TCS_RIGHTJUSTIFY,
   100, 100, 400, 100,
   hwnd, (HMENU)HTABCTRL, GetModuleHandle(NULL), NULL);

こんな感じで指定するのではないですか?

425 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 00:16:29 ]
GroupViewスタイルのListViewでグループの開閉(図参照)ってどうやればできるか誰かわかります?
LVGS_COLLAPSEDあたりかと思って試してみたけど変化なし・・・

図 www.youlost.mine.nu/html999/img/2298.jpg

426 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 01:37:37 ]
そりゃLVGS_***ったらGroupItemのスタイルだろ常考

コモンコントロールからの通知はWM_NOTIFYとLVN_***のはず

427 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 03:06:19 ]
逆引きリファレンスがほしいのですが
www.amazon.co.jp/C%E8%A8%80%E8%AA%9E%E9%80%86%E5%BC%95%E3%81%8D%E5%A4%A7%E5%85%A8-500%E3%81%AE%E6%A5%B5%E6%84%8F-%E5%B9%B3%E7%94%B0-%E8%B1%8A/dp/4798006475
を使ってる人いませんか?
ポチるかどうか悩んでるのですが
立ち読みしにいける環境じゃないので困ってまつ



428 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 03:28:07 ]
C言語スレか推薦図書スレか買ってはいけない書籍スレで聞け

429 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 09:41:35 ]
なんでこの程度の質問にも答えていただけないのですか?
しかも何故命令口調?
あなたに命令される覚えはありませんが?

430 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 09:48:01 ]
スレタイ嫁よ白雉

431 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 09:48:26 ]
スレ違い

432 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 09:52:24 ]
いや>>428は凄く親切だと思うぞw

普通ならスレ違いの一言で切って捨てられる所を
適切な質問先を示してるんだから。

433 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 12:48:39 ]
>>427
良書だよ
VC++版とあわせて両方かっとけ

434 名前:427 [2007/11/25(日) 13:28:26 ]
なんで>>429みたいな成りすましがいるのこのスレ
お前らだまされてるの?
それともだまされてるフリしてんの?

435 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 13:55:13 ]
鳥が付いてるわけでもなし

なりすましかどうかなんて誰も分からん

436 名前:427 mailto:sage [2007/11/25(日) 14:04:24 ]
なんでわからないの?

437 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 14:16:24 ]
>>424
msdn2.microsoft.com/en-us/library/bb760549.aspx
>TCS_RIGHTJUSTIFY
>The width of each tab is increased, if necessary, so that each row of tabs fills the entire width of the tab control.
>This window style is ignored unless the TCS_MULTILINE style is also specified.



438 名前:427 mailto:sage [2007/11/25(日) 14:17:09 ]
俺が本物だ

439 名前:427 mailto:sage [2007/11/25(日) 14:31:13 ]
そもそもTCS_RIGHTJUSTIFYって
#define 0x0000
だった希ガス

440 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 14:36:07 ]
コンソールで GetKeyboardState を実行しても戻り値は成功になりますが
引数バッファには結果は何も押していない状態になります。(もちろん色々押しています) 
ただ GetKeyboardState の直前に GetKeyState( 0 ) を実行すると
GetKeyboardState は正常な値が取得できます。
関数説明を見てもさっぱり挙動が理解できません、、
そもそも GetKeyboardState はコンソールで使用できないのでしょうか?

441 名前:427 mailto:sage [2007/11/25(日) 14:52:09 ]
GetKeyboradStateもGetKeyStateも
メッセージキューが所有する仮想キー情報からキーの状態を取ってくる

メッセージキューはスレッドがUSER32.DLLに属するAPIを最初に呼び出した時に作成される

したがって初めにGetKeyboradStateを呼んだときは
キューが作られた直後なので仮想キー情報は真っ白

442 名前:425 mailto:sage [2007/11/25(日) 15:23:32 ]
>>426
いや、コードから開閉したいんじゃなくて、開閉できるスタイルに設定したいんです。
>>425の画像のソフト以外で見たことないし自前でやってるのかな?

443 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 15:35:24 ]
msdn2.microsoft.com/en-us/library/aa930491.aspx

>state
>Currently, it can only be the following.

>LVGS_NORMAL
>Groups are expanded, the group name is displayed, and all items in the group are displayed.

どうも使えないっぽい
.NET2.0では利用可能な模様

444 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 15:37:44 ]
>>441
ありがとうございます。
説明不足でないですが、上記処理は何度も実行するループ部分でして
GetKeyState を入れるか入れないかで、
GetKeyboradState の動作がかわるのが、わけがわからないのです。
どちらもメッセージキューが必要ということは、
やはりコンソールではどちらも使用してはいけないのでしょうか?
_getch だと処理が止まってしまうので回避をしたいのが目的です。

445 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 15:54:40 ]
GetAsync〜の方を使ってみたら?

446 名前:425 mailto:sage [2007/11/25(日) 15:57:42 ]
>>443
サンクス。こっちでは何も書いてないんだけど、やっぱ無理かな?
msdn2.microsoft.com/en-us/library/bb774769.aspx
使い方は合ってるはずなのにできないってことは無理なのかもしれませんが

447 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 15:58:09 ]
>>444
コンソールで入力街に入るのを回避したいなら
_kbhitでチェックしてから_getchが常道かと



448 名前:デフォルトの名無しさん [2007/11/25(日) 17:14:34 ]
>>437
おぉありがとうございます。TCS_MULTILINEも指定しないと無視されるようですね。
また一つ勉強になりました。しかし、>>439を見て調べたのですがTCS_RIGHTJUSTIFYは
0x0000と定義されてました。これって指定できないということなんですかね???
いくら>>424のようにしても、TCS_RIGHTJUSTIFYはあってもなくても変わりませんよね?
0と論理和とっても変化なしですしね・・・どうすれば・・・

449 名前:440 mailto:sage [2007/11/25(日) 18:17:38 ]
>>445
同時キーや引数をいっぱい変えて GetAsyncKeyState を実行しまくるのが非効率でしたので
GetKeyboradState が理想でしたが、いろいろ無理そうですので素直に諦めます。

>>447
_getch よりも Get〜による同時押しも欲しかったのですが
いろいろ問題ありそうですんで諦めます 。
アドバイスありがとうございました。

450 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 19:16:31 ]
>>425
それってツリービューじゃ駄目なの?

451 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:20:21 ]
>>448
デフォルトでそういう動作っていう意味だろう

452 名前:425 mailto:sage [2007/11/25(日) 20:55:11 ]
>>450
表示の切り替え(アイコンとか詳細とか)が必要なんです。
何とかならんかなぁ

453 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:57:57 ]
>>452
予め自分でデータを持っておいて、ListViewがクリックされた時にその位置に挿入/削除して
擬似的にツリービュー的な動作を再現すればいいと思うが。

ネットで見かけるTreeListViewのサンプルとかがそういう事をしている。

454 名前:425 mailto:sage [2007/11/25(日) 21:10:19 ]
う〜ん、そうするしかないようですね。

455 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:05:50 ]
或いは詳細表示の時だけTreeViewに切り替えるとか。

456 名前:デフォルトの名無しさん [2007/11/26(月) 02:09:51 ]
比較的大きなドキュメントを読み込むときに、一気に読み込まず、一定のサイズごとに
シーケンシャルに読み込んでいくプログラム、例えばIE、でデータの読み込みにしたがって
右側のスクロールバーのスクロールボックスの大きさが小さくなっていく
ああいう動作はどうやって実現してるんだ?
スクロールバーの操作や、つまみ(スクロールボックス)のサイズの調整はできるんだが
読み込み中はスクロールバー自体が消えたようになってしまう。

ファイル読み込み(例えば256Byteずつ)のループ
{
ファイルの読み込み処理
行数を調べて
SetScrollInfo関数で、新しい範囲の設定
}

これでスクロールバーは更新されるはずなんだが・・ダメだ
ファイル全体の読み込み処理の終了の後、ウィンドウ全体を再描画させるとスクロールバーも出現する。

ちなみにクライアント領域の右側につく(WS_VSCROLL)、標準スクロールバーの話です。
SDK

457 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:16:02 ]
>これでスクロールバーは更新されるはずなんだが

されねえよw
それだとループしてる間はWM_PAINTが発生しないから再描画されるわけないだろ

手っ取り早いのは副スレッドで読み込みとスクロールバーの設定をしてInvalidateRectする
そうすればメインスレッドは滞りなく再描画する



458 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:32:52 ]
>>456
ウインドウメッセージを処理してやらなきゃ駄目だよ。
普通はマルチスレッド化、どうしてもスレッドが嫌ならループ内に
メッセージ処理を組み込む。

459 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:34:26 ]
RDW_FRAME
RDW_UPDATENOW
SWP_DRAWFRAME

辺りでぐぐれ

460 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:34:58 ]
それだけならDispatchMessageはさむだけで良さそうだけど
副作用出てくるような操作するときはマルチスレッドにするべき


461 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:36:09 ]
こんな時間に何してんだお舞ら

462 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:41:05 ]
質問に回答してるだけだが、何か?

463 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:45:46 ]
>>446
まだ見てるか分からんけど
msdn.microsoft.com/msdnmag/issues/07/08/WindowsCPP/default.aspx?loc=jp

>LVGS_COLLAPSIBLE 状態フラグを使用すると、グループを折りたたんだり展開したりできるようになります。
>グループを折りたたむと、グループに属するリストビュー項目が非表示になります。
>プログラムで LVGS_COLLAPSED 状態フラグを使用すると、グループを折りたたむことができます。

464 名前:456です。 [2007/11/26(月) 05:27:46 ]
一応、副スレッドでの読み込みでも同じようにやってみたけど×だったorz

>>457
スマソ
書き忘れた
SetScrollInfo();
InvalidateRect();
UpdateWindow();

と、きちんとやってるんだが
もちろんファイルから読み込んだ内容は順次表示されていく
だけど、スクロールバーが消えてしまう
で、これがなぜかわからない

一応ループ部分のソース(つっても分かりにくいと思う。)
do{
ZeroMemory(lpTemp, CHUNK_SIZE);
bRet = ReadFile(hFile, lpTemp, CHUNK_SIZE, &dwRead, NULL);

lstrcat(lppms->lpString, lpTemp);

iLines = StrChrCount(lppms->lpString, TEXT('\n')) + 1;//行数の取得
SendMessage(lppms->hwnd, WM_MY_SETRANGE, 0, (LPARAM)iLines); //メインスレッド内にある、ウィンドウプロシージャに範囲の設定の指示
//LPARAMで範囲の最大値を渡してる
InvalidateRect(lppms->hwnd, NULL, TRUE);
UpdateWindow(lppms->hwnd);
Sleep(100);
}while(dwRead && !lppms->bKill);

465 名前:デフォルトの名無しさん [2007/11/26(月) 05:28:24 ]
で、主スレッド内でのメッセージの受け取り
case WM_MY_SETRANGE:
si.fMask = SIF_RANGE;
si.nMin = 0;;
si.nMax = (int)lParam;
SetScrollInfo(hwnd, SB_VERT, &si, TRUE);
return 0;

466 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 07:11:19 ]
スクロールバーに再描画送ってない

467 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 08:44:59 ]
スレッドがスリープなりして使用権を返却していない。



468 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 10:37:47 ]
>>466だと思う

469 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 11:18:55 ]
仮想リストビューにアイテムを追加するときは
LVN_GETDISPINFOメッセージを監視して自分で追加していくのは解るのですが
どうやってLVN_GETDISPINFOメッセージを発生させるのでしょうか?
通常のリストビューのようにListView_SetItemでいいのでしょうか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<231KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef