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


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

Win32API 質問箱 Build7
501 名前:491 :02/12/13 18:44
そうでつか・・・。
長々とありがとございますた。

502 名前:デフォルトの名無しさん :02/12/14 02:16
画面の解像度を取得したいのですが、仮想スクリーンの場合に
仮想スクリーン全体ではなく実際に表示されるピクセル数を
取得できる API はありませんか?
例えば、1024x768 の LCD で 1280x1024 の仮想スクリーンを使っている
場合、1280x1024 ではなく、1024x768 を取得したいのです。
GetDeviceCaps ではできないようなので困ってます。


503 名前:デフォルトの名無しさん :02/12/14 02:55
>>502 さんのは GetSystemMetrics() か SystemParametersInfo()
あたりで取れないのかなーなんて見ていたら

GetSystemMetrics( SM_SLOWMACHINE )

なんてのを見つけました。これが TRUEとなるマシンってどんなんですか?
くだらない質問なんですけど。

504 名前:デフォルトの名無しさん :02/12/14 03:55
>>502
漏れは
GetSystemMetrics(SM_CXSCREEN)
GetSystemMetrics(SM_CYSCREEN)
を使ってるよ。

505 名前:デフォルトの名無しさん :02/12/14 04:30
Under Windows 95, use GetSystemMetrics(SM_SLOWMACHINE) to check for low-end computers. It returns a nonzero value if the computer has a 386 CPU, is low on memory, or has a slow display card.

The return values (bit flags) are:
0x0001 - CPU is a 386
0x0002 - low memory machine (less than 5 megabytes)

The following is notable for video:
0x0004 - slow (nonaccerated) display card

506 名前:デフォルトの名無しさん :02/12/14 04:34
>>503
486 マシンでも、それが TRUE になったのを見た事が無い。

507 名前:デフォルトの名無しさん :02/12/14 04:42
>>506
そりゃそうだ
灯台元、、、

508 名前:デフォルトの名無しさん :02/12/14 05:08
灯台元暮らし

509 名前:デフォルトの名無しさん :02/12/14 06:13
masokoをなめるには

どのれす?

510 名前:コロ助 :02/12/15 02:47
すいません。WinSockの質問をしたいのですが。
サーバーにHTTP接続を試みているのですが、うまく接続できません。

ソース
sock[n]=socket(AF_INET,SOCK_STREAM,0);

if(WSAAsyncSelect(sock[n],hW,SM_ASYNC,FD_CONNECT|FD_CLOSE|FD_READ|FD_WRITE))

lpServEnt = getservbyname("http", "tcp");

if(lpServEnt==NULL)
{
ser.sin_port=htons(80);
}
else
{
ser.sin_port=lpServEnt->s_port;
}

lpHostEntry=(LPHOSTENT)bufHostEnt;
ser.sin_family=AF_INET;
ser.sin_addr=*((LPIN_ADDR)*lpHostEntry->h_addr_list);

if(SOCKET_ERROR!=connect(sock[n],(LPSOCKADDR)&ser,sizeof(SOCKADDR_IN)))

HTTPだと駄目なのですが、SMTPやFTPならうまく接続できて、データも転送できます。
なぜ、HTTPだけ接続できないのでしょうか?

511 名前:コロ助 :02/12/15 02:50
>>510
あと、
if(WSAAsyncSelect(sock[n],hW,SM_ASYNC,FD_CONNECT|FD_CLOSE|FD_READ|FD_WRITE))
の部分は、訂正して、
WSAAsyncSelect(sock[n],hW,SM_ASYNC,FD_CONNECT|FD_CLOSE|FD_READ|FD_WRITE);
ifは無しということで・・・・。

512 名前:デフォルトの名無しさん :02/12/15 03:34
ネットワークスレのが回答付きやすいと思う

513 名前:デフォルトの名無しさん :02/12/15 03:48
昔、Cか宿題スレあたりで見たHNだな
>>コロ助

514 名前:デフォルトの名無しさん :02/12/15 04:40
>>510
ser.sin_zeroをゼロで初期化してやればいいんじゃない?

515 名前:デフォルトの名無しさん :02/12/15 06:17
リストビューの詳細表示を作っているのですが、ちょっと困っていることがあります。
デフォルトの背景ではなく、過去に選択された回数によって、
背景の色を変えたいのですが、いくつか問題があります。
オーナードローで書くとなると、文字まで全部自分で書かないといけないので大変すぎます。
また、項目によって、色を変えるための情報をどこに入れたら良いのかもわかりません。
ListView_SetItemStateで設定できるのも少ないです。
グローバルにしてしまうと、更新タイミングで値が狂うのでだめです。
どうしたらいいでしょうか。

516 名前:デフォルトの名無しさん :02/12/15 06:44
nm_customdraw

517 名前:名無し@沢村 :02/12/15 21:20
皆々様方〜、教えてくださらんか〜!!
それは画面のちらつきについてだが、私は最初WM_PAINTメッセージの中でペイントしてInvalidateRectで再描画するという方式だったのよ。
でもこれだとどうしても画面がちらついてしまうので、WEBで検索してダブルバッファ方式を採用したのよ。
この検索したページのダブルバッファ方式というのは裏画面にCreateCompatibleBitmapでビットマップをつくっておいて、
描画はすべて裏画面におこない再描画するときは裏画面のビットマップを表画面に転送するというものなのよ。
これでとりあえずは全然ちらつかなくなったのよ。
でもこれだと多分モニターかグラフィックボードの性能が悪いためだと思うけど、10秒くらい放っとくと突然画面にちゃんと色が出なくなってしまうのよ。
でも他のソフトなんか画面はちらつかないし、何時間やっても画面の色が出なくなることはないので、もっとうまいちらつき防止策をやっているはずなのよ。
まあ、WM_PAINTメッセージの中でペイントしてInvalidateRectで再描画しても10秒とまではいかないが、5分ほどで画面の色が出なくなってはいたわな…。
おそらくBITBLTを多用したためだという節が臭いわな…。
皆々様方〜、性能がボロっちいモニターやグラフィックカードでも他のソフトみたいに画面の色が出なくなったりしないいい方法を教えてくださらんか〜、皆々様方〜、お願いします〜♪

518 名前:デフォルトの名無しさん :02/12/15 21:21
>>517
compatibleDC

519 名前:デフォルトの名無しさん :02/12/15 23:19
>>517
セーフモードで動かしてみるべし。それでだめなら性能がボロだからではなく、あんたのプログラムがおかしい。(たぶんリソースの解放漏れ)


520 名前:名無し@沢村 :02/12/15 23:21
皆々様方〜、再描画における突然色が出なくなる問題だが、原因を突き止めたぞ、皆々様方〜♪
皆々様方〜、その原因というのはブラシとペンを多用しすぎていたためじゃ〜!
試しにブラシとペンをうんと減らしてみたら突然色が出なくなることはなくなった…。
ただ、あまり減らしすぎたんで、今度は画面のみてくれがしょぼくなってしまった…。
なんとかしょぼさを最低限に食い止めるためには、どうしてもあとひとつペンヲ増やす必要があるのだが、増やして大丈夫だろうか?
また突然色が出なくなったりしないだろうか?
皆々様方〜、ブラシとペンはいつくまでつくっても画面がおかしくならないか、教えてくだされ〜、皆々様方〜♪


521 名前:デフォルトの名無しさん :02/12/15 23:44
>>520
ちゃんと使ったら解放してるか?GDIオブジェクト。

522 名前:デフォルトの名無しさん :02/12/15 23:45
>>520
リソースメータ起動させて、様子見ながらやれよ。

