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


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

Win32API質問箱 Build53



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

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

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

357 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 01:15:52 ]
>>355
単純にみんなが知らないだけだと思われ。
ってか、自分もはじめて知った

358 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 01:22:24 ]
>>355
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdndllpro/htm/metrsect.asp

マイナーなだけ。
知ってる人は知ってる。

359 名前:デフォルトの名無しさん [2007/05/26(土) 01:50:48 ]
唐突な質問すみません。
WAVファイルが使用されているかどうかをチェックするにはどうすればいいでしょうか?

360 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:02:34 ]
アクセス日時でも調べたら?

361 名前:デフォルトの名無しさん [2007/05/26(土) 02:09:16 ]
使用とはつまり今使用中なのかどうかを調べたいのですが、

362 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:13:31 ]
そのWAVファイルをごみ箱に投函。

入ってくれなければ使用中。以上

363 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:26:09 ]
さうんどどらいばにおくられているはけいがそのわヴのものならしようちゅう。いじょう。

364 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:31:54 ]
スレ違いでしたら誘導をお願いします

CreateProcessで作成したプロセスを安全に終了させたいと思っています。
メッセージループを持っているプロセスならWM_CLOSEで事足りるのですが、コマンドラインアプリケーションの場合はどうすればいいのでしょうか?
たとえばpingの場合control-Cを送れば終了できるんじゃないかと思い、パイプを作成してETXを送ったのですが終了できません。
また、command.comのプロンプトはCR(control-M)でちゃんと改行と処理されるのですが、パイプを通した場合はLFCRを送らなければ認識されません。
パイプの処理に関して何か根本的な勘違いをしているのでしょうか?

365 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:42:52 ]
>>364
どういう使い方してるの?
ウチの環境ではpingし終わったら勝手に閉じるけど?



366 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 05:59:02 ]
command.comってことは98・・・か・・・?

367 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 08:50:30 ]
>>364

support.microsoft.com/kb/190351/ja

まず、ここのサンプルを試してみ

368 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 10:16:56 ]
シグナルを送るんだよ

369 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:05:33 ]
>>364
安全に終了させる汎用的な方法は無い。
WM_CLOSEで終了したとしても、それが正規な終了方法でないアプリがあるかもしれない。
結局各アプリを解析して、個別の対応を採らなければならない。

370 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:08:36 ]
ウィンドウクラスのとこで
winc.hIcon = LoadIcon(NULL , (LPCSTR)IDI_ICON2);
で、アイコンを指定しているのですが、何故かふきだしに i マークがついたアイコンになります。
リソースに自分で作成したICONを追加もしているのですが、何か上の式は間違ってるのでしょうか?

371 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:18:46 ]
>>370
MSDNで第一引数の説明を調べるんだ

372 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:37:37 ]
>>371
ああああありがとうございます(泣)
NULLをhInstanceにしたらアイコンが変わりました!
ぬるぬる

373 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 12:07:52 ]
ぽぽ

374 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 13:26:33 ]
>>364
GenerateConsoleCtrlEvent

375 名前:364 mailto:sage [2007/05/26(土) 19:25:12 ]
>>365
現在親プロセスからコマンドラインアプリケーションを起動して標準出力を拾っているのですが、親プロセスを終了したときにそのコマンドラインアプリケーションを安全に終了させたいのです

>>367
拝見したところパイプの接続は私のテスト環境と同じようで、子プロセスの終了も親からでは無くping同様に子プロセスのChild.EXEが勝手に終了するのを待つだけのようでした。

>>369
起動させるプロセスは限られていますので私も個別に対応したいと考えています
たとえばCOMMAND.COMならば'EXIT'を送れば終了でき、pingならばctrl-Cで終了できるはずです。
しかし前者は成功するのですが、後者は失敗しました
パイプでは制御コードを送れないってことはありませんか?



376 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 19:35:47 ]
>>364
ちょっ話変わるけど、
コンソールリダイレクトの想定先は何?
例えば、コンパイラのキッカーみたいなもの?
バッチ処理の結果を取得したい為?

