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


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

Win32API質問箱 Build38
501 名前:デフォルトの名無しさん :2005/12/20(火) 00:04:15
>>498
さんきゅ

502 名前:デフォルトの名無しさん :2005/12/20(火) 00:11:12
>>499
戻り値の判定を間違っているとか…

503 名前:デフォルトの名無しさん :2005/12/20(火) 00:13:59
>その後、子をTerminateProcess してます。
え?なんで、WaitForで子供が死ぬのを待たなずに強制終了しちゃうの?

>ただスレッドとかその他グローバルに確保してるリソースを解放しないといけない
その「確保しているリソース」ってのは子が「死にそう」〜「死んだ」までに
始末しないとイケナイような際どいものなの?Win32にそんなリソースあったけ?

504 名前:デフォルトの名無しさん :2005/12/20(火) 00:14:14
>>499
>子をTerminateProcess してます

工工エエエ(´д`)エエエ工工

505 名前:デフォルトの名無しさん :2005/12/20(火) 00:18:00
>>504
スレッドを終了させるわけではないので、OSによるリソース解放を期待できるよ。

COM参照数?
知らんよ。デスクトップPCでそんなもん気にすんな。
数十日間連続稼動させるサーバーじゃねーんだ。

506 名前:デフォルトの名無しさん :2005/12/20(火) 00:18:48
>>505
そういう問題じゃないだろ。

507 名前:デフォルトの名無しさん :2005/12/20(火) 00:45:18
普通に、終わるのまてんのか!

508 名前:デフォルトの名無しさん :2005/12/20(火) 00:54:11
TerminateProcessなんか普通使ったら駄目だろ
エラーが起きてるときとかにだけ使うべき

509 名前:493 :2005/12/20(火) 00:54:50
>>500
やっぱりそれくらいですよね・・・
Waitしているのは1つの子プロセスのメインスレッドだけなので
たぶん抜けてはいないと思う。

>>502
大丈夫だと思うんだけどなぁ・・・
念のためもうちょい見直します。

>>503-507
子供が死ぬのを「待ちすぎるとよろしくない」使用上の制限があって・・・
特殊な制御系で動かそうって話なんです。
子が大量にmallocしてたりゴミがいろいろあって、
強制終了するにもとりあえずそっちは片付けてからにしろ、ってなことで。

>普通に、終わるまでまてんのか!
待てないんす〜俺も待ちたいんだけど

※愚痴ってしまうと、引継ぎの保守なんで大きく直すにも直せない(ノ∀`)

510 名前:デフォルトの名無しさん :2005/12/20(火) 00:59:11
>>509
そんな不毛な処理するな。
そもそも、待ちすぎると言う考えが既に間違い。

もっと素直な方法が存在する。

511 名前:デフォルトの名無しさん :2005/12/20(火) 01:04:11
>>509
強制終了するからゴミが残る。
普通に終了すればゴミも残らない。


それより、子プロセスの結果を別のプロセス間通信で行い、
結果を受け取った後は、親はノータッチでいいだろ。


512 名前:デフォルトの名無しさん :2005/12/20(火) 01:04:16
よく論理がわからないなぁ。
・子を強制終了させたい->問答無用。TerminateProcessで殺す。
・子を終了させたい->イベントをsetして、子が終了するまで待つ。
の二択だとおもうのだが。
・子を強制終了させたいけど、終了処理もさせたい->え?終了処理に反応するなら
なんで強制終了させる必要があるの?

>子が大量にmallocしてたり
に至ってはmalloc&freeを再燃させようとする陰謀だし

513 名前:デフォルトの名無しさん :2005/12/20(火) 01:05:00
CEプログラミングスレではTerminateThread
このスレではTerminateProcess

今日はTerminate系で無理やり殺すのがはやってるのか?

514 名前:デフォルトの名無しさん :2005/12/20(火) 01:08:58
>>513
メイワクなハヤリだな…

515 名前:デフォルトの名無しさん :2005/12/20(火) 01:11:59
SetEventが終わったあと子は何してんだよ。

516 名前:デフォルトの名無しさん :2005/12/20(火) 01:13:26
子供の別スレッドでも待ってるんじゃね?

517 名前:デフォルトの名無しさん :2005/12/20(火) 01:16:21
>>515
>>493の事だから、何かおかしな事をやって居るに違いない。

518 名前:デフォルトの名無しさん :2005/12/20(火) 06:06:00
>>511は、小さなゴミを出すことよりも、デッドロックで2つのプロセス全体がゴミになることを選ぶ馬鹿。
典型的な荒らし。

519 名前:デフォルトの名無しさん :2005/12/20(火) 11:27:08
FormatMessageのMSDNのサンプルって、無条件に
バッファの開放をしてるけど、いいの?

LocalFreeが、アドレスチェックしてるみたいだから、
エラーになろうが、つっぱしるのが流儀?



520 名前:デフォルトの名無しさん :2005/12/20(火) 11:42:27
iniファイルの書き込みについて。

int x = 1;
TCHAR data[256];
wsprintf(data, "x = %d", x);
WritePrivateProfileSection("section", data, path);

としているんだけど、

[section]
x = 1
フフフフフフフフ…(注:本当は半角のフ)

となっちゃう。フフフフフ…が書き込まれない方法を教えて。

521 名前:デフォルトの名無しさん :2005/12/20(火) 11:44:12
>>520
Releaseビルドする

522 名前:520 :2005/12/20(火) 11:47:06
リリースビルドしたら消えた。不思議ですねえ。
とにかくどうも。

523 名前:デフォルトの名無しさん :2005/12/20(火) 11:47:49
>>520
試してないけど、↓でいいんじゃね?
wsprintf(data, "x = %d\0", x);

524 名前:520 :2005/12/20(火) 11:53:01
>>523

駄目みたいよ。

525 名前:デフォルトの名無しさん :2005/12/20(火) 11:57:34
>>520
>TCHAR data[256];

TCHAR data[256] = {0};

526 名前:デフォルトの名無しさん :2005/12/20(火) 11:58:43
'\0'をも一つ付けなきゃいかんのだろ。

int len = wsprintf(data, "x = %d", x);
data[len+1] = '\0';


527 名前:デフォルトの名無しさん :2005/12/20(火) 12:11:10
>>526
+1いらなくない?

528 名前:デフォルトの名無しさん :2005/12/20(火) 12:14:30
MSDN読む限り、
>>523>>526の方法でヨサゲなんだが、
たしかに上手く行かんなー

529 名前:デフォルトの名無しさん :2005/12/20(火) 12:14:51
MSDN読めばわかるけど。
x = 1\0y = 2\0\0
みたいなデータを渡すんだよ。だから、最後に\0を付加する必要がある。

wsprintf(data, "x = %d%c", x, 0);


530 名前:520 :2005/12/20(火) 12:19:27
色々とありがとうです。
dataの最後は\0が2つ並んでないといけないということだけど、
526のやり方が正しいみたい。525でもいいけど。
523のやり方だとdata[5] = -52となってました。

531 名前:528 :2005/12/20(火) 12:19:32
あ、嘘付いた。>>526ならいける

532 名前:デフォルトの名無しさん :2005/12/20(火) 12:20:09
""内に\0書いても、\0入れたいのか終端なのか区別できないだろ。

533 名前:デフォルトの名無しさん :2005/12/20(火) 12:24:07
bmpファイルの読み込みで、
普通RGBTRIPLE構造体で動的にメモリ確保して色情報をReadFile関数で読むのですが、
32ビットビットマップ用(?)のRGBQUAD構造体とははなんなんでしょうか・・・
こいつのメンバーは
RGBTRIPLE構造体のメンバ(BYTE rgbBlue, BYTE rgbGreen, BYTE rgbRed)に加え
新しいメンバBYTE rgbReservedというのが宣言されているようです。
現在このメンバの部分には0を格納しなければいけないようですが、いわゆる予約って奴でしょうか