523 名前:名無し@沢村 :02/12/16 00:11
皆々様方〜、ダメだ。ブラシ2、ペン3ではあまりみてくれがしょぼかったんで、
ブラシ2、ペン4に増やしてみたところ、長持ちはするが、やはり5分くらい再描画を繰り返すと、
突然画面に色が出なくなってしまうのよ。
どうもブラシ2、ペン3というのが、画面の色が出なくならないリミットらしいが、これだとあまりにしょぼすぎて完成作品がイヤになるわけよ。
どうしてもブラシ2、ペン4に増やしたいんだがなあ…。何かいい方法ない?
ところでリソースメータって何?フリーでありますか?それはどこからダウンロードできるのですか?

524 名前:デフォルトの名無しさん :02/12/16 00:12
>>523

>>521を無視した理由は?

525 名前:デフォルトの名無しさん :02/12/16 00:15
マルチポストだからじゃない?

526 名前:デフォルトの名無しさん :02/12/16 00:16
>>525


527 名前:名無し@沢村 :02/12/16 00:21
>>524
GDIオブジェクトというのは知らんが、GetDCで得たDCはReleaseDCしてるし、
BeginPaintで得たDCはEndPaintしてる。
裏画面用のmemDCは複数の関数で使うからグローバルにして、WM_DESTROYメッセージの中でDeleteDCしてる。
ペンとブラシのハンドルもDeleteObjectしてる。
これですべてだが、あと何かぬかりない?
また

528 名前:デフォルトの名無しさん :02/12/16 00:47
DeleteObjectのまえにSelectObjectで指定をはずすのを
忘れているに400デュカーティ

529 名前:名無し@沢村 :02/12/16 00:50
皆々様方〜、原因はペンとブラシの数にもあるが、それ以上にBITBLTを多用することにあるんじゃないかなという気がしてきたよ。
というのもリソースメータがアクセサリーの中に入っていたのを偶然発見しさっそく起動させて監視してみたところ、システムリソースとGDIリソースというのが見る見る少なくなっていくのがわかったからよ。
というのも私はファイルのデータの数だけforループさせてその分だけBITBLTで描画しているため何千回、何万回とBITBLTを使って広大な領域に描画していることになるわけよ。
何か常識で考えても何千回、何万回とBITBLTを使ったら画面がおかしくなりそうな気がしてきたわけだが、何千回、何万回もBITBLTを使って広大な領域に描画したら画面がおかしくなりますか?
教えてくだされ〜、皆々様方〜♪


530 名前:デフォルトの名無しさん :02/12/16 00:54
沢村がもうすぐアク制かけられるに3000BitBlt。

531 名前:デフォルトの名無しさん :02/12/16 00:56
プログラムを良く分かってないアフォがやることとしては
普通だと思うんだが、いかんせん書き方がウザイな。

>>529
テストするだけのプログラムを作って挙動を確かめては?

532 名前:デフォルトの名無しさん :02/12/16 01:24
>>529

>DeleteObjectのまえにSelectObjectで指定をはずすのを
>忘れている

533 名前:デフォルトの名無しさん :02/12/16 02:47
>>529

DeleteObject()に渡すハンドルの値と、その返り値を見てみろ。





534 名前:名無し@沢村 :02/12/16 20:17
>>532
SelectObjectで指定をはずすとはどういうことですか?
それはどうやるのですか?


535 名前:デフォルトの名無しさん :02/12/16 20:26
>>534
SelectObjectの返り値は何のためにあると思ってんだ…

536 名前:デフォルトの名無しさん :02/12/16 21:31
>>534
SelectObject(hdc, (HGDIOBJ)rand());

537 名前:デフォルトの名無しさん :02/12/16 23:33
それは(゚д゚)ウマー

538 名前:デフォルトの名無しさん :02/12/16 23:43
ダブルクリックをするとき、
1度目をクリックしてから2度目をクリックするまでに
ダブルクリックとみなされるポインタ移動量の許容範囲を知りたいのですが、
調べることのできる関数ってないですか?

539 名前:デフォルトの名無しさん :02/12/16 23:46
>>538
GetSystemMetrics()

540 名前:デフォルトの名無しさん :02/12/17 01:08
>>534
ペンもブラシも、デバイスコンテキストに選択したままだと削除できんから。「最初に選択されていたペン」「最初に選択されていたブラシ」を選択し直せば、選択解除される。>>535も参照

541 名前:デフォルトの名無しさん :02/12/17 05:50
Win32APIはフリーソフトですか?
どこでダウンロードできますか?
教えてください

542 名前:デフォルトの名無しさん :02/12/17 06:00
ダウンロードでも何でも貴方の脳内でお好きなだけどうぞ。

543 名前:538 :02/12/17 07:57
>539
ありがとう!
わかりました!

544 名前:デフォルトの名無しさん :02/12/17 10:54
>>541
MXにwindowsっていうのがあるからそれ落とせ


545 名前:デフォルトの名無しさん :02/12/17 14:04
ExcelのVBAを使って、IE(HTMLページ)上のドロップダウンリストの
各アイテムの文字列を取得しようとしたところうまくいきませんでした。

通常のアプリケーションにあるドロップダウンの場合には、正しく
取得できるのですが、IEのドロップダウンだと文字化けしたような
ものが返ってきます。

以下のようにSendMessage()で取得しようとしています。
SendMessage hWnd, CB_GETLBTEXT, idx, str

hWndはドロップダウンのハンドル、idxは取得したいアイテムの
インデックスを指定しています。

ドロップダウンは以下のような<SELECT>タグでできるやつのことです。

<select>
<option>abc</option>
<option>def</option>
<option>ghi</option>
</select>

IE上のドロップダウンの文字列を取得する方法をご存知の方、よろしく
お願いします。


546 名前:デフォルトの名無しさん :02/12/17 15:36
IEのドロップダウンはウィドウではないが
hWndはどこから湧いてきたんだ?

547 名前:545 :02/12/17 16:09
FindWindowExです。
クラス名はInternet Explorer_TridentCmboBxというものみたいです。
よろしくお願いします。


548 名前:デフォルトの名無しさん :02/12/17 19:26
あれはhWnd持ってないはず

549 名前:デフォルトの名無しさん :02/12/17 20:50
>>544
ありがとうございました
ところで、Win32APIは何をするソフトなのでしょうか?
お願いします

550 名前:デフォルトの名無しさん :02/12/17 20:53
>>545
HTML取得してあるんだったらHTMLから取得したほうが早くないかね。

551 名前:デフォルトの名無しさん :02/12/18 01:32
TreeView の表示フォントを変更するにはどうしたらよい?

552 名前:デフォルトの名無しさん :02/12/18 01:43
>549
544を本気にしちゃダメ。
というか、Win32APIはソフトの名前じゃないよ。
http://www.wdic.org/?word=Win32API+%3ATECH



553 名前:デフォルトの名無しさん :02/12/18 02:29
Win82API に、非公開ファンクションとして、IsSheAVirgin というものが
あるということがわかりました。

戻り値は BOOL ということまでわかったのですが、引数がわかりません。

どなたか教えて下さい。おながいします。

554 名前:デフォルトの名無しさん :02/12/18 02:33
やっぱ自分でおもしろいと思ってるからageてるんだろうな

555 名前:デフォルトの名無しさん :02/12/18 02:33
( ゚д゚)ポカーン

556 名前:デフォルトの名無しさん :02/12/18 02:39
痛々しいな

557 名前:デフォルトの名無しさん :02/12/18 03:02
>>553-556 (・∀・)ジサクジエンデシタ

558 名前:デフォルトの名無しさん :02/12/18 08:25
何だ、馬鹿の国から馬鹿を宣伝しに来た馬鹿か?

559 名前:デフォルトの名無しさん :02/12/18 08:41
>>558
おいおい。失礼なこと言うな。
あちらではバカは崇拝の対象なんだから。
郷に入られてもあちらの郷を知る努力くらいしてやれ。