377 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 19:35:53 ]
自作アプリケーションにXPスタイルを適用しつつ
一部のコントロール(ステータスバーなど)のみをXPスタイル以外ってできないのかな?

378 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:01:01 ]
>>377 SetWindowTheme

379 名前:355 mailto:sage [2007/05/26(土) 20:15:21 ]
>>356
>>357
>>358
ありがとうございます

MSDNの記述を読む限り、とても有用な機能だと思ったんですが
何でマイナーになってるんでしょうね・・・

380 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:22:20 ]
>>379
強いて言えば、無くても作れるからかも
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndllpro/html/msdn_metrsect.asp

381 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:27:33 ]
>>379
自分で作らにゃならんし、メンテナンスや互換性を考えると面倒くさいからでしょ

382 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:27:36 ]
>>379
forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1437677&SiteID=7
MeteredSectionってもともとはAPIじゃなくて
あるユーザーが勝手に作ったものみたい。

383 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:04:50 ]
>>375
>>374は無視ですか。パイプを作ってCtrl-Cを送る必要自体ないと言ってるんだけど

384 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:13:22 ]
>>383
心配しなくても無視されないよ。
パイプを作ってCtrl-Cを送ってもどうせ効かないから。

385 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:32:05 ]
逆にパイプのデータ経由で死ねるなら、
パイプはバイナリデータを送れない、という話になる



386 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:33:25 ]
その理屈はおかしい

387 名前:デフォルトの名無しさん [2007/05/26(土) 23:57:14 ]
ドラッグドロップとImageListについて質問です。

DropTargetの側で
ImageList_BeginDragやImageList_DragMove等のAPIを使って
ドラッグ中の画像を作るのは邪道でしょうか?
実際動いてはいるんですが。
やはりDropSourceの方でやるものなのでしょうか。

あと一つ、
ImageList_BeginDragで始まったあとに
表示されている画像を変更することはできないんでしょうか。
ImageList_Replaceは動作しませんでした。


388 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:11:18 ]
ども。>>364です

>>376
ちょうどそんな感じです

>>383
ご指摘ありがとうございます。完全に見落としていました

>>374
私が探していた方法はまさしくコレです
コマンドラインアプリケーションにもちゃんとExitProcessが標準で実装されていたんですね
プログラム側で入力シーケンスを監視してctrl-C信号を拾っているんだと思っていました
色々とありがとうございました。

389 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:23:29 ]
>>388
だからシグナル送れといっとるだろうが

390 名前:387 mailto:sage [2007/05/27(日) 00:39:55 ]
自己解決しました。
同スレッドからD&Dされると挙動不審になるみたいです。
別スレッドからなら(一見)問題ないみたいですが。
止めることにしました。


391 名前:デフォルトの名無しさん [2007/05/27(日) 02:35:12 ]
猫でもわかるプログラミングってどこにあるんですか?

392 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 02:36:22 ]
「猫でも」でぐぐれ

393 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 06:26:12 ]
本屋に有る

394 名前:名無し@沢村 [2007/05/27(日) 08:40:17 ]
hdc=GetDC(hwnd);

memdc=CreateCompatibleDC(hdc);
memdc2=CreateCompatibleDC(memdc);
hBita=CreateCompatibleBitmap(hdc,maxX,maxY);

SelectObject(memdc,hBita);
SelectObject(memdc2,hBita);
PatBlt(memdc,0,0,maxX,maxY,PATCOPY);
PatBlt(memdc2,0,0,maxX,maxY,PATCOPY);

で、後にSelectObjectしたほうのmemdc2がうまく作成されてないようなのですが、
(hdcにコピーして再描画すると消えてしまうので)
memdc2をうまく作成するにはどうしたらいいでしょうか?

395 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 10:54:49 ]
ダイアログを、呼び出したアプリケーションのフォームの最前面に表示したいのですがどうすればよいのでしょう?
WS_EX_TOPMOSTや、SetWindowPosでHWND_TOPMOSTだと、他のアプリの前面にも出てしまいます。
あくまで呼び出したアプリの最前面にしたいのです。