534 名前:デフォルトの名無しさん :2005/12/20(火) 12:28:34
>>533
皆、書籍やMSDNをお前の代わりに読んでやるほど暇じゃないんだ。出直せ。

535 名前:デフォルトの名無しさん :2005/12/20(火) 12:28:48
>>533
英和辞典は持っていませんか?

536 名前:デフォルトの名無しさん :2005/12/20(火) 12:29:12
Reserved 読めますか?

537 名前:デフォルトの名無しさん :2005/12/20(火) 12:35:34
すみませんでしたorz

538 名前:デフォルトの名無しさん :2005/12/20(火) 12:53:55
書きかけで飯食っていたらレスがいっぱい付いていたが
せっかくなので書いておく。

>>520
そのAPIは複数のキーを1回の呼び出しで出力するためのもの。
各キーはNULLで区切られていて、最後は終わりを表すために
もう1つNULLを付ける必要がある。

A=1\0B=2\0C=3\0\0
というデータを渡すと
A=1
B=2
C=3
と出力される。

フフフフと出力されるのは、VC++のデバッグビルドでは
未初期化のローカル変数が0xCCで初期化されているため。
これを覚えておくとデバッグが楽になる。

キーを1つだけ出力したい場合は、WritePrivateProfileSectionではなくて
WritePrivateProfileStringを使うのが普通。

539 名前:デフォルトの名無しさん :2005/12/20(火) 13:27:04
フフフフ

540 名前:デフォルトの名無しさん :2005/12/20(火) 13:58:20
デバッグビルド、リリースビルドの話じゃなくて、素直にZeroMemoryすれ。
って話は?


541 名前:デフォルトの名無しさん :2005/12/20(火) 14:00:59
>>540
いいえ、そんな安直なプログラミングはすべきではありません。
末尾にナル文字を一つ余計に附加するのが常道です。
#つーか、>538なんだがな。

542 名前:デフォルトの名無しさん :2005/12/20(火) 14:02:59
>>540
それはたまたまうまく動くだけ。
規格通りのコーディングならきちんと2コ付けるべき。

543 名前:デフォルトの名無しさん :2005/12/20(火) 14:55:41
MSDNライブラリのLPSTRやらHWNDの定義みたいなのが載ってるページが見つからないんですが
どの項目でしたっけ?;



544 名前:デフォルトの名無しさん :2005/12/20(火) 15:06:26
msdn.microsoft.com/library/en-us/winprog/winprog/windows_data_types.asp

のことか?

545 名前:デフォルトの名無しさん :2005/12/20(火) 15:22:34
>544
それですthx

546 名前:デフォルトの名無しさん :2005/12/20(火) 15:30:42
>>519
FORMAT_MESSAGE_ALLOCATE_BUFFER

547 名前:デフォルトの名無しさん :2005/12/20(火) 18:11:13
>>538
横ですが勉強になりました
#今日までヌルと呼んでいた私は釣ってきます

548 名前:デフォルトの名無しさん :2005/12/20(火) 18:31:30
>>547
別にヌルでもいいよ。>541が教条主義なだけだから。

549 名前:デフォルトの名無しさん :2005/12/20(火) 18:33:42
もうフフフフも怖くないぞ

550 名前:デフォルトの名無しさん :2005/12/20(火) 18:48:42
ラミパスラミパスフフフフフ

551 名前:デフォルトの名無しさん :2005/12/20(火) 18:57:51
int a = フフフフ;

552 名前:デフォルトの名無しさん :2005/12/20(火) 21:30:45
自分以外が作ったチャットソフトの、ログ部分のテキストを取得しようとしています。しかし取得できません。
どなたか助言をお願いいたします。

親(チャットソフト)
 -子1(クラス名=Edit)  (ウインドウキャプション=””) チャットメッセージ入力用Editコントロール
 -子2(クラス名=Static) (ウインドウキャプション=”InputDisableWindow”) チャットのログ表示

***1 Editのテキストはウインドウキャプションがないため、SendMessage-WM_GETTEXTだけではなく
GetWindowTextでも取得できました。
MSDNには「他のプロセス内のコントロールのテキストを取得するには、GetWindowText 関数を呼び出す
のではなく、直接 WM_GETTEXT メッセージを送ります。」と書いてあります。