560 名前:デフォルトの名無しさん :02/12/18 08:43
馬鹿の国から出て来た時点で、馬鹿の方が郷に従うべし。

561 名前:名無し@沢村 :02/12/18 09:40
>>540
すまんス。
「ペンもブラシも、デバイスコンテキストに選択したままだと削除できんから。「最初に選択されていたペン」「最初に選択されていたブラシ」を選択し直せば」の意味がわからんス。
ちなみに、私がやってみたのは、
ペン、ブラシの作成は、
void CreatePen_Brush()//ペンとブラシを作成
{
hBrush=CreateSolidBrush(RGB(255,255,255));
hBrush2=CreateSolidBrush(RGB(192,192,192));
hPen=CreatePen(PS_SOLID,1,RGB(192,192,192));
hPen2=CreatePen(PS_SOLID,1,RGB(0,192,0));
hPen3=CreatePen(PS_SOLID,1,RGB(255,0,0));
hPen4=CreatePen(PS_SOLID,1,RGB(0,0,0));
}
の中で行ない、
描画でSelectObject(hMemDC,hPen2);みたくデバイスコンテキストにhMemDCを選択してるから、
削除は、
void DeletePen_Brush()//ペンとブラシを削除
{
if(hBrush)DeleteObject(SelectObject(hMemDC,hBrush));//ブラシ削除
if(hBrush2)DeleteObject(SelectObject(hMemDC,hBrush2));//ブラシ削除
if(hPen)DeleteObject(SelectObject(hMemDC,hPen));//ペン1削除
if(hPen2)DeleteObject(SelectObject(hMemDC,hPen2));//ペン2削除
if(hPen3)DeleteObject(SelectObject(hMemDC,hPen3));//ペン3削除
if(hPen4)DeleteObject(SelectObject(hMemDC,hPen4));//ペン3削除
}
でいいのですか?

562 名前:デフォルトの名無しさん :02/12/18 09:42
値追うの面倒だからもしかしたらあってるかもしれんがそのやり方、なんか妙だぞ?


563 名前:名無し@沢村 :02/12/18 09:47
ただリソースメーターを起動してみたところ、これでもGDIリソースとシステムリソースがどんどん減るっス。

564 名前:名無し@沢村 :02/12/18 09:49
ただ画面から色が出なくなることはほとんどなくなったっス。
でもリソースの減り方が気になるっス…。

565 名前:デフォルトの名無しさん :02/12/18 09:49
>>563
さて、結局どのGDIリソースが解放されてないのか追ってみよう!俺は嫌だ。


566 名前:名無し@沢村 :02/12/18 09:52
>>565
どのGDIリソースが解放されてないのかはリソースメーターではわからないのですか?
リソースメーターに減っているリソースを特定するオプションはついていないのですか?
またフリーソフトでどのGDIリソースが解放されてないのか調べることができるのはありますか?

567 名前:デフォルトの名無しさん :02/12/18 09:54
>>566
お前の挙げたコードの時点で明らかにおかしいんだから初心者本なりリファレンスなり見て書き直せ。

568 名前:デフォルトの名無しさん :02/12/18 10:00
沢村氏ね

569 名前:デフォルトの名無しさん :02/12/18 10:01
hOldPen=SelectObject(hMemDC,hPen);

       :

SelectObject(hMemDC,hOldPen);
DeleteDC(hMemDC);

リファレンス嫁


570 名前:名無し@沢村 :02/12/18 10:15
>>569
hOldPenは削除しなくてもいいのですか?

571 名前:デフォルトの名無しさん :02/12/18 10:19
>>570
するに決まっている

572 名前:名無し@沢村 :02/12/18 10:20
>>569
hOldPen=SelectObject(hMemDC,hPen);
hOldPen=SelectObject(hMemDC,hPen2);
hOldPen=SelectObject(hMemDC,hPen3);        :

SelectObject(hMemDC,hOldPen);
DeleteDC(hMemDC);
ですか?
それとも、
hOldPen=SelectObject(hMemDC,hPen);
hOldPen2=SelectObject(hMemDC,hPen2);
hOldPen3=SelectObject(hMemDC,hPen3);        :

SelectObject(hMemDC,hOldPen);
SelectObject(hMemDC,hOldPen2);
SelectObject(hMemDC,hOldPen3);
DeleteDC(hMemDC);
ですか?

573 名前:デフォルトの名無しさん :02/12/18 10:21
前者は意味ないだろう…

574 名前:名無し@沢村 :02/12/18 10:23
>>571
SelectObject(hMemDC,hOldPen);
DeleteDC(hMemDC);
DeleteObjectC(hOldPen);
ですか?
それとも、
SelectObject(hMemDC,hOldPen);
DeleteObjectC(hOldPen);
DeleteDC(hMemDC);
ですか?



575 名前:デフォルトの名無しさん :02/12/18 10:25
>>574
つぅかペン切り替えになぜDCを破棄する。

576 名前:名無し@沢村 :02/12/18 10:25
あ、わかった。
hOldPen=SelectObject(hMemDC,hPen);
hOldPen2=SelectObject(hMemDC,hPen2);
hOldPen3=SelectObject(hMemDC,hPen3);        :

SelectObject(hMemDC,hOldPen);
DeleteObjectC(hOldPen);
SelectObject(hMemDC,hOldPen2);
DeleteObjectC(hOldPen2);
SelectObject(hMemDC,hOldPen3);
DeleteObjectC(hOldPen3);
DeleteDC(hMemDC);
だね〜。違う?

577 名前:デフォルトの名無しさん :02/12/18 10:26
>>576
hOldPen=SelectObject(hMemDC,hPen);
hOldPen2=SelectObject(hMemDC,hPen2);
hOldPen3=SelectObject(hMemDC,hPen3);   


わかってない。

578 名前:デフォルトの名無しさん :02/12/18 10:27
CreateDC→CreatePenならDeletePen→DeleteDC
CreatePen→CreateDCならDeleteDC→DeletePen

作成した順とは逆に開放するのが望ましい




579 名前:デフォルトの名無しさん :02/12/18 10:28
>>576
Pen切り替えすぎだろう…
Pen3しか生きてない

580 名前:デフォルトの名無しさん :02/12/18 10:31
沢村様専用スレはここですか

581 名前:名無し@沢村 :02/12/18 10:34
え〜と皆々様方、まとめますとですね〜♪
hPenやhPen2やhPen3は描画関数の中で破棄する。
DCは描画関数の中で破棄すると再描画されなくなるので(というのは複数の関数で使うためグローバルにして関数の外でGETしているため)
最後にWM_DESTROYメッセージの中で破棄している。
その際、最初に選択されていたDCに戻すためhOldPenというのをわざとつくって、SelectObject(hMemDC,hOldPen3);でDCを最初に戻したあと、DeleteDC(hMemDC);
でDCを破棄する…と、まあこんな感じでいいのですか?


582 名前:デフォルトの名無しさん :02/12/18 10:35
Yes.




-----------------------------------------------
CR


583 名前:デフォルトの名無しさん :02/12/18 10:38
main(argv,argc)のargv[0]と同じ文字列(exeのフルパス)を
取得するAPIはありますか?

584 名前:デフォルトの名無しさん :02/12/18 10:39
沢村よ、お主はDCがそもそも何なのかがわかってないのと違うか?
いっぺんCreateXXX,SelectObject,DeleteObjectが何をしているのかを
図解説明してみてはどうだ,自分に対してでいいから
脳内で説明ついてないと>>576のような変なコードを書くことになる
面倒だろうがちゃんと紙に書いてみろ,断片的なアドバイスより為になるぞ

585 名前:デフォルトの名無しさん :02/12/18 10:39
>>583
>main(argv,argc)

おかしいぞ。後、winmain()の引数に入ってる。