396 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 11:04:26 ]
WM_OVERLAPPED & WM_CHILD & WM_POPUP

397 名前:395 mailto:sage [2007/05/27(日) 11:10:18 ]
失礼しました。
DialogBox関数の第3引数がうまく設定できていないのが原因でした。
お騒がせしました。

398 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 11:14:09 ]
>>394 そのSelectObjectは何かのギャグか?

399 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 12:17:07 ]
>>394
msdn.microsoft.com/library/ja/jpgdi/html/_win32_selectobject.asp?frame=true
> アプリケーションは、1つのビットマップを一度に複数のデバイスコンテキストで選択することはできません。

400 名前:名無し@沢村 [2007/05/27(日) 12:52:00 ]
>>399
つまり描画用のデバイスコンテキストを複数つくることはできないということですか?
ペイントソフトのアンドウリドゥとかはどうなっているんだろう?
メモリデバイスコンテキストを複数つくれば、そこにコピーして待避させておいて、簡単に実装できるんだけど…

401 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 12:54:49 ]
逆にビットマップを複数作ればいい

402 名前:名無し@沢村 [2007/05/27(日) 12:58:04 ]
私がつくりたいのは、
例えば赤と黒で画面に線を描画して、
あとから赤の線だけを消して、赤の線の下に引かれている黒い線もちゃんと復元できるようなソフトなんですけども…

黒い線と赤の線を別々のデバイスコンテキストに描画すれば簡単だと思ったんですがテ…

403 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 13:13:53 ]
操作履歴があるなら、それをもとに
「ファイルを開く」から復元できるやろうが。

404 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 13:19:52 ]
例えば、同じビットマップを複数のDCに選択できたとしたら、
片方のDCに書き込んだ内容はもう片方のDCでも同じ内容になるだけだが・・・

なんでビットマップを複数作ルことを思いつかないんだ?

405 名前:デフォルトの名無しさん [2007/05/27(日) 14:23:49 ]
熾烈な首位争いを繰り広げる、日本とハンガリー。
日本は現在ハンガリーに500万クリックほど差をつけているものの、
これで安心してはいけない。
我々のこれまでの最大クリック速度は8万〜9万回/分が限度だが、
ハンガリーはなんと13万回/分を叩き出した実績がある。
実際、1400万の差を一晩でひっくり返されている。

今はハンガリー時間で7時を過ぎたところ。
彼らの動きが活発になり始めるころだ。
おまけに月曜日は祝日だという確定情報もある。
今の戦力では心もとない、まだまだ戦力を募集中だ。

もはやVIPPERだけでは太刀打ちできない。
これはもはや、VIPの枠を超え、2ch全体で立ち向かう以外に勝機はない。
諸君の参戦を切に願う。

現行スレ
【首位奪還】一番クリックした国が優勝 Click82【天王山の決戦!!】
wwwww.2ch.net/test/read.cgi/news4vip/1180241158/

まとめサイト
www33.atwiki.jp/clickvip/




406 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 14:49:49 ]
>例えば赤と黒で画面に線を描画して、
>あとから赤の線だけを消して、赤の線の下に引かれている黒い線もちゃんと復元できるようなソフトなんですけども…

レイヤーのことだろうか?

407 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 16:23:17 ]
この手のは、BitBltをパワーアップさせて、転送先や転送元に、
HDCだけじゃなくHWNDやHBITMAPも渡せるような
関数を作っておくと楽かな。

408 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:36:53 ]
>>402
スレ違いの回答になるが・・・・
Undo/Redoをやりたいなら、ビットマップレベルで履歴を保存するより
描画内容(座標・色・線種など)で履歴を保存するほうがいいと思うよ。