***2 チャットログが表示されるStaticのほうはSendMessage(HWND ,WM_GETTEXT,〜 で送ると
ウインドウキャプションであるInputDis〜を取得してしまいます。


ステータスバーのようにSB_GETTEXTのような専用メッセージがあるのでしょうか?
それとも根本的に間違った考えなのでしょうか?

553 名前:デフォルトの名無しさん :2005/12/20(火) 21:58:29
>>552
Static をベースにサブクラス化してるんじゃないの?
WindowText とは無関係なデータを保持してて、それを表示してる気配がプンプンするのだが…
その 子2 をターゲットに spy++ で WM_USER + マジックナンバー を探ってみるとか?

554 名前:552 :2005/12/20(火) 23:28:50
アドバイスありがとうございます
サブクラス化について調べて、テストしてみます


555 名前:デフォルトの名無しさん :2005/12/20(火) 23:58:53
スレ違いなところに書き込んたため、ここで質問させていただきます。

UnicodeのウィンドウにIMEを使って文字を入力する時、
入力された文字をWM_IME_COMPOSITIONやWM_IME_CHARを使わずにWM_CHARで正確に
文字が取得できますでしょうか??
ちなみにOSはWindows2000です。XPだと取れるっぽいのですが、Windows2000だと
私の環境だと、とれないっぽいのですが、みなさんいかがでしょうか??
つまり、WM_CHARメッセージのWParamがおかしいんです。


556 名前:デフォルトの名無しさん :2005/12/21(水) 00:06:59
>>554
もう1点。
Static コントロールのスタイルに オーナードロー(SS_OWNERDRAW) が含まれる場合
コントロールの描画は 親window に委ねられる (WM_DRAWITEM が親へ send される)。

こうなると、当初のログ部分のデータは親内にしか無いことになるので、抜き出しはかなり困難になるかと思われ

557 名前:デフォルトの名無しさん :2005/12/21(水) 00:32:51
いろいろ試してみたのですが、どうもうまくいかないので
質問させてください。
ShowWindow(hWnd, SW_HIDE)を使って、自分以外のアプリのウインドウを
外から完全に見えないようにしたいのですが、うまく動作しない
アプリがあります。通常はメインのウインドウも、タスクバー上も
完全に消えるのですが、どうもdelphiなどで作られたものは、
タスクバー上の表示が残ってしまうようでした。
TOOLWINDOWならタスクバーに表示されないという話もあったので、
SetWindowLongで、WS_EX_TOOLWINDOWをセットしなおして、SetWindowPosで
変更を有効にする、またSetWindowLong自体でSWP_HIDEWINDOWをする、
(関係ないと思うけど)EnableWindowを試してみる、などを試しても
うまくいきませんでした。
環境は、Win2000SP4上でVC++6.0proとVC++toolkit2003を両方
試してみました。もしアドバイスなどありましたら、よろしく
お願いします。

558 名前:デフォルトの名無しさん :2005/12/21(水) 00:37:02
単にタスクバーに表示されてるウィンドウとデスクトップに表示されてるウィンドウが別物ってだけじゃね?

559 名前:デフォルトの名無しさん :2005/12/21(水) 02:24:26
>>557
Winspecterか何かで>>558になってないか確認してみれ

560 名前:デフォルトの名無しさん :2005/12/21(水) 05:18:03
役に立たないかもしれませんが、
Delphiで作られたアプリは基本的に画面の中央に大きさが0*0でVisibleのウィンドウを
持っていて、画面に表示されているウィンドウはこのウィンドウに所有されています。



561 名前:デフォルトの名無しさん :2005/12/21(水) 08:43:15
>>560
BCBも同じだしな。

562 名前:デフォルトの名無しさん :2005/12/21(水) 10:06:39
>>561
そりゃライブラリ同じだし。

563 名前:デフォルトの名無しさん :2005/12/21(水) 10:24:55
余計なことしやがるなぁ。

564 名前:デフォルトの名無しさん :2005/12/21(水) 13:16:02
質問です。
ものすごーい初心者的な質問だと思うのですが、WINAPIはここ見たいなので…。

Windowsを作る際に登録したProcで、WM_LBUTTONDOWNを受け取り
そこでメッセージボックスを表示してみたのですが、
何故メッセージボックスのせいで処理の流れは停止してしまっているのに
ウインドウの再描画などは行われるのでしょうか。

565 名前:デフォルトの名無しさん :2005/12/21(水) 13:38:52
>>564
メッセージボックスの方で、MSGを受け付けてよきにはからってくれているから。

566 名前:デフォルトの名無しさん :2005/12/21(水) 13:40:39
なるほど。かしこいですねMSGBOX
ありがとうございました。

567 名前:デフォルトの名無しさん :2005/12/21(水) 13:56:47
質問。

VC6.0でメニューつきダイアログを作り、メニューの「開く」を選択したら
コモンダイアログを表示しようとしています。
ですが
GetOpenFileName
を呼ぶと必ず0(エラー)になってしまいます。


OPENFILENAME ofn;
memset(&ofn,0,sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd; // ダイアログのHWND
ofn.lpstrFilter = "テキスト(*.txt)\0*.txt\0すべて(*.*)\0*.*\0";
ofn.nFilterIndex = 1;
ofn.lpstrFile = szFileName;
ofn.nMaxFile = _MAX_PATH;
ofn.lpstrTitle = "ファイル名の取得";
ofn.lpstrDefExt = "txt";
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
GetOpenFileName(&ofn);

と、ネットのサンプルをほぼそのまま使っているのですが、何が問題かわかりますでしょうか。
ダイアログのスタイルで「コモンダイアログを出しても良い ○×」という設定があるのでしょうか?

568 名前:デフォルトの名無しさん :2005/12/21(水) 13:58:45
試しにダイアログPROCの外で呼んでみた場合、正しく動作しました。
やはりダイアログのスタイル設定あたりでしょうか。
それともダイアログPROCの中からは、コモンダイアログは呼べないのでしょうか。

569 名前:デフォルトの名無しさん :2005/12/21(水) 14:08:22
CommDlgExtendedError()は何を返す?

570 名前:デフォルトの名無しさん :2005/12/21(水) 14:14:19
えーと、2ですね。
今2は何を表すのか探してます。とりあえず結果だけとりいそぎ。

571 名前:デフォルトの名無しさん :2005/12/21(水) 14:19:52
エラーの内容は
CDERR_INITIALIZATION(0x0002)

そこからぐぐって、原因がわかりました。
ofn.lpstrFile = szFileName
の場合
szFileName[0] = '\0';
しておかないといけないようです。

猫プロにもそんなこと書いてなかった(´・ω・`)

推測するに、ダイアログPROCの中で確保したローカル配列変数は、0で初期化されていない。
たまたま猫プロはグローバル変数であり0が入ってた。
たまたまダイアログ作る前にWinMainで作ったローカル配列変数は0が入ってた。

ということでしょうか。なんてこったい。

572 名前:デフォルトの名無しさん :2005/12/21(水) 14:23:36
>>571
OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST がついてるからね。

実在するファイル名を szFileName にセットしていた場合は成功すると思うよ

573 名前:デフォルトの名無しさん :2005/12/21(水) 16:01:07





                      ま た 猫 か




574 名前:デフォルトの名無しさん :2005/12/21(水) 18:00:52
マウスをクリックさせる関数のようなものはありますか?
マクロで位置を記録して、ある位置にきたらクリックさせたいのです。

575 名前:デフォルトの名無しさん :2005/12/21(水) 18:14:56
>>574
SendInput

576 名前:デフォルトの名無しさん :2005/12/21(水) 19:32:07
>>571
猫は概要を把握する程度で、詳細はMSDN(それも英語の方)を参照したほうがいい。

577 名前:574 :2005/12/21(水) 19:46:36
>>575
ありがとうございました

578 名前:デフォルトの名無しさん :2005/12/21(水) 20:11:53
あるウィンドウ上のStaticおよびButtonコントロールのウィンドウハンドルを取得するにはどうすればいいですか。
当該ウィンドウのウィンドウハンドルはわかっています。


579 名前:デフォルトの名無しさん :2005/12/21(水) 20:18:01
>>578
EnumChildWindows()でWindowクラスを調べてGetClassName()で
"BUTTON"("STATIC")かどうか。

580 名前:578 :2005/12/21(水) 20:34:15
>>579
ありがとうございました。
同一Windowクラスのコントロールが複数個ある場合、
それらがEnumChildWindows()で列挙される順序は、常に固定ですか?


581 名前:デフォルトの名無しさん :2005/12/21(水) 20:39:15
どうやればいいのかわからなくて質問するならわかるのだが、何でAPIの仕様を質問するんだろうな。
MSDN見ればいいし、それに勝る解決法はないだろうに。

582 名前:デフォルトの名無しさん :2005/12/21(水) 20:44:24
>>580
site:microsoft.com EnumChildWindows
これでググってごらん。

583 名前:デフォルトの名無しさん :2005/12/21(水) 21:20:38
タスクマネージャのネットワークタブで、送信バイト数、受信バイト数ってあるけど、これはどうやって取得するの?

584 名前:580 :2005/12/21(水) 21:38:03
>>581-582
順序は不定として処理します。ありがとうございました。

585 名前:557 :2005/12/21(水) 22:23:21
>>558-560
早速のアドバイス、どうもありがとうございます。
ご指摘の通り、大きさ0のウインドウがオーナーになっているため
消えなかったようです。オーナーウインドウを消したら、無事タスクバーの
表示も消えました。まさか、そういう仕様になっていたとは・・・
きっと自力ではなかなか気が付かなかったと思います。
本当に助かりました。どうもありがとうございました。

586 名前:デフォルトの名無しさん :2005/12/22(木) 03:09:35
スレ違いな質問でしたらすみません。Windowsを使った
画像処理で簡単な色抜きを行いたいと思い、TransparentBlt()を
用いて処理しようと試みたのですが、msimg32.dllのインポートの
やり方がわからずに色々試してみたのですがエラーが出ます。
またそれを使う場合初めに#include<wingdi.h>と宣言しなければいけない
のでしょうか?
マスクを使った画像処理を出来ればいいのですが、簡易な画像処理方法を
学びたいためTransparentBlt()関数について知りたいです。
どうかご助力お願いします m(_ _)m


587 名前:デフォルトの名無しさん :2005/12/22(木) 03:22:41
>>586
まずはMSDN
次はTransparentBltをぐぐってサンプルを探すと良いと思います
それが一番早いかと

588 名前:574 :2005/12/22(木) 03:51:38
度々すいません。
IEの入力フォームにプログラムを使って文字を表示させたいです。
例えばヤフー(http://www.yahoo.co.jp/)のトップの検索文字を入力する欄に
文字を送信して表示させるにはどうしたらよいのでしょうか?
自分で作った他のプログラムのテキストコントロールにはSendMessage()を使って
文字表示ができたのですが、IEになるとどのURLでもGetClassName()で
返ってくる名前が一緒なのです・・・

IEでGetClassName()を使って取得した名前の一覧は
WorkerW
ReBarWindow32
ToolbarWindow32
ComboBoxEx32
ToolbarWindow32
ComboBox
Edit
ToolbarWindow32
ToolbarWindow32
WorkerW
ToolbarWindow32
ATL:1000D0F8
WorkerW
msctls_statusbar32
msctls_progress32
Shell DocObject View
Internet Explorer_Server
Internet Explorer_TridentCmboBx

ちなみにEditにSendMessage()で文字を送ると、アドレスバーの所に表示されます。

589 名前:586 :2005/12/22(木) 06:14:14
TransparentBltで検索したところ余り参考になるものもなく、
MSDNも見つけにくかったのですが、色々&検索をかけた結果
参考になるものを見つけることができ、その指示どおりにしたところ
ビルドに成功しました。
>>587
色々考えすぎて熱くなってました。これからはもう少し落ち着いて
検索するようにします。再度検索するように指示してくださったことに
感謝します。ありがとうございます。

590 名前:デフォルトの名無しさん :2005/12/22(木) 11:59:33
得てしてそんなもんだな。

591 名前:デフォルトの名無しさん :2005/12/22(木) 13:12:10
>>588
IEのドキュメントエリアのボタンとかフォームはウィンドウじゃないよ。
だから、外部からSendMessageとかはできない。
キーボード入力をエミュレートして、TAB数発と、文字列を流し込むとかで、できるかも。

592 名前:デフォルトの名無しさん :2005/12/22(木) 13:30:49
IEを外部から操作したいならCOM経由が基本だが。
そもそもYahooやGoogleの検索結果を表示させたいだけなら自分で検索結果のURL生成してそれ表示させたほうが楽。

593 名前:デフォルトの名無しさん :2005/12/22(木) 14:42:55
モードレスダイアログの親を作成・破棄時に有効・無効化して、
モーダルダイアログとして機能させる事は有りなんでしょうか?

594 名前:デフォルトの名無しさん :2005/12/22(木) 15:37:40
>>593
有り無しの判断基準がわからんのでなんとも。
MFCではそういうことやってるようだが。

595 名前:デフォルトの名無しさん :2005/12/22(木) 15:39:29
ありです

596 名前:デフォルトの名無しさん :2005/12/22(木) 17:35:26
>>593
例えばモーダルダイアログを同時に複数必要とするときなどには常套手段です。

597 名前:デフォルトの名無しさん :2005/12/22(木) 18:20:16
case WM_COMMAND:
static int a;
a=rand();
printf("%d",a);
return 0;

なんていうのやめた方がいいですか?
WM_COMMANDが同時に送られた時、a=rand();が同時に実行されたらaのデータが壊れると思うのですが。

598 名前:デフォルトの名無しさん :2005/12/22(木) 18:31:51
>>597
それを見ただけでは一概に言えないが、マルチスレッドにしていないなら
メッセージを同時に処理することはできないから大丈夫。

599 名前:デフォルトの名無しさん :2005/12/22(木) 18:36:51
case WM_COMMAND:
{
static int a;
a=rand();
printf("%d",a);
return 0;
}

600 名前:デフォルトの名無しさん :2005/12/22(木) 18:52:14
>>599
そうやっても同じだと思うのですが

601 名前:デフォルトの名無しさん :2005/12/22(木) 19:24:28
>>598
メッセージはシリアライズされるので、マルチスレッドでも大丈夫。

602 名前:601 :2005/12/22(木) 19:25:08
↑は忘れてくれ。ボケてた

603 名前:デフォルトの名無しさん :2005/12/22(木) 20:17:43
EnterCriticalSection ?

604 名前:574 :2005/12/22(木) 20:49:15
>>591-592
ありがとうございます。COMの方も調べてみます。

605 名前:デフォルトの名無しさん :2005/12/22(木) 20:57:14
>>600
case の中で変数宣言すんなってことじゃない?

606 名前:593 :2005/12/22(木) 21:21:16
>>594 >>595 >>596
どうも、返答ありがとうございます。

607 名前:デフォルトの名無しさん :2005/12/22(木) 23:57:28
ここにレスしてくださる神々の皆様は、職業がPGとかSEなんでしょうか?
みんなが使わない様なAPIに詳しかったり、知識が凄かったりするんですが

608 名前:デフォルトの名無しさん :2005/12/23(金) 00:01:07
いんやニート

609 名前:デフォルトの名無しさん :2005/12/23(金) 00:04:00
メッセージキューはスレッド毎に用意されます。
ちなみに、OSはシステムメッセージキューと呼ばれるキューを一つもっていて、
まず、ここに、すべてのメッセージが蓄えられます。それで、OSによってこのキュー内の
メッセージが動作中のプロセスのスレッド毎に割り当てられたスレッドメッセージキューに
割り振ります。



610 名前:デフォルトの名無しさん :2005/12/23(金) 00:55:00
ふつうに社会人なら
こんなとこで便利屋やってないってw

611 名前:デフォルトの名無しさん :2005/12/23(金) 02:57:32
例えニートでもみんな結構高学歴な気がします・・・

612 名前:デフォルトの名無しさん :2005/12/23(金) 03:06:36
例え高学歴でもみんなニートです・・・

613 名前:デフォルトの名無しさん :2005/12/23(金) 03:28:36
高学歴なことは社会では
そんなに重要じゃないです

614 名前:デフォルトの名無しさん :2005/12/23(金) 03:51:07
プログラマはかけて何ぼ。ってこれマ板のネタだろ。

615 名前:デフォルトの名無しさん :2005/12/23(金) 04:08:18
社会人になって、あまり学歴って関係ないなと思いました。が、
いろな人と接してある程度重要だなってことに気づきました。
高学歴ってことはすなわち、それだけ、努力をしたわけで、
努力をした証になってるわけです。だから、そういう人には
やはり、こつこと努力してどんどん成長してくれる人が多いのも事実です。
だから、私が人事ならやはり学歴はみます。別に頭の良しあしをみるより、
努力できるかという視点で。あくまで、仕事に関してで、人間性はまた別問題だが




616 名前:デフォルトの名無しさん :2005/12/23(金) 04:09:56
>>615
マ板でやれ。
まぁ、大学でで頭がよくても使い物にならないプログラマは掃いて捨てるほどいる訳だが。

617 名前:デフォルトの名無しさん :2005/12/23(金) 04:32:45
そんな事を言ってる君は既に低学歴って事を証明しているわけで、
まぁ、すぐに人にあたるところからみても、あんまいい人生を送ってないところが
まで見えてしまい、その環境のせいで、性格も悪そうだし、やっぱ、採用したくない。
だから、君をせめたりしないよ。環境が悪いんだ

618 名前:デフォルトの名無しさん :2005/12/23(金) 04:42:23
ヒント:スレ違い

619 名前:デフォルトの名無しさん :2005/12/23(金) 06:11:01
>>616が一番の癌なわけだな。
自分より高学歴な人間を上手く使えないだけ。

PGの世界は単純だ。
ペーパーテストの能力が高ければ、PGとしても能力も高い。
コーディングというのは創造性のかけらもない仕事だからだ。
実力差として存在するのは、唯一最善の回答にたどり着けるまでの所要時間の差だけだ。
コーディングは、存在しない機能・仕様を考え出す能力とは別のもの。

620 名前:デフォルトの名無しさん :2005/12/23(金) 06:14:59
>>598
見落としていました
ありがとうございます

621 名前:デフォルトの名無しさん :2005/12/23(金) 06:53:27
>>619
「PG = コーダー」 と定義した上での話に限れば、
少なくとも定型業務系の仕事なら君の言っていることは正しい。
しかし、現実には「PG = コーダー」とは限らないし、
仕事も定型業務系だけとは限らない。
極度に限定した状況での話しか出来ない >>619 は多分高学歴なだけの馬鹿。

622 名前:デフォルトの名無しさん :2005/12/23(金) 07:01:20
このスレと全く関係の話をしている連中は学歴職業を問わず単なる屑。

623 名前:デフォルトの名無しさん :2005/12/23(金) 07:08:49
>>619
どうみても底辺PGです。
ありがとうございました。

624 名前:デフォルトの名無しさん :2005/12/23(金) 08:03:44
義務教育を終えた後、レベルの近い学友と切磋琢磨する機会がなかった>>616が気の毒だな。
高校入試を手抜きして、高校でレベルの低い周囲を見下して幸せ回路を発動させてただけなのに。

PGとしての能力というものを残酷な数字で比較されることがないので、
自分が凄いレベルなのだと思い込んでしまう高卒PGもいるかもしれない。

625 名前:619 :2005/12/23(金) 08:26:52
>>624 は私です

626 名前:デフォルトの名無しさん :2005/12/23(金) 08:50:50
うるせえハゲ。テメエの意見なんかどうでもいい。

627 名前:デフォルトの名無しさん :2005/12/23(金) 08:53:03
ちなみに漏れは高卒〜就職〜酷使PG〜退職〜ニート

628 名前:デフォルトの名無しさん :2005/12/23(金) 08:58:10
大学出の人にとっては大学卒は普通のことなので、
わざわざ人を評価するときに大学出かどうかについて触れたりしない。
また、文系・理系の出身学部で得意分野に顕著な違いがあることも知っているので
「大学」とひとくくりにすることもしない。

言いたいことはわかるな?

629 名前:デフォルトの名無しさん :2005/12/23(金) 09:43:50
高学歴でも低学歴でもいいからマ板逝け

630 名前:デフォルトの名無しさん :2005/12/23(金) 13:16:48
>>628
>文系・理系の出身学部で得意分野に顕著な違いがあること
詳しく

631 名前:デフォルトの名無しさん :2005/12/23(金) 13:24:24

  VIPでやれ


632 名前:デフォルトの名無しさん :2005/12/23(金) 13:27:34
こんなプログラマはVIPに逝け!

  ・UHFアニメはヤシガニってナンボ
  ・2chでアク禁喰らうと、妙にうれしくなる
  ・キンタマウィルスに正義を感じた
  ・一昨日の晩、久々に神が光臨した
  ・というか、何でもいいから今すぐ光臨して欲しい
  ・と思っていたら細木数子が光臨して、まいった
  ・しかも帰ってくれない
  ・酔ってやがる
  ・歌いだした

633 名前:デフォルトの名無しさん :2005/12/23(金) 13:28:22
東大卒文系PGの話
社員教育1ヶ月でその辺のへぼ理系情報系院卒PG並に知識を集積
3ヶ月後には物凄い使える人間に

やっぱり理解度と記憶力が半端じゃないらしい
一度失敗すると、二度と同じミスをしないらしい

634 名前:デフォルトの名無しさん :2005/12/23(金) 13:31:11
何でここでやるのか、マ板でやらないのか理由を言え。

635 名前:デフォルトの名無しさん :2005/12/23(金) 13:50:26
そんなにまともな社員教育できる所なら東大卒じゃなくても使いこなせるだろう

636 名前:616 :2005/12/23(金) 15:22:17
で、>619=>624はなんで漏れに粘着しているんだ?
そんなに自分より低学歴な上司に絡まれた恨みを晴らしたいのか?
残念ながら漏れは低学歴でもなければ大卒の部下をそれなりに仕切ってもいるわけだが。

それはさておき、ちょっと質問。
MSDNでWinExec()の説明を読むとCreateProcess()を使えとある。
また、CreateProcess()の説明にもWinExec()はCreateProcess()で実装されているとある。
すると、WinExec()の第二パラメータのSW_*のフラグはSTARTUPINFOに突っ込めばいいということかな?
#確かにdwFlagsの説明にSTARTF_USESHOWWINDOWがあり、wShowWindowにもそう書かれているようだが。


637 名前:デフォルトの名無しさん :2005/12/23(金) 15:23:32
すみません、InternetExplorerのアドレスバーに表示されてる
URLを取得する方法はないでしょうか?グローバルフックはすでに
しています。よろしくお願いします。

638 名前:デフォルトの名無しさん :2005/12/23(金) 15:47:56
>>636
騙るなw
部下を仕切るような人間が、APIの質問なんかするわけないだろがw
しかも質問内容が、「今さらこんな質問すんな、初心者」的な内容だし。

639 名前:デフォルトの名無しさん :2005/12/23(金) 15:48:50
【ゴールデンレス】
  ∩ ・∀・)∩∩ ´∀`)∩  このレスを見た人はコピペでもいいので
   〉     _ノ 〉     _ノ10分以内に3つのスレへ貼り付けてください。
  ノ ノ  ノ  ノ ノ  ノそうすれば14日後好きな人から告白されるわ宝くじは当たるわ
  し´(_)   し´(_) 出世しまくるわ体の悪い所全部治るわでえらい事です


640 名前:616 :2005/12/23(金) 15:58:59
>>638
うちは本来Unix屋なのでWinAPIの仕事は基本的に半端仕事しかやらない。
部下を仕切るといってもあくまでも現場の人間なので半端仕事は自分で片付けてしまう(そうせざるを得ない)。
半端仕事なんで、自宅でやっているから本その他はない。
参考にしたソースはWinExec()を使っていたので、どうせならCreateProcess()に書き換えておこうと思って質問した。

まぁ、想像力が足りないのはあんたの勝手だが。

641 名前:デフォルトの名無しさん :2005/12/23(金) 16:09:04
Unix屋が自分責任で自作コードを試さずに、2ちゃんに質問を書き込むとは恐れ入った。
WinExec()にはUnicode版がない。Unix屋がUnicode対応を気にする必要があるかも考えてみろ。

642 名前:616 :2005/12/23(金) 16:18:42
>>641
いやだからさ、自分の想像力のなさで思い込むのは勝手だけど、それを前提にどんどん捏造しないでよ。
丁度いいネタだから質問したんであって2chの結果をそのままノーチェックで採用するなんて有り得ないし、
Unicode版を意識してないからこそ頓着しないで質問しているわけだし。
#そうか、WinExec()にはUnicode版がないから、Win32では使うなとMSDNに書かれているのか。参考になった。THXw

643 名前:デフォルトの名無しさん :2005/12/23(金) 16:55:06
やはりただのアフォだったか


644 名前:デフォルトの名無しさん :2005/12/23(金) 17:08:02
MSDNが意味ありげなのに意味不明な記述するから、
独自実装しなきゃいけないと思い込む人が出てしまう。罪なことだ。

645 名前:デフォルトの名無しさん :2005/12/23(金) 17:13:30
Internet ExplorerでF11を押したときのキオスクモードみたいなのを
実装するにはHWNDをどうしたらいいですか?

646 名前:637 :2005/12/23(金) 20:13:25

解決しました。ありがとうございました。

647 名前:デフォルトの名無しさん :2005/12/23(金) 21:19:11
>>642
どの辺が「ちょうどいいネタ」なのか教えてはくれまいか?

648 名前:デフォルトの名無しさん :2005/12/23(金) 21:22:32
2chのすべてがおれにとってはちょうどいいネタ。

だが、事実

649 名前:616 :2005/12/23(金) 21:42:37
>>647
・丁度MSDNを読んでて疑問に思った。
・スレ違いの粘着受けていて突っ込み入れたかったが自分もスレ違いになるのは避けたかった。
・結果更に面白くもない結果になったし、今はちょっと反省している。

650 名前:デフォルトの名無しさん :2005/12/23(金) 21:43:10
>>645 はスルーですか?

651 名前:デフォルトの名無しさん :2005/12/23(金) 22:06:38
スルーで

652 名前:デフォルトの名無しさん :2005/12/23(金) 22:10:57
Internet ExplorerでF11を押したときのキオスクモードみたいなのを
実装するにはHWNDをどうしたらいいですか?


653 名前:652 :2005/12/23(金) 22:13:08
解決しました。

654 名前:デフォルトの名無しさん :2005/12/23(金) 22:14:06
Internet ExplorerでF11を押したときのキオスクモードみたいなのを
実装するにはHWNDをどうしたらいいですか?


655 名前:デフォルトの名無しさん :2005/12/23(金) 22:47:43
数学で階乗を求めたときのn!みたいなのを
実装するにはintをどうしたらいいですか?

656 名前:デフォルトの名無しさん :2005/12/23(金) 22:52:46
>>655
その質問はこのスレに相応しいと思いますか?

657 名前:デフォルトの名無しさん :2005/12/23(金) 23:51:47
おい!高卒のUnix屋に敬意を払えよ。

658 名前:デフォルトの名無しさん :2005/12/24(土) 00:31:42
鯖管は板違い

659 名前:わたこ :2005/12/24(土) 00:43:23
こんばんは、わたこと申します。
只今、あるアプリケーションが通信を行おうとすると、
端末ユーザにこのアプリが通信を行うことを許可するかどうかの確認をとるという、
PersonalFireWallのような機能のプログラムを作成したいと考えております。
パケットの監視自体はSOCKETやWinPCAP等を用いればできると思うのですが、
どのアプリケーションが行う通信であるか、という情報はパケットからは得られないと
思います。
そこで、通信が発生した際に、それがどのアプリのものであるかを返すような
APIは存在しないでしょうか。APIを用いる以外の方法でできる、という
情報をお持ちの方も、ご教授していただければ幸いです。
よろしくお願いいたします。


660 名前:デフォルトの名無しさん :2005/12/24(土) 00:47:41
WinXPでのアプリケーションで、
指定されたフォルダを一気に作るAPIを教えてください。
あと、そういったフォルダを作成する場合、そのアプリケーションが
アドミンで実行されていない場合、場所によっては作成できないんですよね?
よろしくおねがいします

661 名前:デフォルトの名無しさん :2005/12/24(土) 05:17:14
>>660
>指定されたフォルダを一気に作るAPIを教えてください。
MakeSureDirectoryPathExists

662 名前:デフォルトの名無しさん :2005/12/24(土) 09:50:13
>>661
660ではないが、これは知らなんだ。(1個づつCreateDirectoryしてた)
サンキュー!


663 名前:デフォルトの名無しさん :2005/12/24(土) 12:34:23
WindowsXPでタスクマネージャのようなプロセスのイメージ名が取れるAPIがあれば教えて頂けないでしょうか。
できればプロセスの実行元ファイルのパスなどでも良いのですが・・・

よろしくお願いします。

664 名前:デフォルトの名無しさん :2005/12/24(土) 12:42:56
ttp://dream.my-sv.net/upload/src/up0056.zip
>>663
これのソースでも読んでみろニダ

665 名前:デフォルトの名無しさん :2005/12/24(土) 12:44:48
Tool HelpかPSAPI
前者なら、CreateToolhelp32Snapshot()辺りから調べること。
後者ならEnumProcesses()あたりから。


666 名前:デフォルトの名無しさん :2005/12/24(土) 13:01:54
>>664-665
ありがとうございました!

667 名前:デフォルトの名無しさん :2005/12/24(土) 18:58:02
800KBのXMLファイルを読み込む自作ソフトは駄目ですかね??
使う側からの意見をまじめにお願いします。将来的には800KB*4個くらい使いますが、
読み込むのはそのうちの一つです。
初めはCSVでサイズも200KBだったのですが、データが本来ツリー構造だったので、XMLにしてみました。
ちなみに、MS-Cabinetで圧縮しようかと思ったのですが、実行時に毎回解凍するのもあれかな・・なんて


668 名前:デフォルトの名無しさん :2005/12/24(土) 19:17:11
いいよ

669 名前:デフォルトの名無しさん :2005/12/24(土) 19:22:46
>>667
別に気にしないよ

670 名前:デフォルトの名無しさん :2005/12/24(土) 19:33:50
>>667
ぶっちゃけどうでもいいよ

671 名前:デフォルトの名無しさん :2005/12/24(土) 20:01:08
とある外部の実行ファイルhoge.exeがポートXを開いて通信していることが分かっているときに,そのソケットIDを取得するAPIってありますか?

672 名前:デフォルトの名無しさん :2005/12/24(土) 20:03:14
ファイルサイズ自体は気にしないなあ
読み書きには気を使うけどね

特に長ったらしい文字列と格闘するのがだるい

673 名前:デフォルトの名無しさん :2005/12/24(土) 20:05:16
ありがとうございます。
ちなみに、エディタを搭載していて、強調表示する予約語とコード補完とパラメータ
補完に使用するメソッドの宣言のデータです。で、メソッドにオーバーロードされている関数が含まれていたので。
ちなみに、まだ、途中ですが、
http://homepage2.nifty.com/whale-whale/
こんな感じです。データベースに接続し、SQL文を実行して、その結果をグリッドに
表示します。
グリッドは固定列表示や列でのグループ化や列の位置を自由に調整できます。
まぁ、このソフトは社会人にしか需要がありませんが。



674 名前:デフォルトの名無しさん :2005/12/24(土) 20:09:46
>>673
下世話な事かもしれないが、この形で200k↑のファイルってオーバーフローしそうな気がするんだが大丈夫なのかね

675 名前:デフォルトの名無しさん :2005/12/24(土) 20:14:15
673です。
すみません、どこでオーバーフローするのでしょうか??
XMLは起動時に読み込んで、それを内部で検索しやすい形のデータ構造に変換しています。
で、コード補完時に、キャレット位置の直前のトークンから必要なメソッドだけを取り出して、
補完リストに表示させています。XMLも800KBとありますが半分以上はタグとか属性でサイズを
食っています。

676 名前:デフォルトの名無しさん :2005/12/24(土) 20:24:54
>>674
いやね、業務用っぽいが、こういうRDBって一点集中あんまりすると仕様変更時のリスクが上がるわけで
俗っぽい言い方すると柔軟性に欠けるんじゃないのかねと
普通はもうちょいデータばらして管理分散するもんじゃ?

677 名前:デフォルトの名無しさん :2005/12/24(土) 20:26:00
675だった、自分にレスしてどうするorz

678 名前:デフォルトの名無しさん :2005/12/24(土) 20:37:10
ははは。
675です。
おもいっきり、業務用です。XMLのデータはエディタで使う予約語とメソッドの宣言の
データだけです。それ以外のアプリケーションの設定データはiniファイルを使用しています。
エディタのそれ以外のデータも。
で、接続するデータベースのバージョンによって、予約語とかメソッドの数や種類が違うので、
その分XMLファイルを用意しようと思っています。

679 名前:デフォルトの名無しさん :2005/12/24(土) 20:56:26
DB版グループウェアみたいな感じにでもするのかね?

まあAPIの話から脱線してるしスレ違いだからROMに戻るよ

680 名前:デフォルトの名無しさん :2005/12/24(土) 22:23:05
WndProc に関してです……

WndProc 内に処理を書くのでは、どうしても諸情報がグローバル変数になっちゃうのが嫌で嫌で、
メッセージループ内で GetMessage した後 DispatchMessage する前にメッセージ処理させようとしたんですが……
WM_ACTIVATEAPP とかのメッセージが捕まりません。なんで〜。・゚・(ノД`)・゚・。

681 名前:デフォルトの名無しさん :2005/12/24(土) 22:50:56
>>680
そんなあなたにWTL♪

682 名前:デフォルトの名無しさん :2005/12/24(土) 23:04:55
CopyRectってあるけど、構造体のコピーって
ANSIで認められてないんだっけ?

683 名前:682 :2005/12/24(土) 23:06:50
あ、いかん撤回。
書いたぞばから気が付いた、
CだけがCallerとは限らないんだ

684 名前:デフォルトの名無しさん :2005/12/24(土) 23:19:09
>>680
全てのメッセージがGetMessageで捕まるわけではない。
各ウィンドウプロシージャへ直接送られるメッセージもある。

ちなみに自分からメッセージを送るときには
前者ならPostMessageで、後者ではSendMessageを使う。

685 名前:デフォルトの名無しさん :2005/12/24(土) 23:19:41
>>680
確か、一部がコールバックのみにしか行かなかったからだと思う。
WM_PAINTやWM_COMMANDもうまく行かないはず。

コールバックで来たメッセージを記憶し、
それだけはグローバル変数(関数のstatic)を我慢して使い、
GetMessageした後の部分で調べて処理するのがいいかな。

686 名前:デフォルトの名無しさん :2005/12/24(土) 23:28:13
SendMessageですら送受信のスレッドが同一なら直接ウィンドウプロシージャが呼び出される

687 名前:デフォルトの名無しさん :2005/12/24(土) 23:32:19
あれだろ、メッセージキューを使うのと使わないメッセージの差

688 名前:デフォルトの名無しさん :2005/12/25(日) 00:38:52
マイクロソフトが定義してあるマクロの一覧が欲しいのですが
WEBでないでしょうか?

たとえば、
RECTとかLPRECT、LPCTSTRみたいなもの

689 名前:デフォルトの名無しさん :2005/12/25(日) 00:46:30
>>688
それ全部マクロではないよ。typedefが使われている。
それはともかくとして全部ではないけれど大部分はここに載っている。
http://msdn.microsoft.com/library/en-us/winprog/winprog/windows_data_types.asp?frame=true

690 名前:デフォルトの名無しさん :2005/12/25(日) 00:46:57
>>688
grep

691 名前:689 :2005/12/25(日) 00:47:14
と思ったけどごめん、構造体の類は載っていないね。

692 名前:688 :2005/12/25(日) 00:53:33
>>689
さんくす!これです。
マクロじゃなくて、型定義でしたね。

ありがとうございました。

693 名前:デフォルトの名無しさん :2005/12/25(日) 00:59:42
なぜこれを定義する必要があったんでしょうかね?
#define VOID void

voidでいいじゃん

694 名前:デフォルトの名無しさん :2005/12/25(日) 01:03:42
INT
UINT
BYTE
LONG
void    <---ショボスwwwwm9(^A^
WORD
DWORD

ってなるから

695 名前:デフォルトの名無しさん :2005/12/25(日) 01:09:31
>>693
たまたまC/C++ではtypedefされているだけでWin32APIを使うのはC/C++だけとは限らないから。

696 名前:デフォルトの名無しさん :2005/12/25(日) 01:16:51
1.ウインドウを作成
2.ツールバーコントロール(ToolbarWindow32)を付ける
3.ボタン以外の部分をダブルクリック

ダイアログウインドウらしき物が一瞬出て消えるけど、
これは何?

697 名前:デフォルトの名無しさん :2005/12/25(日) 01:31:58
API関数を自作することって出来るのですか?

698 名前:デフォルトの名無しさん :2005/12/25(日) 01:36:27
はい

699 名前:デフォルトの名無しさん :2005/12/25(日) 01:37:51
>>660
SHCreateDirectoryEx

700 名前:デフォルトの名無しさん :2005/12/25(日) 02:43:30
>>696
CCS_ADJUSTABLE

701 名前:デフォルトの名無しさん :2005/12/25(日) 09:14:50
>>694
でもWinAPIではINTよりintが多用されているという事実。

>>697
でもそれは何かのAPIであってもWinAPIではないよ、一応言っておくけど。

702 名前:デフォルトの名無しさん :2005/12/25(日) 13:16:06
WindowsXPスタイルで表示する場合にマニフェストファイルを使ったりしますよね?
それを使った場合で、トラックバーの範囲をハイライト表示する機能がMSのバグ?で表示されない問題があったと思いますが
何か対処ご存知の方いますか?
トラックバーだけWindowsXPスタイルを適用しない、という方法以外で。
よろしくおねがいします。



703 名前:デフォルトの名無しさん :2005/12/25(日) 14:10:42
>>702
スクロールバーに仕様変更する。
トラックバーはつまみが小さく感じることが多く使い勝手悪し。

704 名前:デフォルトの名無しさん :2005/12/25(日) 16:13:55
ウィンドウ右上の×ボタンを押した時の履歴をとりその情報を蓄積。
あっ…やべ、消しちまった。
って思ってメニューを選ぶと閉じたアプリケーションを再び開いてくれる
常駐ソフトを作るとしたら、核となる全てのウィンドウの×ボタンが押される
タイミングを監視する部分はどう実装すればいいと思われますか?


705 名前:デフォルトの名無しさん :2005/12/25(日) 17:10:23
それが核かよ

706 名前:デフォルトの名無しさん :2005/12/25(日) 18:00:15
>>705
頑張って作ってみてくれませんか

707 名前:デフォルトの名無しさん :2005/12/25(日) 18:07:15
間違って消して舞うことあるあるw。

708 名前:デフォルトの名無しさん :2005/12/25(日) 18:52:07
コントールボックスをダブルクリックで閉じたり、タスクバーから閉じたり
誰もが×ボタンで閉じるとは限らないからお前専用のアプリだな

709 名前:デフォルトの名無しさん :2005/12/25(日) 19:05:59
>>703
ありがとうございます。
スクロールバーって範囲をハイライトで表示できましたっけ?


710 名前:デフォルトの名無しさん :2005/12/25(日) 19:06:25
ウィンドウを復元するのは難しくないか?

閉じるふりして非表示にしておき、
一定時間経ったら undo する意思がないとみなして
本当に閉じる、っていうのなら可能かも。

711 名前:デフォルトの名無しさん :2005/12/25(日) 19:55:21
Alt + F4が好きだな

712 名前:デフォルトの名無しさん :2005/12/25(日) 20:15:17
> 閉じるふりして非表示にしておき、
> 一定時間経ったら undo する意思がないとみなして
> 本当に閉じる、っていうのなら可能かも。

その機能少しだけ試してみたいかも


>>708
SC_CLOSEをフックすることとかできないんだっけ。

713 名前:agesage :2005/12/25(日) 21:04:16
エクセルみたいな20×20の表を作り、その中にデータを入れていきたいんですけど
APIで作るのは、厳しいですか?また、どんな、APIを使えばいいですか?お願いします。

714 名前:デフォルトの名無しさん :2005/12/25(日) 21:07:33
>>713
EDITコントロール

715 名前:デフォルトの名無しさん :2005/12/25(日) 22:02:28
WinAPIではないけれどFlexGridコントロールはどう?

716 名前:agesage :2005/12/25(日) 22:51:38
>>714
>>715
ありがとうございました。
そして、すみませんでした。環境を書くのを忘れていました。
XP(HOME),VC2003 です。

エディットコントロールで、がんばってみます。


717 名前:デフォルトの名無しさん :2005/12/26(月) 01:25:35
VisualC++6.0を使っています。
リストボックスの項目をダブルクリックすると、その項目の文字列を取得するプログラムは
どうやって作ればいいのですか?
リストボックスをダブルクリックしたときのメッセージがLBN_DBLCLKというのはわかったのですが
そのときにどういうプログラムを組めばいいのかわかりません。
よろしくお願いします

718 名前:デフォルトの名無しさん :2005/12/26(月) 01:45:37
>>717
LB_GETTEXT
ttp://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/listboxes/listboxreference/listboxmessages/lb_gettext.asp

719 名前:デフォルトの名無しさん :2005/12/26(月) 01:54:21
>>718
英語読めません!!!

720 名前:デフォルトの名無しさん :2005/12/26(月) 02:01:23
>>719
んじゃ、語学からどうぞ。

721 名前:デフォルトの名無しさん :2005/12/26(月) 02:11:03
SendMessage(HWND,LB_GETTEXT,SendMessage(HWND,LB_GETCURSEL,0,0),(LPARAM)pText);
こんな感じですか?HWNDは、リストボックスのハンドルらしいですが、ウインドウプロシージャの
第一引数でいいんですか?あと、最後のpTextはchar *pText;と定義したものを使うのですか?

722 名前:デフォルトの名無しさん :2005/12/26(月) 07:56:45
>>713
DHTMLでtable使うのはどう?

723 名前:デフォルトの名無しさん :2005/12/26(月) 12:08:44
マルチモニタの環境で、1つのディスプレイだけを消灯させたいのですが、
省電力の設定が個別に出来ません。
両方消えてしまう・・・・
これは片方ずつ設定は可能なのでしょうか?


724 名前:デフォルトの名無しさん :2005/12/26(月) 12:37:50
>>723
スレ違い

725 名前:デフォルトの名無しさん :2005/12/26(月) 12:48:47
例えばTCHAR ptStr[32]=TEXT("642");として
これを数字に変換する場合、atoiで変換するのはまずいですよね..
その場合MSはどの様なAPIを提供してますか?

726 名前:デフォルトの名無しさん :2005/12/26(月) 12:51:09
>>725
VC/BCCは独自に<tchar.h>で_ttoiを用意している。
どうしてもWinAPIでやりたければ<shlwapi.h>にStrToIntがある。
C++ならstd::basic_istringstream<TCHAR>やboost::lexical_castも使える。

727 名前:デフォルトの名無しさん :2005/12/26(月) 12:52:31
>>726
ありがとうございます、勉強してきます

728 名前:デフォルトの名無しさん :2005/12/26(月) 14:30:54
Petzold の Unicode 入門の話で出てきた最後のサンプルプログラムで
VC2003 のプロジェクトのプロパティで プリプロセッサの定義の項目で UNICODE 識別子を入れたら
警告が表示されて、表示も変になりました。
しかし、 _UNICODE 識別子も追加するとメッセージボックスの表示は元に戻りました。
これは UNICODE 識別子によって WCHAR などの型が有効になるだけであって、
_UNICODE を定義しなければ関数のワイド文字版と解釈されないということでしょうか。

729 名前:デフォルトの名無しさん :2005/12/26(月) 17:02:53
新しいプロセスを作って、
そのプロセスが終了した時の戻り値を参照したいのですが、
どうすればいいですか?

環境は、Windows2000で、VC++.netです。

730 名前:デフォルトの名無しさん :2005/12/26(月) 17:17:47
>>729
つ [CreateProcess(), GetExitCodeProcess()]

731 名前:デフォルトの名無しさん :2005/12/26(月) 17:26:08
>>721
pTextに十分な(LB_GETTEXTLENで得られる以上の)領域を確保していればいい。

732 名前:デフォルトの名無しさん :2005/12/26(月) 17:37:54
>>725
strtol
wstrtol
というものもある

733 名前:729 :2005/12/26(月) 17:55:14
>>730
どうもです。検索語すら思いつかなかったので助かりました。

734 名前:デフォルトの名無しさん :2005/12/26(月) 18:08:25
CreateWindowExをつかってタブを貼り付けたんですがXPスタイルにするには、
どうすればいいんですか?
環境はVC++6.0です。
暇があったらでいいです。

735 名前:デフォルトの名無しさん :2005/12/26(月) 18:59:41
>>734
manifestとか

736 名前:デフォルトの名無しさん :2005/12/26(月) 20:11:36
>>728
UNICODE が Win32用で
_UNICODE が CRT用

737 名前:デフォルトの名無しさん :2005/12/26(月) 20:15:00
すんません。
MFCのCSocketクラスを使って、TCP/IPのサーバを作ってしまいました。
たまたま、下記URLの記事を見てしまって、ブルーになってます。
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/articles/csocket.html

普通は、どうやって作るのが普通なんですか?


738 名前:728 :2005/12/26(月) 20:17:37
>>736
どうもありがとうございます。
納得できました。

739 名前:デフォルトの名無しさん :2005/12/26(月) 20:34:18
>>737
API直

740 名前:デフォルトの名無しさん :2005/12/26(月) 20:40:39
>>739
もしかして、
LoadLibrary("winsock.dll");
ってやって、直叩きですか?

当りなら、どこかお勧めのサンプルコードのURLとか・・お願いします。


741 名前:デフォルトの名無しさん :2005/12/26(月) 20:47:10
おまいさんはGDIを直接使うのに
LoadLibrary("gdi32.dll");
からはじめる人かね?

742 名前:デフォルトの名無しさん :2005/12/26(月) 21:15:34
>>741
なんとなくわかった。サンクス
↓をヒントにしようと思う
http://wisdom.sakura.ne.jp/system/winapi/winsock/winSock1.html

これで、UNIX系で普通にやってるみたいにlistenしてacceptして、
forkする代わりにスレッドでも起こせばよいのかな


743 名前:デフォルトの名無しさん :2005/12/26(月) 21:22:28
すまん、一点疑問が・・・

GetMessageでイベント待つのと、acceptでコネクション待つのを同時に待ちたいのだけど・・
どうするんだ?
unix系なら、FDがあれば、selectで自分で同期とれるけど・・CSocketでblackboxだった部分を
実装せにゃあかんのかな?

・・・一晩悩んで見ます。


744 名前:デフォルトの名無しさん :2005/12/26(月) 21:29:24
>>737
よく分からんが、これなんかどうよ?
ttp://x68000.q-e-d.net/~68user/net/

745 名前:デフォルトの名無しさん :2005/12/26(月) 21:34:02
>743
WSAEventSelectしてMsgWaitForMultipleObjectするか、
WSAAsyncSelectしてウインドウメッセージで飛ばすか。

746 名前:デフォルトの名無しさん :2005/12/26(月) 22:04:19
Visual Basicのようにダイアログボックスがメインなプログラムを
C++でするにはどうすればいいんですか?
どのサイトでも最初に空のウィンドウを作ってて
ダイアログボックスを主にする方法が解らないんです。

747 名前:デフォルトの名無しさん :2005/12/26(月) 22:09:09
WinMainからDialogBox

748 名前:デフォルトの名無しさん :2005/12/26(月) 22:19:52
空のウィンドウは作らなくてもいいって事ですね。
しかし、DialogBoxParam()で引数の親ウィンドウハンドルをNULLにすると表示されません…。

749 名前:デフォルトの名無しさん :2005/12/26(月) 22:27:36
・ShowWindow
・WS_VISIBLE

750 名前:デフォルトの名無しさん :2005/12/27(火) 11:49:38
WriteProfileStringでのINIファイルへの書込みって
スレッド間の排他、プロセス間の排他等の面倒は見てくれてますよね?




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