586 名前:デフォルトの名無しさん :02/12/18 10:42
>>583
main(argc,argv)な

GetModuleFileName

587 名前:デフォルトの名無しさん :02/12/18 10:42
> DC

ダ・カーポでつか?
直流電源でつか?

588 名前:名無し@沢村 :02/12/18 10:43
>>583
winmain()の引数のLPSTR lpszCmdLineというのが、main(argv,argc)のargv[0]と同じ文字列(exeのフルパス)を
取得するAPですよ。まかせなさーいって!!

589 名前:デフォルトの名無しさん :02/12/18 10:43
>>587
何を煽ってるか知らんがdevice context WindowsAPI使いなら常識かと。

590 名前:デフォルトの名無しさん :02/12/18 10:44
>>587
紀元後の事だって

591 名前:デフォルトの名無しさん :02/12/18 10:44
>>588
引数をAPIとか言うなってw

592 名前:デフォルトの名無しさん :02/12/18 10:49
>>591
騙されるな。
AP と言っている。

593 名前:デフォルトの名無しさん :02/12/18 10:50
> lpszCmdLineというのが、main(argv,argc)のargv[0]と同じ文字列

(゚Д゚)ハァ?

594 名前:デフォルトの名無しさん :02/12/18 10:50
>>592
・・・アプリケーション?

どうでもいいが質問者はMFC使ってるに3hThread

595 名前:デフォルトの名無しさん :02/12/18 10:51
アクセスポイント?

---
argv[0] != LPSTR lpszCmdLine


596 名前:名無し@沢村 :02/12/18 10:52
>>584
わかってないよ。そもそも俺はプログラマーではないからな。それはおろか学校でも習ってないし、情報処理技術者の資格すら持たんよ。
完全なド素人だよ。本ちょっと読んで覚えかじっただけ!!知らなくて当たり前だろ!!
だからもっと親切に教えてくれよな?
まあそんな俺でも昔某社のプログラムコンテストで1位になったことがあるんだよ。すごいだろ?

597 名前:デフォルトの名無しさん :02/12/18 10:52
>>595
ふと思ったけどじゃあコマンドラインオプションって自分で切り出さないといけないわけ?


598 名前:デフォルトの名無しさん :02/12/18 10:53
> どうでもいいが質問者はMFC使ってるに3hThread

どうしてそう思ったのか訊きたいけど

599 名前:デフォルトの名無しさん :02/12/18 10:54
Iは書いてないな。
でもAPってなんの意味だ?

600 名前:デフォルトの名無しさん :02/12/18 10:54
沢村最高〜!!

601 名前:デフォルトの名無しさん :02/12/18 10:55
PENの問題は解決したのか・・・?

602 名前:デフォルトの名無しさん :02/12/18 10:55
>>597
その通り。
ただし、NT には CommandLineToArgvW() がある。

603 名前:デフォルトの名無しさん :02/12/18 10:55
>>597
他は知らないけど俺は切り出してargv[]につめこんで
アダプタ通してアクセスしてる


604 名前:デフォルトの名無しさん :02/12/18 10:56
>>602
勉強になりました。

605 名前:デフォルトの名無しさん :02/12/18 10:56
>>603
どもども。一手間多いですなw

606 名前:デフォルトの名無しさん :02/12/18 10:56
> だからもっと親切に教えてくれよな?
> まあそんな俺でも昔某社のプログラムコンテストで1位になったことがあるんだよ。すごいだろ?

あほらし。

607 名前:名無し@沢村 :02/12/18 10:58
>>584
まあ昔ちょっとプログラマーやってたことはあるよ。
経営者が20代の何も知らんやつで社員数4〜5名のちいさな会社でコンピュータのこと何も知らんやつばかりだったから昔某社のプログラムコンテストで1位になったこと言うと、間違ってプログラマーで採用してくれたんだ。
その会社はすぐつぶれたけどね。
はっきり言って俺はプログラムの完全なド素人だね!!

608 名前:デフォルトの名無しさん :02/12/18 11:00
> 完全なド素人だよ。本ちょっと読んで覚えかじっただけ!!知らなくて当たり前だろ!!

知らない事が当たり前かどうかは知らないが、知らない事があったら勉強しようとするのが
当たり前。

609 名前:デフォルトの名無しさん :02/12/18 11:00
> はっきり言って俺はプログラムの完全なド素人だね!!

いばるな。

610 名前:デフォルトの名無しさん :02/12/18 11:01
沢村に訊く。
馬鹿の国から馬鹿を宣伝しに来たような見事な馬鹿とはお前の事か?

611 名前:デフォルトの名無しさん :02/12/18 11:03
>>610
バカは崇拝の対象だ。

612 名前:名無し@沢村 :02/12/18 11:05
>>608
知らない事があったら2chで聞いて勉強するの。
それも立派な方法。

613 名前:デフォルトの名無しさん :02/12/18 11:07
>>612
なぜ2ch?
周りにはいないのかい?

614 名前:デフォルトの名無しさん :02/12/18 11:08
まともな解答がつくか怪しい方法を立派と呼べるかは疑問。
とりわけ、そのように人の労力にあて込んで自助努力をしない人の場合では。

615 名前:デフォルトの名無しさん :02/12/18 11:08
>>611
またお前かw

616 名前:名無し@沢村 :02/12/18 11:09
俺はプログラムの素人だぜ。
プログラマーと知り合うチャンスはなかったよ。
プログラマーに誰一人知り合いはいねーよ。

617 名前:デフォルトの名無しさん :02/12/18 11:10
>>615
オマエモナー

618 名前:名無し@沢村 :02/12/18 11:12
>>614
俺は結構努力をするほうだぜ。
そのような努力があったから、昔某社のプログラムコンテストで優勝できたのよ。

619 名前:デフォルトの名無しさん :02/12/18 11:14
じゃ自分で調べて下さい

620 名前:デフォルトの名無しさん :02/12/18 11:15
>>618
何を作ったのか知りたい・・・

621 名前:デフォルトの名無しさん :02/12/18 11:16
584 に対して 596 のようなレスを返した人間の吐いたセリフとは思えんな。

622 名前:デフォルトの名無しさん :02/12/18 11:18
>>618
教えて君が立派と言っているおまえが努力家なわけねぇだろ
あの程度の質問なら普通、猫でもROMってくるもんだぜ

623 名前:デフォルトの名無しさん :02/12/18 11:19
つーか、沢村はまず腹筋 100 回。
話はそれからだ。

624 名前:デフォルトの名無しさん :02/12/18 11:19
> 猫でもROMってくる

意味がちょっとおかしいと思うんですけど

625 名前:デフォルトの名無しさん :02/12/18 11:21
お前ら!!
沢村の気持ちも考えろよ!!

沢村はな!!
沢村は・・・

・・・すまん、漏れもよくわからん