409 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:42:42 ]
質問です。F1を押したときにある動作をさせたいのですが、
ウィンドウプロシージャでWM_KEYDOWNでメッセージを受け取る事が出来ません。
起動した直後は出来るのですが、その後、エディットコントロールにフォーカスを移動した時とかに
メッセージを拾う事ができなくなります。エディットコントロールやボタンにフォーカスがある状態でも
メッセージを受け取るにはどうすればいいのでしょうか?

410 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:54:56 ]
キー関係のメッセージははフォーカスを持つウィンドウに送られる

メッセージをDispatchする前に、アクセタレータを使うなり何なりすること。

411 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:56:55 ]
ごめtypo
*アクセラレータ

TranslateAcceleratortとかHACCELとかのことです

412 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 19:56:41 ]
HP見ながら頑張ってみたのですが、上手くいきません。
肝心な部分だけ書いてみました。どこかいけないところはあるでしょうか?

//aaa.rc
IDR_ACCELERATOR1 ACCELERATORS
BEGIN
  VK_F1,  ID_MYHELP,  VIRTKEY,  NOINVERT
END

//resource.h
#define ID_MYHELP 40001

//aaa.cpp
WinMain(){
  haccel = LoadAccelerators(hInstance, (LPCSTR)IDR_ACCELERATOR1);
}

WndProc(){
  case WM_COMMAND:
    if(LOWORD(wp)==ID_MYHELP) MessageBox();
    return 0;
}

413 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:07:28 ]
LoadAccelerators(hInstance, MAKEINTRESOURCE(IDA_ACCEL1)); とか
TranslateAccelerator(hwnd, hAccel, &msg) 抜けとかかなーといってみる


414 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:12:37 ]
TranslateAcceleratorは?
あと、(LPCSTR)IDR_ACCELERATOR1よりもMAKEINTRESOURCE(IDR_ACCELERATOR1)
LOWORD(wp)よりもGET_WM_COMMAND_ID(wp, lp)お薦め

415 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:32:19 ]
>>413-414
TranslateAccelerator()を入れたら動作しました!
大事なところを見逃してました。ありがとうございます。



416 名前:名無し@沢村 [2007/05/27(日) 20:39:52 ]
>>404
>なんでビットマップを複数つくることを思いつかないんだ?
memBit1=CreateCompatibleBitmap(hdc,x,y);
memBit2=CreateCompatibleBitmap(hdc,x,y);
のようにでしょうか?
表示用のデバイスは1つ(hdc)しかないので、ちょっと無理っぽい気が…

417 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:40:34 ]
なんで見えない番号があるのかと思ったら
なつかしいな沢村

418 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:42:47 ]
TranslateAcceleratorは>>411でわざわざ言ってあげたのにな

419 名前:名無し@沢村 [2007/05/27(日) 20:47:02 ]
>>408
描画内容(座標、線種、色)を数値データとしてスタックに保存するのでしょうか?
データを画面に復元するときはどうすれば?
思い付くのはSetPixcelですが、
SetPixcelで1点ずつ画面に点を打っていくのでは、時間がかかりすぎるような気が…

420 名前:名無し@沢村 [2007/05/27(日) 20:52:27 ]
>>417
なつかしいな。
プログラミングは当分休止。つーかいまプログラミングしてるけど…
いま投稿用の漫画描くためのソフトつくろうと思って質問しまくっているとこ…

これができたら、プログラミングはお休みして漫画に専念する。

421 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:00:41 ]
>>419
既にAPIの質問ではないと思うが
基本的な方法としては、
1、画像そのものを最初にどこかに保存しておいて
2、描画時に使ったコマンドの内容を保存しておく。 点を打った、線を引いた、円を描いたというようなね。

そして、巻き戻すときは、1から順にコマンドを再現して、一つ手前で止めればいい。

422 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:26:41 ]
WM_CHARメッセージで、送られてきた文字を取得することは可能なのでしょうか?


423 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:29:18 ]
>>422
お前が手の届く範囲にいたら殴りたい。
なんで訊く前にちょっと調べてみないわけ?
ほんの少し調べれば分かることなのに。