626 名前:デフォルトの名無しさん :02/12/18 11:23
(´-`).。oO(とうとうこんな日が来たか。。。)

627 名前:デフォルトの名無しさん :02/12/18 11:24
沢村ってポケモンじゃなかったっけ?
www.nintendo.co.jp/n01/n64/software/nus_p_nalj/smash/Pokemon.html


628 名前:デフォルトの名無しさん :02/12/18 11:25
とびげり?

629 名前:デフォルトの名無しさん :02/12/18 11:26
>>627
そうだ。ダウソしたポケモンII。プレイしかけだったんだ。思い出した。ありがとう。

(でも、昔のSAGA3の様な新鮮さが無いのはなぜだろう・・・。)○。

630 名前:デフォルトの名無しさん :02/12/18 11:26
飛び下痢?



イ、イャアァァァァァァァ・・・

631 名前:584 :02/12/18 11:28
>>596
それは漏れも同じだ
Win32は社会人になってから同僚と一緒に憶えたし
情報処理技術者の資格取るときに勉強したこともWin32とは全然関係なかった
本を読みかじって覚えたのも同じさ

漏れなりに親切に教えたつもりだが?
ちゃんと紙に書けと言っただろ
それは漏れ自身がWin32を覚えるときの鍵になったことだからだ
大学ノート数冊使い切るくらい書きまくれ

腕利きのプロも元はど素人
断片的な質問よりどうやって這い上がったか訊いてみろ

632 名前:デフォルトの名無しさん :02/12/18 11:30
> 断片的な質問よりどうやって這い上がったか訊いてみろ

変な誘導は止めてくれ
むしろ板の平和の為に、去ってくれるように仕向けていただけると

633 名前:デフォルトの名無しさん :02/12/18 11:33
逃げろ

634 名前:584 :02/12/18 11:38
>>632
変な誘導とは何のことだ
コテハン叩きの邪魔がイヤなのか

635 名前:デフォルトの名無しさん :02/12/18 11:40
>>634
だってスレ違いだろ

636 名前:584 :02/12/18 11:40
>>635
何が

637 名前:デフォルトの名無しさん :02/12/18 11:42
>>636
沢村が聞き込みを始める恐れあり
>>636
沢村が聞き込みを始める恐れあり

ここはWin32API 質問箱

638 名前:デフォルトの名無しさん :02/12/18 11:44
584は沢村にWin32APIの事を教えていたような・・・

639 名前:デフォルトの名無しさん :02/12/18 11:45
ここが噂の沢村スレですか

640 名前:デフォルトの名無しさん :02/12/18 11:59
ついに本性を表したか教えてクンが

641 名前:デフォルトの名無しさん :02/12/18 12:57
>>584
一人の教えて君にスレ占領されるのはいかがなものか

>>551
カスタムドローしる


642 名前:デフォルトの名無しさん :02/12/18 13:27
>>ALL
つーか沢村はネタだろ・・・

643 名前:デフォルトの名無しさん :02/12/18 15:40
最初から放置しておけばいいものを。
これまでもこのスレや他のスレで散々奴の醜態を見てきただろうに。
ここまでくると教えてやろうと思ってる奴も相当痛い。無駄な努力はよせ。

644 名前:デフォルトの名無しさん :02/12/18 21:43
つーか、petzold本嫁。以上。

645 名前:戸塚ヨット :02/12/19 09:56
自分は初心者なんですが、
みなさんはwin32でくむとき本か何かをそばに置いてくむんですか?
それともあの膨大な量の関数やら構造体やらすべて覚えていらっしゃるのですか?

646 名前:デフォルトの名無しさん :02/12/19 10:32
>>645
Win32自体については本ではなくMSDNライブラリ(VCヘルプ)で見てる
机の上の紙類は,作ろうとしてるアプリの内容に関わる資料だ

647 名前:デフォルトの名無しさん :02/12/19 10:46
Win32 を一言で表すと?

648 名前:デフォルトの名無しさん :02/12/19 11:06
>>647
環境

649 名前:デフォルトの名無しさん :02/12/19 11:12
>>647
ぬるぽ

650 名前:デフォルトの名無しさん :02/12/19 13:06
>>645
Windowsプログラム初心者のときはペゾルト本見てた

651 名前:デフォルトの名無しさん :02/12/19 13:13
>>645
MSDN

652 名前:デフォルトの名無しさん :02/12/19 17:36
基本はMSDNをみながら、どうしても分からなければ参考になりそうなものを検索
間違ってもBBSなんかで質問はしない

653 名前:デフォルトの名無しさん :02/12/19 17:55
>>652
そうだな
たまに珍しい話を見かけて
それについてMSDNを調べることはあるが

654 名前:デフォルトの名無しさん :02/12/19 18:36
DialogBoxでリソースからモードレスダイアログ作って、
WM_INITDIALOG 時に、ダイアログ上にある Edit にテキストをセットすると、
全て選択された状態で表示されるんですが
選択範囲を解除するには、どのタイミングで EM_SETSEL を
送ればいいんでしょうか?

WM_INITDIALOG で送ると上手くいかないっぽいです。

655 名前:デフォルトの名無しさん :02/12/19 18:42
質問です。

SetWidowLong()でスタイル変更した後、SetWindowPos() で
SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED
を指定してるのですが、再描画されません。
(その後、ウィンドウをつまんで移動させたりすると再描画されます)
下がその部分のコードなのですが、なにか足りないものがあるのでしょうか?

 SetWindowLong( GetDlgItem(hDlg, IDC_UNLOADHOOK), GWL_STYLE, nLastLong | WS_DISABLED ) ;
 SetWindowPos( hDlg, NULL, 0, 0, 0, 0,
   SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED );




656 名前:654 :02/12/19 18:48
すいません、自己解決しました。
0を返さないといけなかったようでつ。

657 名前:デフォルトの名無しさん :02/12/19 19:47
>>655
再描画の処理が足りません…

658 名前:名無し@沢村 :02/12/19 20:25
皆々様方〜、教えてくだされ〜♪
それはトラックバーだが、現在3つのトラックバーとその他いろいろなコントロールをつけているのよ。
で、その3つのトラックバーのうちの一つだが、ウインドウを最小かしてもとにもどしたり、ファイルを開くダイアログを開いてその中のフォルダを開いたりすると消えるのよ。
もろもろのコントロールの中で、その3つのトラックバーのうちの一つだけが消えるのよ。
ためしに3つのトラックバーの順序を入れ替えてみたら消える位置に入れ替えたトラックバーがやはり消えた…。
最初FillRectで画面全体を塗りつぶしていたので再描画のとき下に隠れて描画されていないのかと思ったが、
手さぐりでいくらクリックしても反応ないのでどうもトラックバー自体がなくなってるみたいです…。
皆々様方〜、どうすればこれが直るのですか?教えてくだされ〜皆々様方〜♪

659 名前:デフォルトの名無しさん :02/12/19 20:37
↑相手にしない

660 名前:デフォルトの名無しさん :02/12/19 21:56
(・∀・) ニヤニヤ

661 名前:デフォルトの名無しさん :02/12/19 22:19
>>641
ありがとやした。
ところで、TreeView の各アイテム毎に指定する必要がない場合でも
個々にカスタムドローしないといけないもんなんでしょか。
なんか方法がありそうな気はするんですがわからんちんです。

662 名前:デフォルトの名無しさん :02/12/19 23:31
(´∀` )エヘヘ VB初心者質問スレ Part19
http://pc3.2ch.net/test/read.cgi/tech/1039859691/
から移動してきました。

Windows2000でファイルシステムがNTFSの場合、
txtやExcel、JPG等のファイルのプロパティ⇒「概要」で
作成者や、タイトル、コメント等を入力できるんですが、
その入力した内容を得るには
なんていうAPI関数使えばいいですか?

日付、ファイルサイズの取得はできたですがそれ以降わかりません

ExtendedProperty
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/objects/shellfolderitem/extendedproperty.asp
を使えばできそうな気がするんですが、いまいちわかりません
よろしくお願いします

663 名前:デフォルトの名無しさん :02/12/19 23:35
C++スレよりやってまいりましたっ

C++で作成したアプリケーションについてですが
Spy++とかで確認することができる
クラス名があるじゃないですか。
あれはバイナリ(exe)にはどんな風にして格納されてるんでしょうか?

やりたいことはメインウィンドウのクラス名を
バイナリエディタで書き換えたいのです。

よろしくおながいします(´・ω・`)

664 名前:五右衛門 :02/12/19 23:36
沢村はリソース問題は解決したのかはっきりすべし。
その返答次第では斬る。

665 名前:デフォルトの名無しさん :02/12/19 23:39
>>661
SETFONTじゃ変わらなかったっけ?

666 名前:デフォルトの名無しさん :02/12/19 23:39
>>664
トリップも付けてないし途中で出現した奴は騙り荒らしだろ

667 名前:デフォルトの名無しさん :02/12/19 23:51
>>663
単なる静的文字列として格納されているかもしれないし
リソースとして格納されているかもしれないし
それはアプリの実装次第。

668 名前:デフォルトの名無しさん :02/12/20 00:03
>>663
んなもん書き換えてどーすんだ?

669 名前:名無し@沢村 :02/12/20 00:22
>>664
リソース問題はまだ解決しとらんよ。
長時間使ってみることがないので、いまのところ問題は生じとらんので、とりあえずほっといて、次をやってるところ…。

670 名前:デフォルトの名無しさん :02/12/20 00:59
沢村は斬られますた

671 名前:デフォルトの名無しさん :02/12/20 01:08
また、つまらぬものを…

672 名前:次元 :02/12/20 02:04
つまり、みんなの善意は無に帰した訳だ。
そりゃぁ、五右衛門も我慢ならねぇわな。
おいルパン。次行こうぜ。

673 名前:デフォルトの名無しさん :02/12/20 03:43
>>668
えっとですね、そのアプリは多重起動を防止しているんですが、
おそらく、ウィンドウクラス名でチェックしてるんではないかなと思って
それを解除したかったのです。
ちなみにタイトルのキャプションは見てないようでした。

よろしくお願いします。

674 名前:デフォルトの名無しさん :02/12/20 03:45
>>667
アプリの実装しだいというのはどういうことでしょうか?
ちなみに静的文字列ではないようでした。
バイナリエディタで検索してみたのですが、見つからなかったので・・・。

675 名前:デフォルトの名無しさん :02/12/20 04:55
>>673
Mutex とかは?

>>674
本当?
それが UNICODE アプリだったりした場合は UNICODE で格納されているけど。

676 名前:デフォルトの名無しさん :02/12/20 06:16
>>674
普通はミューテックスを使うと思う
圧縮されいることもあったりする

677 名前:デフォルトの名無しさん :02/12/20 06:51
>>662
http://www.microsoft.com/japan/msdn/windows/windows2000/ntfs5.asp
のサンプルコード1


678 名前:デフォルトの名無しさん :02/12/20 15:31
>>675
StirlingのコードセットをUnicodeにかえて
検索してみましたが発見できませんでした・・。

>>675,>>676
・Mutexについて
もしMutexを使用していた場合、
対象バイナリを変更することによって
多重起動を可能にすることは可能なのでしょうか?

以前・・・かなり昔ですが・・・多重起動が禁止されている
ソフトを多重起動可能にする(100%ではない)
ユーティリティがあったのですが
どうやってやっていたのか不思議です。。。
バイナリが2バイトだけ直接書き換えられていました。
検索してももう見つからなかったです。

679 名前:デフォルトの名無しさん :02/12/20 16:09
起動チェック用Mutexの作成失敗時における
条件分岐を潰すだけだろ。

680 名前:デフォルトの名無しさん :02/12/20 16:43
それか、Mutexを識別する文字列をちょこっとだけ変えるとか。
でも、プログラム勝手に変えちゃダメだぜ。カタギの人なら。

681 名前:デフォルトの名無しさん :02/12/20 17:27
そうなん? ライセンスで別途禁止されていなければ
プログラムの著作物に関しては
電子計算機においてより効果的に利用し得るようにするために
必要な改変は認められるって例外規定があったような

682 名前:名無し@沢村 :02/12/20 18:45
皆々様方〜、リソースのちゃんとした開放について考えてるうちふと思ったんだが、
DeleteObject(hPen);
のかわりに、
Zeromemory(hPen,sizeof(hPen));
っのは使えるの?なんかこっちのほうがちゃんと開放されそうな印象だが…。

683 名前:デフォルトの名無しさん :02/12/20 19:11
ハンドルってそういうことが出来ない様に抽象化されたものじゃないの?
HBITMAPやHFONTも4バイトで済むとお思いか?


684 名前:デフォルトの名無しさん :02/12/20 19:21
>>682
Cを一から勉強することをオススメする。

ちなみにあなたの言っていることは、
「char *x=malloc(128);と確保したメモリを、
free(x);のかわりにx=0;にした方がいいのでは?」
という質問とあまり変わらなかったりする。

685 名前:精神科医 :02/12/20 19:26
DeleteObject==ZeroMemoryとなぜ思ったのですか?
Deleteが付けばメモリクリアする物だと思ってるのですか?
先生の薬をちゃんと飲みましたか?

686 名前:デフォルトの名無しさん :02/12/20 19:30
>>679
そのユーティリティは対象アプリのパスを渡すだけで
バイナリを自動的に修正していました。
外部から条件分岐の場所を判別することって
できるものなのでしょうか?

>>680
Mutexを識別する文字列はどのようにして
格納されているのでしょうか?
VC++でビルドされたものと限定しても構いません。
これがわかればそこを数バイト書き換えれば
うまくいきそうですね。

687 名前:名無し@沢村 :02/12/20 19:44
>>684>>685
リソースを開放することと、メモリをクリアすることは違うのですか?
リソースって結局メモリのことだよね?
するとクリアと開放の違い…?
そもそも開放とは何なのですか?

688 名前:デフォルトの名無しさん :02/12/20 19:49
>>687
根本的に判ってない。
>リソースって結局メモリのことだよね?
違う。「リソース=資源」。メモリに限らず、デバイスとかもリソース。
リソースの確保とは、「これから漏れが使うから、他のヤシに使わせないように汁!」で、
リソースの開放とは、「使い終わったから、他のヤシに使わせて良いよん」である。どうやって
確保するかは処理系によって変わる。

689 名前:688 :02/12/20 19:54
って、WinAPIのスレだった…「どうやって…」以降は蛇足だな。

690 名前:名無し@沢村 :02/12/20 19:59
>>688
他のヤシとは他のソフトのこと?
hDC=GetDC(hwnd);
でデバイスhDCを確保した場合、その前にhDCを使っているソフトがあるということ?
hDCをhxxxxyyyyDCと恐らく誰も使わない名前にした場合も、他にもhxxxxyyyyDCを使っているソフトがあるから、
他のヤシに使わせないように汁、だったり、他のヤシに使わせて良いよん、だったりするわけ?

691 名前:名無し@沢村 :02/12/20 20:07
また、プログラムの中でリソースを確保する部分はいくつかに決まっているから、
最初リソースを確保したら、最初確保した分だけリソースが減ってあとは減らないはずなのに、
使っているうちどんどん減っていくのはどうして?

692 名前:デフォルトの名無しさん :02/12/20 20:09
>>691
(゚Д゚) ハァ?

693 名前:名無し@沢村 :02/12/20 20:15
あ、わかった。関数の中でリソースを確保したり開放しているからだ!
だからちゃんとリソースが開放されていないと、関数を呼び出した回数だけどんどんリソースを確保していくことになるから、リソースがどんどん減っていくんだ!!
だとすると…解決方法がわかったぞ!!
リソースをグローバルにして確保と開放を関数の外のプログラムの最初と最後の部分で1回だけやればいいんだ!!
そうするとちゃんと開放されなくてもリソースはどんどん減ることはない…と思うがどうですか?

694 名前:デフォルトの名無しさん :02/12/20 20:20
( ´,_ゝ`) プ

695 名前:デフォルトの名無しさん :02/12/20 20:24
もはや「Win32API 質問箱」ではないな


696 名前:デフォルトの名無しさん :02/12/20 20:28
>>沢村

問題に対する対処方法が間違っている

「こうじゃないかな」
という解決方法を思いついた時はまず自分で確かめろ