424 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:37:34 ]
本人にとって、2chで聞く=調べる、なんだろうな

お前の手の届く範囲にはディスプレイがあるだろうから代わりにそれでも殴っとけ

425 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:52:49 ]
いえ、質問の仕方が適当すぎました・・・。
WM_CHARのwpに入ってるっぽいのですが、その取り出し方がわかりません。
MessageBox()で表示させようと、(PTSTR)&wpにしても、文字コード取得しようとして(int)wpで見てみても
なんか全然変な値が入っててわけわかりません。



426 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:01:52 ]
あのさあ、ちゃんと調べてんの?
ぐぐっただけで詳しい使い方なり情報なりわんさか出てくるんだが。

TranslateMessageはちゃんと読んでんよな?
だったらWPARAM型のwpにキャラクタコードが入ってるんだが。
ちなみにキーコードじゃないぞ

俺も殴りたくなってきた

427 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:02:22 ]
殴るなら俺を殴れ

428 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:15:19 ]
>>419
SaveDC, RestoreDCじゃダメか?

429 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:16:38 ]
>>425
Cの文字の扱いをまるで理解していないと見た。

430 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:36:50 ]
いえ、殴るなら僕を殴って下さい。それはそのはず、入ってるわけがありませんでした。
WM_COMMANDで拾ってそのパラメータからWM_CHARの処理やってたので、
そのままWM_CHARを捕まえたような気分になってました。

431 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:44:41 ]
>>430
あんた誰だよ。>>425か?

名乗りもせずいきなり僕などという一人称使うな。殴るぞ

432 名前:412 mailto:sage [2007/05/27(日) 22:57:40 ]
>>412-415
これでF1はどこにカーソルがあっても機能するようになったのですが、
F2、F3は機能しなくなりました。F2、F3等は、あるエディットコントロール内にカーソルが
ある時のみ有効にしたくて、F1だけ特殊な感じでした。これはF2、F3とかも
アクセラレータに持っていかれてしまってるせいなのでしょうか?

433 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:59:21 ]
>>431
すみません、俺が悪かったです。もう名乗りません。
違う方法でなんとか解決できたのでなんとか出来ました。

434 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:25:20 ]
>>433
だーかーら、名乗りもせず「俺が」なんて言うな、っていってんだよ
>>430です、くらい書けよ
誰だかわからんだろう

435 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:28:17 ]
いえ、それは俺です。



436 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:29:05 ]
>>434
俺だよ俺

437 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:34:17 ]
だから俺が俺なんだって
勝手に人の名前騙るなよ

438 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:36:23 ]
>>437
すまん、お前が俺か。
悪かった。

439 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:54:24 ]
>>412
もしかして: WM_HELP
なんか、ID_MYHELPとか書いているし。

440 名前:412 mailto:sage [2007/05/28(月) 00:02:55 ]
>>439
いえ、WM_HELPではありません。まぁ同じなんですけど、
F1ボタンを押したら自分で作ったヘルプのウィンドウが出るようにしています。
それはいいんですが、F2〜F8にもその他の機能を用意していて、
あるエディットコントロールをサブクラス化してそのプロシージャで
WM_KEYDOWNで拾っているのですが、それが機能しなくなりました。
F1だけをアクセラレータで変にやったせいなのでしょうか?

441 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:12:26 ]
>>420
コミックスタジオでも買った方が良いぞ

あ、マンガ描くためのソフトから作ったのを作品の
ネタにするのなら恐れ入る

442 名前:名無し@沢村 [2007/05/28(月) 00:16:43 ]
突然ですが、2つのメモリデバイスコンテキストを合成して描画することに成功しました。
黒い線の画面のほうをBitBltのSRCANDで画面にコピーし、
赤い線の画面のほうをSRCCOPYで画面にコピーしたら、
再描画をかけてもどっちの線も消えませんでした。
ただ、この方法だと、赤い線も黒くなってしまうようです…

赤い線が黒くならないようにするには、どうしたらいいのでしょう?
いくつも組み合わせがあるので、全部ためすのは、気が遠くなるほど時間がかかりそうなので…

443 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:20:18 ]
組み合わせとは何の組み合わせ?

444 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:30:55 ]
ねむい

445 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:58:48 ]
質問です。
CでWindowsプログラム作るため、Win32APIを学ぼうと思っていろいろ調べている途中で気になったことがあります。
テンプレのWin32 API入門というサイトではWin32API学ぶ上で、
windowsの知識とアーキテクチャの知識が必須だと書かれていました。
そこで、「コンピュータの構成と設計」「アーキテクチャ徹底解説MicrosoftWindows2000・・・」
などの書籍でコンピュータアーキテクチャについて学んだ方がいいのでしょうか?
お金に余裕がないので無駄な出費は避けたいです。
ちなみに私は、基本情報技術者試験の知識とCの入門書の知識くらいしかもっていません。
御回答よろしくお願いします。



446 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 01:02:31 ]
パソコン初心者でもなければ別に要らないと思う

447 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 01:02:50 ]
いらん

448 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 01:03:19 ]
その程度は、Win32APIを色々試しているうちに自ずと判ってくるから要らない。

449 名前:445 mailto:sage [2007/05/28(月) 01:09:36 ]
>>446-448
御回答ありがとうございました。
ではこのままWin32APIの学習に入ろうと思います。

450 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 02:30:45 ]
Windowsプログラムを作るためならば、APIから学ぶのは止めたほうがいい。
実際開発では窓とかはフレームワーク任せだからな。それで問題ない。
ど〜しても、変態的な非効率な開発を求めるならAPIから始めることを止めはしない。

451 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 02:59:11 ]
>>449
>>450の意見と思いっきり逆のタイトルですまんが

APIで学ぶWindows徹底理解
www.amazon.co.jp/exec/obidos/ASIN/4822228266

この本はまじでおすすめ。
雑誌連載のムック化だから、それぞれのトピックは完全に独立してて
一つ一つ段階的に学習していく、って使い方はできない(想定されてない)けど、
それぞれに読み応えがあるし、なにより文章がとても上手くて面白い。
内容はタイトルどおりで(「徹底」はちと言いすぎか)、
APIの使用例を通してWindowsの仕組みや叩き方が結構クリアに見えてくると思う

ただし、Cの基礎が分かっていることが条件。
あとソースはBCC用だがVCのことも全体に渡ってちゃんと配慮して書かれてる

まぁ服毒本として興味があればどうぞ


452 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 05:26:58 ]
XPのタスクマネージャのプロセスタブと同じ様な働きをするプログラムを作ってます。
本物のタスクマネージャのプロセス一覧でユーザー名を有効にすると、
LOCAL_SERVICEやNETWORK_SERVICEといったユーザー名の
プロセスが表示されますが、これらのプロセスをOpenProcessTokenで
開こうとするとGetLastError() == 5のアクセス違反でを取得できません。
ログインユーザーやSYSTEMのプロセスなら成功するのですが、
こういった****_SERVICEのプロセスからユーザー名を取得する
方法がありましたら教えてください。
Web検索しても成功してる人の記事が見つかりませんでした。

ぶっちゃけ下の人と同じ事をしたいのですが、
リンク先の回答者が教えているcodeprojectの方法では
取得する事はできない様です。
ttp://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200407/04070077.txt


453 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 06:03:28 ]
すいません、アクセス違反じゃなくて、
GetLastError() 5 「アクセスが拒否されました。」
ってエラーです。

454 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 06:31:58 ]
開き方が悪い

455 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 08:08:45 ]
最低限必要なところのAPIくらい理解しとかんと問題が起きたときにどうにもならん



456 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 08:14:01 ]
>>442
そうか?
小さいBMPを2つ作って、
組み合わせをプレビューをすればいいんじゃない?

Photoshopとかあれば、もっと容易だけど

457 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 08:44:38 ]
>>453
偽装しておけ






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

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

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