確かに答えを知っている人に答えを教えてもらった方が
楽だし速いかもしれないが、この方法では近いうちに壁にぶつかる

あと、ここは「Win32API 質問箱」であって「沢村質問箱」じゃない


697 名前:デフォルトの名無しさん :02/12/20 20:34
>>686
CreateMutexかGetLastErrorをフックしたらいけるかな。

698 名前:デフォルトの名無しさん :02/12/20 20:36
>>639
沢村君・・・
まさか、ずいぶん前に君がレスしたリソースの解放について、
まだ解決してなかったのかい?


699 名前:698 :02/12/20 20:37
間違いた。
>693へのレス

700 名前:名無し@沢村 :02/12/20 20:40
>>698
もう解決したよ。
リソースの開放の仕方はいまいちわからないが、プログラムの初めでリソースを1度だけ確保し、終わりに開放すれば、リソースがどんどん減ることはないということがわかったよ。
とりあえず、これで充分だよ♪

701 名前:デフォルトの名無しさん :02/12/20 20:47
if(y.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
これってどういう意味ですか?
何を調べてるのか教えてください。

702 名前:デフォルトの名無しさん :02/12/20 20:47
MFCアプリの場合は、ウィンドウクラス名は動的に生成されているがな

703 名前:デフォルトの名無しさん :02/12/20 20:47
「お前が何を調べているのか」教えろ

704 名前:名無し@沢村 :02/12/20 20:53
>>701
君、y.dwFileAttributesが何なのかはよくわからないが、恐らく処理系で定義されているファイル属性についての構造体だろう。
またFILE_ATTRIBUTE_DIRECTORYというのは、言葉の意味から「ファイル属性はフォルダです」という直訳が出てくるよ、君!!
そうすると & は論理and演算子だから、「もしy.dwFileAttributesが「ファイル属性はフォルダです」ならば」という直訳が出てくるよ。
そうすると漠然とながら意味がわかるだろ?どうかね、君!?

705 名前:名無し@沢村 :02/12/20 21:21
>>701
君、お礼は!?君!?
いいかいくだいていうと、FILE_ATTRIBUTE_DIRECTORYは多分ファイル属性を表わす定数なんだよ。
何とか.hの中で
#define FILE_ATTRIBUTE_DIRECTORY 1
みたく定義されているはずなんだ。
また恐らく他にも、
FILE_ATTRIBUTE_xxxとか
FILE_ATTRIBUTE_yyyとか
FILE_ATTRIBUTE_のつく定数がたくさん定義されているはずなんだ。
そして、y.dwFileAttributesも多分ファイル属性についての構造体メンバで、
if(y.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
以前にy.dwFileAttributesにFILE_ATTRIBUTE_のいずれかが代入されているはずなんだよ。
だからif(y.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){ はどのFILE_ATTRIBUTE_が代入されているかを調べているのだと思うよ。
というよりFILE_ATTRIBUTE_DIRECTORYが代入されているかどうかを調べていると言ったほうがいいだろうね。
そして、y.dwFileAttributes かつ FILE_ATTRIBUTE_DIRECTORYが真ならば、
つまりy.dwFileAttributes が FILE_ATTRIBUTE_DIRECTORYかどうかを調べているというわけだよ。
これならば馬鹿でもわかるよね?
君、俺はプログラムのド素人なんだよ!!ビックリしたかい?




706 名前:デフォルトの名無しさん :02/12/20 21:23
お礼を強要するんなら帰れ

707 名前:デフォルトの名無しさん :02/12/20 21:24
レスが飛んでる…
沢村?w
NGワードにしたら気分爽快♪

708 名前:デフォルトの名無しさん :02/12/20 21:25
みんなよくネタ荒らしに付き合ってられるほど暇だよな

709 名前:デフォルトの名無しさん :02/12/20 21:27
>>701の質問は(゚Д゚)ハァ? と思ったが、沢村に回答されて
正直>>701が哀れに思ってきたのは漏れだけだろうか…

710 名前:デフォルトの名無しさん :02/12/20 21:28
>>709
安心しろ、俺もだ。

711 名前:デフォルトの名無しさん :02/12/20 21:29
>>704-705
どうもありがとうございました。
とりあえず、y.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORYが真だと
ディレクトリだということですね。
なんとなく理解できました。そして、手元のソースも理解できました。


712 名前:デフォルトの名無しさん :02/12/20 21:29
沢村、その調子だ。俺は応援しているぞ!!

713 名前:デフォルトの名無しさん :02/12/20 21:30
沢村のジサクジエン…

714 名前:デフォルトの名無しさん :02/12/20 21:34
沢村ウザいなあ。
リアルなら嫌われ者の癖についてきたがるやつは
殴りつけて追っ払えるのにネット上じゃそうもいかん


715 名前:デフォルトの名無しさん :02/12/20 21:45
>なんとなく理解できました。
なんとなくかよ・・・

716 名前:デフォルトの名無しさん :02/12/20 22:00
リストビューでキー入力を無効にしたいのですが、どうしたらいいでしょうか。
デフォルトの動作だとキー入力があると、そのキーと同じ頭文字のところに
フォーカスが移動してしまいます。これをやめさせたいのです。
よろしくおねがいします。

717 名前:デフォルトの名無しさん :02/12/20 22:22
>>716
LVN_KEYDOWN


718 名前:デフォルトの名無しさん :02/12/20 22:41
>>717
ありがとうございます。
でも、それだと、キー入力に対する動作が追加できるだけで、
選択状態を変更されないようにはできないので、困っているんです。

719 名前:デフォルトの名無しさん :02/12/20 22:46
沢村に礼を言われたこと無いが。


720 名前:デフォルトの名無しさん :02/12/20 23:21
>>686
ひょっとしてそのユーティリティはWindows3.1用では???


721 名前:717 :02/12/20 23:25
>>718
↓じゃだめ?

case WM_NOTIFY:
switch ( ((LPNMHDR)lp)->code )
{
case LVN_KEYDOWN:
return TRUE;
}
break;


722 名前:デフォルトの名無しさん :02/12/21 01:12
GDIに関して、質問したい事があります。


hDCに対して、3種類のペン、A,B,Cで描画するのですが、この時
SelectObjectで受け取る、変更前のオブジェクトを

HPEN prev;

prev = (HPEN)SelectObject(hDC, A);
/*(描画)*/
SelectObject(hDC, prev);
prev = (HPEN)SelectObject(hDC, B);
/*(描画)*/
SelectObject(hDC, prev);
prev = (HPEN)SelectObject(hDC, C);
/*(描画)*/
SelectObject(hDC, prev);

のように、毎回新しいオブジェクトを使う前に元の状態に戻すべきですか?
それとも、

prev = (HPEN)SelectObject(hDC, A);
/*(描画)*/
SelectObject(hDC, B);
/*(描画)*/
SelectObject(hDC, C);
/*(描画)*/
SelectObject(hDC, prev);

のように、最終的に元のオブジェクトに戻っていればOK?



723 名前:デフォルトの名無しさん :02/12/21 01:49
>>722
最終的に元に戻ってりゃOK。
関数内で描いてる場合、その関数を呼んだヤツにバレなきゃいいのさ…

724 名前:デフォルトの名無しさん :02/12/21 02:01
>>722
どちらでもよし。
てか、上しかダメなら「Select」なんて単語つかわんだろ。

むしろ1関数でしか使わないなら元に戻さなくてもよかったり…

725 名前:デフォルトの名無しさん :02/12/21 04:14
私の住んでいる地域では今日から小学校が冬休みです。

726 名前:デフォルトの名無しさん :02/12/21 04:20
こちらの地域では今日から工房以下すべて冬休みです。
おかげで通勤が楽になります。

727 名前:デフォルトの名無しさん :02/12/21 04:36
現在、会社からカキコしてますが何か?


728 名前:デフォルトの名無しさん :02/12/21 11:54
システム全体の通信送受信量を返すAPI教えていただけませんか?
そういうものがあるって話は聞いたのですが

729 名前:デフォルトの名無しさん :02/12/21 12:19
>>728
始めに断って置くが俺は解らない。
ところで、システム全体ってのはどういう意味なんだろう。
例えばネットワークカード2枚入っている場合はそれらの合計?
それともシステム内でパケットを飛ばしている場合はそれも含める?

730 名前:728 :02/12/21 12:39
説明不足ですみません。
NICの合計通信量ということです。ローカル内での通信は抜きで。
多分用意されているのはそういうAPIかと思います。
送受信量をリアルタイムに表示するプログラムを作りたいのです。


731 名前:デフォルトの名無しさん :02/12/21 12:58
すみません、SDKプログラミング1ヶ月の初心者です。
いろいろ調べてみたのですが分かりませんでした。教えてください…

例えば、Outlook Express(6.0) のメールのリストを見ると、選択した
アイテムでも「送信者」より左側の部分は反転表示になっていませんよね。
このように、レポート形式のリストビューを、サブアイテム単位で
反転(選択)状態にするにはどうすればいいのでしょうか?

732 名前:デフォルトの名無しさん :02/12/21 13:13
>>730
Windowsのネットワークのプロパティを見れば出てくるから
方法はあると思うんだけれど…

ちょっと解らないです。面白そうだから調べてみようかな

>>731
俺はOutlook使ったことが無いのでわからないけれど、
直感的にカスタムコントロールを使ってる気がする。
spy++等でwindow classを調べてみるところから初めてみるといいかも。

733 名前:デフォルトの名無しさん :02/12/21 15:50
>>730
随分時間がかかったけど、大体わかりました。NetBIOSを使えば出来そうです。
#SNMPから調べていたためにいらぬ時間を取ってしまった
サンプルコード書いてみましょうか?

734 名前:728 :02/12/21 15:56
>>733
おお!
どうもありがとうございます。
NetBIOSですか・・・
是非サンプルお願いします。


735 名前:デフォルトの名無しさん :02/12/21 16:06
>>734
サンプル書いたらsent/receive共に0になりますた(涙
netBios::ADAPTER_STATUSは使えない模様です。
もう少し調べてみよう…ぬか喜びさせてしまいスマソ

736 名前:デフォルトの名無しさん :02/12/21 17:07
GetIfEntry

dwInOctets; // octets received
dwOutOctets; // octets sent
じゃねーのか?

737 名前:デフォルトの名無しさん :02/12/21 17:15
随分長い間調べてしまった……

>>736
MSが表示しているのは、そこではなくてunicast packetsの方みたいです。
dwInUcastPkts; // unicast packets received
dwOutUcastPkts; // unicast packets sent

サンプル書いたので、適当に整形して読んでみてください。
なおエラー処理は一切やっていません。あしからず

#include <stdio.h>
#include <winsock2.h>
#include <iprtrmib.h>
int main(void){
HINSTANCE hIpHelpApi=LoadLibrary("iphlpapi.dll");
typedef DWORD (CALLBACK* T_GETIFTABLE)(PMIB_IFTABLE, PULONG, BOOL);
T_GETIFTABLE pfGetIfTable=(T_GETIFTABLE)GetProcAddress(hIpHelpApi,"GetIfTable");
char *buffer=NULL;DWORD buf_size=0;(*pfGetIfTable)((PMIB_IFTABLE)buffer,&buf_size,true);
buffer = (char*)malloc(buf_size);memset(buffer,0,buf_size);
(*pfGetIfTable)((PMIB_IFTABLE)buffer,&buf_size,true);
MIB_IFTABLE* mit=(MIB_IFTABLE*)buffer;
for(int i=0;i< (int)mit->dwNumEntries;i++) {MIB_IFROW* mir=(mit->table)+i;
printf("interface %d:%s\n",i,mir->bDescr);
printf("sent:%d/recv:%d\n\n",mir->dwOutUcastPkts+mir->dwOutNUcastPkts,mir->dwInUcastPkts);
}free(buffer);FreeLibrary(hIpHelpApi);return 0;}

738 名前:デフォルトの名無しさん :02/12/21 17:43
>>737
そこまで親切に書いていただけるとは・・・
2chでこんな優しくされたのは初めて(´д⊂)
まずはこのソースを解読せねば
本質的でない部分もわからとこけっこうありまして
大事な時間を割いて調べていただいて、本当にありがとうございました。


739 名前:デフォルトの名無しさん :02/12/21 17:54
>>732
お返事、どうもありがとうございます。
早速クラスを調べてみたら、
"SysListView32"ではなくて
"ATL:SysListView32"になっていました。
これは、やはり"SysListView32"に少し手を加えた
カスタムコントロールと見るのが妥当でしょうか。
勉強してまた出直してきます…

740 名前:デフォルトの名無しさん :02/12/21 19:52
CreateToolbarExでツールバー作るときに256色以上のビットマップを使ったら実行時にエラーが出るんだけど何で?

741 名前:デフォルトの名無しさん :02/12/21 20:08
>>740
あのさ、頼むから検索してから聞けよ
http://www.google.com/search?hl=ja&lr=&q=CreateToolbarEx+256

742 名前:名無し@沢村 :02/12/21 20:34
>>722
prev = (HPEN)SelectObject(hDC, A);
/*(描画)*/
SelectObject(hDC, B);
/*(描画)*/
SelectObject(hDC, C);
/*(描画)*/
SelectObject(hDC, prev);
とした後、
DeleteObject(hDC);とするのね。
hDCに対して選択されているObjectを元に戻して削除するのね。
それはわかったぞ!!
わからないのは、PenをDeleteObjectするときは、何をどう元にもどせばいいのですか?

743 名前:名無し@沢村 :02/12/21 20:38
つまりhDCを削除するときは、hDCに対して選択されているペンを元にもどして削除する…と。
ではペンを削除するときは、ペンに対して選択されている何を元にもどして削除するのかが、わからないわけ。

744 名前:デフォルトの名無しさん :02/12/21 20:39
>>742
いや、 hDC は DeleteObject しないぞ。

745 名前:デフォルトの名無しさん :02/12/21 20:41
>>742
センスがない。諦めてDelphiでも使う方が絶対にいい

746 名前:名無し@沢村 :02/12/21 20:42
>>744
いや、だからキスプリ。
つまりhDCをDeleteDCするときは、hDCに対して選択されているペンを元にもどして削除する…と。
ではペンをDEleteObjectするときは、ペンに対して選択されている何を元にもどして削除するのかが、わからないわけ。


747 名前:デフォルトの名無しさん :02/12/21 20:45
選択はずしたら DeleteObject で OK。

748 名前:名無し@沢村 :02/12/21 20:49
>>747
いや、だからそれは、hDCをDeleteDCするときは、hDCに対して選択されているペンをはずしたらDeleteDCでもOK…と。
あ、hDCでもDeleteObjectしてOKなの?
ただ、ペンをDEleteObjectするときは、何をどう選択はずして削除するの?

749 名前:デフォルトの名無しさん :02/12/21 20:52
>>746
DeleteDCって滅多に使わんと思うが・・・まぁいい。
ペンがデバイスコンテキストから選択解除されてれば、いつでもそのペンを DeleteObject で削除できる。

750 名前:名無し@沢村 :02/12/21 20:55
>>74
ペンがデバイスコンテキストから選択解除するということは、
ペンをSelectObjectで最初の選択に戻すことと同じなのですか、違うのですか?
また、そうすればペンを DeleteObjectできるのですか?
ではデバイスコンテキストを削除するときは、何をどう選択解除しなければならないのですか?


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