Win32API質問箱 Build ..
[2ch|▼Menu]
357:デフォルトの名無しさん
08/02/12 18:39:13
>>356
.NET使わないんでPlatformSDKの頃みたいにWin32関連だけインスコできればなと
色々統合されてたりして無理なのかな

358:デフォルトの名無しさん
08/02/12 18:45:04
Windows SDK = Platform SDK + .NET Framework SDK

359:デフォルトの名無しさん
08/02/12 19:10:04
.NET FrameworkをインスコしないでPlatformSDKだけ入れさせろって意味

360:デフォルトの名無しさん
08/02/12 19:11:13
やってみれ

361:デフォルトの名無しさん
08/02/12 20:09:28
ボタンコントロールで質問です。
BM_SETSTATEで押し込んだ状態にできますが、
クリックしたり、クリックしたままボタンの上から移動すると
出っ張った状態に戻ってしまうんですが、
トグルボタンのようなものを作るにはどうしたらよいですか。
MFCなら同じメッセージを送ればそのまんま動くみたいですが
MFCなしでお願いします

362:デフォルトの名無しさん
08/02/12 20:34:05
リストビューコントロールについて質問します。
リポートビュースタイルを適用しています。
リストビューに項目を設定するには、
LVITEM lv;
lv.iItem = 0;
ListView_InsertItem(hListView, &lv);
ListView_SetItemText(hListView, 0, 1, TEXT("項目1−1"));
という形で大丈夫なはずだと思うんですが、なぜかうまくいきません。
どこがおかしいのでしょうか


363:デフォルトの名無しさん
08/02/12 20:55:26
>>359
インストール時のコンポーネント指定でドトネト関連だけ外せばいいじゃん
ダウンロードするファイルのサイズ自体を減らしたいというならそれは無理な相談、だがwebインスコなら可?

364:デフォルトの名無しさん
08/02/12 21:06:07
Sleep(1);よりも短い時間のウェイトは作れない?
精度はまったくいらないんだけど。

365:デフォルトの名無しさん
08/02/12 21:11:35
じゃあ1でいいだろ

366:デフォルトの名無しさん
08/02/12 21:12:24
精度要らないならSleep(1)でいいじゃん。

367:デフォルトの名無しさん
08/02/12 21:13:09
ビジーループでおk

368:デフォルトの名無しさん
08/02/12 21:15:10
>>362
そのリストビューはカラムを2つ以上追加した状態なのか?(ListView_SetItemTextの第3引数は一番左のカラムなら0)
あとLVITEMは宣言時に { 0 } で初期化したほうがいい
まずはリファレンスか入門サイト見たほうがいいよ

369:デフォルトの名無しさん
08/02/12 21:21:34
>>364
どんなウェイト?
他のスレッドに一瞬制御渡したい目的なら「メッセージポンプ」で検索。
そうじゃなきゃvolatile int i; for(i=0;i<100;i++);とかで適当に回すとか。

370:デフォルトの名無しさん
08/02/12 21:30:25
I/Oポート触ったら約1μ秒だ、ってどっかに書いてあった

371:デフォルトの名無しさん
08/02/12 21:33:47
>>364
精度がいらなくて短いウェイト?
つSwitchToThread()

372:デフォルトの名無しさん
08/02/12 21:40:21
>>363
ランタイムは勝手にインスコされた気がするが。

373:デフォルトの名無しさん
08/02/12 22:18:03
>>368
ゼロで初期化したら、”できました!!”
カラムは4本です。だけど、不思議です。
ありがとうございました。!!!!

374:デフォルトの名無しさん
08/02/12 23:18:37
>>364
Sleep(0);

375:デフォルトの名無しさん
08/02/12 23:39:45
SetTimerのタイムアウト値って動的に変えるにはどうすればいいの?
UINT型でキャストした変数じゃむりですた

376:デフォルトの名無しさん
08/02/13 00:02:33
ウィンドウズのシステムの休止や終了に関する質問です。
システムの終了時を捉えるには、WM_ENDSESSION メッセージに対応すればいいと思うんですが、
ハイバネーションモードに入るのを捉えるにはどうしたらいいでしょうか
タイマーでプログラムが生きてるかどうか確認する方法しか思いつかないです。
(定期的に時間差をとることで、復帰後にシステムが休止状態にあった時間を調べるという泥臭い方法くらい)

377:デフォルトの名無しさん
08/02/13 00:03:33
>>375
普通に最初に指定したタイマーIDと同じIDを指定して、新しい時間を設定すればOKだと思いますが

378:デフォルトの名無しさん
08/02/13 00:33:28
>>361
オーナードローを使えと言いたいところだが…

379:デフォルトの名無しさん
08/02/13 00:50:41
>>361
BS_RADIOBUTTON,BS_CHECKBOX,BS_AUTORADIOBUTTON,BS_AUTOCHECKBOX
のいずれかとBS_PUSHLIKEを組み合わせればトグル動作するけど
どうだろう?

380:デフォルトの名無しさん
08/02/13 00:54:37
>>376
WM_POWERBROADCASTとか

381:デフォルトの名無しさん
08/02/13 01:46:07
人材管理は技術のないやつの逃げ道ですか

382:デフォルトの名無しさん
08/02/13 02:24:07
他人を使うことができる人間は、1日に24時間以上の時間を使うことができるのです
が、ム板にはこういうレスと人は不要です

383:デフォルトの名無しさん
08/02/13 05:52:26
これひょっとしたらAPI関係ないかもしれないんですけど、
スレッドの開始関数に情報を渡すときってどうすればいいんですか?グローバル変数?

384:デフォルトの名無しさん
08/02/13 07:21:02
>>383
void*の引数があるから、それで何とかしろ。
素人にはお勧めしない方法だが、下のような方法で組むことがあるな。
渡した内容をきちんと受け取るまで待っている所が重要。

static foo_data {
 volatile int flag;
 int data1;
}

DWORD ThreadProc (LPVOID lpParam) {
struct foo_data param = *(struct foo_data *)lpParam;
((struct foo_data *)lpParam)->flag = 1;
...
}

HANDLE ThreadStartProc(int data1) {
struct foo_data param = { 0, data1 };
HANDLE hThread;
if ( (hThread = CreateThread(NULL, 0, ThreadProc, ¶m, ...)) != NULL ) {
while ( !param.data1 ) Sleep(100);
}
return hThread;
}

385:デフォルトの名無しさん
08/02/13 08:44:44
SleepにINFINITE渡しても49.7日後に起きないよね?

386:デフォルトの名無しさん
08/02/13 09:17:35
アクティブウィンドウとフォアグラウンドウィンドウとフォーカスの違いについて教えてください。

387:デフォルトの名無しさん
08/02/13 09:47:16
フォーカスは別物。正しくはキーボードフォーカスって言えばなんだかわかるよな?

388:383
08/02/13 16:34:53
>>384
すみません自己解決しました
グローバル変数とクリティカルセクションを併用すればいいみたいです

void *の引数はWindowsで使用する的なことが書いてあったので避けていたのですが、その方法でも出来るんですね
蛇足だけど、1行目のstaticってのはきっとstructのことですよね

389:デフォルトの名無しさん
08/02/13 17:22:10
普通にnewなりmallocなりして渡せばいいのに

390:デフォルトの名無しさん
08/02/13 17:42:42
素人にはお勧めしないとか言ってるくせに>>384のコードが素人丸出しな件について

391:デフォルトの名無しさん
08/02/13 17:51:09
こっちの方が問題のような
-while ( !param.data1 ) Sleep(100);
+while ( !param.flag ) Sleep(100);

392:デフォルトの名無しさん
08/02/13 19:29:25
>>384>>388>>391
そういう待ち合わせにはイベントを使う。
クリティカルセクションとフラグじゃItaniumでうまく動かないし、
一回空振りしただけで無駄に 100msec も待ってしまう。

それからデータの受け渡しだけなら、new した構造体のポインタを渡して
スレッド側で不要になったら解放すれば、そもそも待ち合わせる必要もない。

393:デフォルトの名無しさん
08/02/13 19:40:22
>>379
まさにそれでした。まさか普通のボタンではないとは。
ありがとうございました。

394:384
08/02/13 22:04:32
確かに色々間違い杉だった。朝っぱらから書き込むもんじゃない。orz
メモリバリアは完全に忘れてた。Interlock系API使わなきゃダメだな。
でもクリティカルセクションが駄目な理由が良く判らん。何で?
まあ、Cで解放とか面倒なことをせずに済むように考えて書いたコードだから勘弁。

395:383
08/02/13 23:00:55
>>392
イベントですか・・・調べてみます

396:392
08/02/13 23:09:16
>>394
>でもクリティカルセクションが駄目な理由が良く判らん。何で?

漏れの眼か頭が悪くて、転記していながら見落としていたからw

397:386
08/02/13 23:43:26
>>387
どうもです。フォーカスはキー入力を受け付けるということで良いのですが、
フォアグラウンドとアクティブウィンドウはどう違うのでしょうか?
SetForegroundWindow() の説明では「アクティブウィンドウにしてフォーカスをセットする」
と記述されてますが、アクティブウィンドウとはタイトルバーの色が変わっているウィンドウのことでしょうか?

398:デフォルトの名無しさん
08/02/14 00:13:51
WinAPI勉強し始めてからCPUの凄さに驚かされっぱなしです
CUIの時は実感なかったけどこんな複雑な計算が一瞬で行われてるなんて…
人はなんて恐ろしいものを作ってしまったんだ

399:デフォルトの名無しさん
08/02/14 00:26:01
なんとなく宇宙ヤバイ思い出した

400:デフォルトの名無しさん
08/02/14 00:43:05
ヤバイ。CPUヤバイ。まじでヤバイよ、マジヤバイ。
CPUヤバイ。
まず速い。もう速いなんてもんじゃない。超速い。
速いとかっても
「リニアモータカーくらい?」
とか、もう、そういうレベルじゃない。
何しろギガ。スゲェ!なんか単位とか丸められてるの。何キロとか何万とかを超越してる。10億倍だし超速い。
しかもさらに速くなってるらしい。ヤバイよ、加速だよ。
だって普通は時間とか加速しないじゃん。だって寝てられる時間がだんだん短くなったら困るじゃん。5分しか寝られないとか困るっしょ。
朝日が出て、先月は沈むまで16時間だったのに、今日は2時間とか泣くっしょ。
だから時間とか加速しない。話のわかるヤツだ。
けどCPUはヤバイ。そんなの気にしない。加速しまくり。最も初期から考えると10億倍とかよくわかんないくらい速い。ヤバすぎ。
ギガって言ったけど、もしかしたらテラかもしんない。でもテラって事にすると
「じゃあ、テラの次ってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
あと超熱い。約333ケルビン。摂氏で言うと60℃。ヤバイ。熱すぎ。生卵が温泉卵になっちゃう。怖い。
それに超高集積。超キツキツ。それに超高い。10億万円とか平気で出てくる。億万円て。小学生でも言わねぇよ、最近。
なんつってもCPUは計算力が凄い。WinAPIとか平気だし。
うちらなんてプログラムとかたかだかエクセルマクロで出てきただけで上手く扱えないから使わなかったり、
足し算くらいにしか使わなかったり、出来る人にやって貰ったりするのに、CPUは全然平気。WinAPIを機械語のまま扱ってる。凄い。ヤバイ。
とにかく貴様ら、CPUのヤバさをもっと知るべきだと思います。
そんなヤバイCPUを作ってるAMDとか超偉い。もっとがんばれ。超がんばれ。

401:デフォルトの名無しさん
08/02/14 00:45:03
わざわざ作ったのか

402:デフォルトの名無しさん
08/02/14 00:47:24
>>400
ワロタw

403:デフォルトの名無しさん
08/02/14 00:50:15
すまん、つい・・・

404:デフォルトの名無しさん
08/02/14 00:53:42
>>400
くると思ったw

405:デフォルトの名無しさん
08/02/14 02:50:46
>>400
和んだwww

406:デフォルトの名無しさん
08/02/14 18:17:51
私はノートパソコンを使っているのですが、少し前にうっかりしてコカコーラをこぼしてしまいました。
慌てて逆さにしたり、ドライヤーで乾かしたりしたのですが、キーの入力がおかしくなってしまいました。
今はUSBキーボードを繋いでパソコンを使っているのですが、けっこうな頻度で押してないキーが押されている状態になります。
USBのキーボードを外していても起きるので、ノートのキーボードのほうからキーの入力が起きていると思われます。
コントロールパネルからドライバのアンインストールをしてみたのですが、再起動すると勝手にインストールされてしまいます。
なので、自作のプログラムでノートのキーボードからだけの入力をシャットアウトしたいのですが、APIで解決できますか?

407:デフォルトの名無しさん
08/02/14 18:20:50
ジュースの成分が残ってて短絡してるだけだからノートPCを分解してキーボードを水洗いすれば直るよ。

408:デフォルトの名無しさん
08/02/14 18:44:09
分解ですか・・・。
機械音痴なので元に戻せるかどうかが心配です・・・。
いざとなったらやってみたいと思います。

409:デフォルトの名無しさん
08/02/14 19:26:01
電源ボタンとキーボードが一体化されてないのなら
キーボードをコネクタのとこから外しちゃえ。

ThinkPadにコーラ飲ませたときは電源入れるときだけ繋いでたなあ。



410:デフォルトの名無しさん
08/02/14 20:11:23
チソコパッド

411:デフォルトの名無しさん
08/02/14 22:35:19
>>392
> それからデータの受け渡しだけなら、new した構造体のポインタを渡して
> スレッド側で不要になったら解放すれば、そもそも待ち合わせる必要もない。
横からだけど、そんなの気づかなかった。ずっとイベントで待ってた。トン

412:デフォルトの名無しさん
08/02/15 00:30:34
不特定のプロセスに対して自身の再起動を要求するコードを書いているのですが、
新プロセス起動→自身死亡 だと対象になるプロセスが多重起動を禁止していた場合に上手く動きません
今のところ 
新プロセスサスペンド起動→リモートスレッド作成(待機)→自身死亡→死亡をトリガにリモート待機解除→リジューム
ぐらいの方法しか思いつかないのですが、なにか良い方法ってないですか?

413:デフォルトの名無しさん
08/02/15 00:32:50
中継プロセス起動→自身死亡→新プロセス起動

414:デフォルトの名無しさん
08/02/15 00:51:29
> 不特定のプロセスに対して自身の再起動を要求するコード
これって可能なの?
メモ帳みたいに「保存しますか?」とか出るやつにはどう対応するの?

415:デフォルトの名無しさん
08/02/15 00:53:25
プロセスごと殺せばいいんじゃね

416:デフォルトの名無しさん
08/02/15 00:59:35
編集中のデータが保存されないだろw

417:デフォルトの名無しさん
08/02/15 01:03:18
>>416
想像力低下していませんか?
世の中のアプリ全てがエディタではないのですよ。

418:デフォルトの名無しさん
08/02/15 01:17:25
>406
素直に修理に出したほうがいいよ。糖分は予後不良の原因になるから。

419:デフォルトの名無しさん
08/02/15 01:44:08
>>417
お前頭悪いな
「不特定のプロセス」という事はプロセスを強制的に殺したらデータが飛ぶ物もあるだろう

420:デフォルトの名無しさん
08/02/15 01:48:37
>>419
寝ているんですか?
データが飛ばないものもあるってことに気付いてください。

421:デフォルトの名無しさん
08/02/15 01:49:33
煽り合い的なものは外でやってくれると助かります

422:デフォルトの名無しさん
08/02/15 02:09:04
419と420はなぜ対立しているのかわからない。
「プロセスを強制的に殺したら、データが飛ぶものもあれば飛ばないものもある」

423:デフォルトの名無しさん
08/02/15 02:12:29
「あるプロセスを強制的に再起動する」というのが要件で、
そのとき処理中のファイルは壊れる・消えるかも知れないけど
なんとかしる、ってのはたぶん要件に入ってないんだよ。

424:デフォルトの名無しさん
08/02/15 02:20:05
Windowsのコントロールパネルにあるタスクについての質問です
再起動時刻と実行ファイルを指定して、目覚ましのような機能を実装するにはどうしたらいいでしょう
このタスクというのはレジストリに記録するものなんでしょうか?
このあたりの取っ掛かりがドコにもなくて困ってます

425:デフォルトの名無しさん
08/02/15 02:27:29
>>424
よく知らんけどITaskSchedulerというのがあるぞ

426:デフォルトの名無しさん
08/02/15 02:31:21
NetScheduleJobAddでもええのんか?

427:デフォルトの名無しさん
08/02/15 04:35:35
>>425 >>426
おお トンクスです
ITaskSchedulerはc++じゃないとダメみたいですけど、やっぱcだけじゃ先細りかなぁ
ヘルプみながらやってみます。
こういう切っ掛けがもらえると、結構ありがたいです。
ありがとう

428:412
08/02/15 06:24:41
レスどうもです

413の方法がより良いですね(楽だし) 
DLLのみで実装しているので、コンポーネントが増えるのがちょっとなぁ
という感じだったのですが、どこの馬の骨とも知らんプロセスにスレッド作るのも信頼性が無いですね

で安全な自殺の問題に関しては>>423の通りです
赤の他人のプロセスの正しい終了方法ってのは無いと思っているので
終了に関しては「いいから死ねよww」的実装にする予定です

429:デフォルトの名無しさん
08/02/15 07:33:05
>>427
インターフェースはCでもきちんとアクセスできるよ。
ヘッダににもC用のマクロが生成されているはず。

430:デフォルトの名無しさん
08/02/15 13:26:47
>>428
怖いソフトだな

431:デフォルトの名無しさん
08/02/15 14:45:53
複数のウィンドウで別々の図形を表示する。
プログラムを作成しています。
URLリンク(www.gazoru.com)
URLリンク(www.gazoru.com)



最初は、別々に表示されるのですが、重なった場合
下のを上(アクティブ)にすると、一枚目と同じになって
しまいます。

○原因
○対処方法

をお教え下さると有り難いです。
ソースは、一応付けます。
Pass=1 
(win2000 vc6.0)
URLリンク(www11.axfc.net)

432:デフォルトの名無しさん
08/02/15 14:46:55
主要部分プログラム
case WM_PAINT:


   //1
hdc= BeginPaint( hWnd, &ps );
Rectangle(hdc, 100, 100, 400,400);
ReleaseDC(hWnd, hdc);
EndPaint( hWnd, &ps );


     //2
RECT rect;
GetClientRect( hWnd3,&rect );
hdc= BeginPaint( hWnd3, &ps );
Rectangle(hdc, 0, 0, 100,100);
ReleaseDC(hWnd3, hdc);
EndPaint( hWnd3, &ps );


//3
hdc= BeginPaint( hWnd5, &ps );
Rectangle(hdc, 50, 50, 200,200);
ReleaseDC(hWnd5, hdc);
EndPaint( hWnd5, &ps );



break;


433:デフォルトの名無しさん
08/02/15 14:47:16
case WM_SIZE:



//2
hdc= BeginPaint( hWnd3, &ps );
Rectangle(hdc, 0, 0, 100,100);
ReleaseDC(hWnd3, hdc);
EndPaint( hWnd3, &ps );


//3
hdc= BeginPaint( hWnd5, &ps );
Rectangle(hdc, 50, 50, 200,200);
ReleaseDC(hWnd5, hdc);
EndPaint( hWnd5, &ps );


434:デフォルトの名無しさん
08/02/15 14:57:56
>>431
現象がよくわからん、2008でやっても再現しないみたい。
まあそれはおいといて、WM_PAINT以外でBeginPaintは使うな。
そこで書きたいならInvalidateでPAINTにまかすか、
GetDCで自分でDCもってこい

435:デフォルトの名無しさん
08/02/15 15:05:36
ってソース見るとむちゃくちゃやっとるな。
WM_PAINTの仕組みとか、ウィンドウプロシージャの動作とか
知ることはいっぱいありそうだけど、いったいどれを参考にしたのこれ?

436:デフォルトの名無しさん
08/02/15 15:58:10
VC2008Expressをインストールしようと思っているのですが、これには前もってWindowsSDKをインストールしておいたほうがよいのでしょうか。
2005と違って2008は、最初からPlatformSDKが付いているようなので、WindowsSDKは必要ないように思っているのですが、どうなのでしょうか。

437:デフォルトの名無しさん
08/02/15 16:04:41
>>436
.h ファイルや .lib ファイルを参照したり、取り込むよう指定が不要なら
要らないんじゃないか。スペルがあやしいが、dialog や listbox ctrl など
を使おうとすると、cmnctl32.lib とか要るだろう。
自分は dsound.h, dsound.lib も使うんで DirectX も入れたよ。

438:デフォルトの名無しさん
08/02/15 16:38:06
WindowsSDK6.1落としてきたんだが、6.0には付いてたコンパイラが入ってない?
セットアップのコンポーネント一覧でグレーアウトしていてチェックできない・・・

それともVS2008が入ってると自動で弾かれるのか?(2008Proが入ってる)
2005の時と同じくソース解析対応コンパイラに差し替える裏技が使えると期待したんだが。

439:デフォルトの名無しさん
08/02/15 17:00:12
>>431
>>435も言ってるけど、全体的にむちゃくちゃ。
基本から勉強し直した方がいいと思う。

とりあえず、複数のウィンドウで同じプロシージャを共有するのなら、
メッセージ受け取り時に、それを区別しないと。
URLリンク(www11.axfc.net)
Pass:1

440:デフォルトの名無しさん
08/02/15 17:01:21
質問です。
ゲームのチートツールを作るAPIって何ですか?
猫飯みたいに今実行してるプロセスのメモリを見れて
いじれるものをつくりたいんですが。
つまり実行中のほかのプロセスのメモリを書き換えるAPIとかって無いですか?

441:デフォルトの名無しさん
08/02/15 17:11:24
WriteProcessMemory

442:デフォルトの名無しさん
08/02/15 17:35:57
色々と調べて分かったのですが、WindowsSDKというのは、PlatformSDKと.NETFrameworkを一緒にまとめたもののようです。
ということは、VCだけを使う場合であれば、.NETFrameworkは不要ということで、
WindowsSDKをインストールする必要はないように思えるのですが、実際どうなのでしょうか。
一番気になっているのは、VC2008に付属するPlatformSDKが、
APIを使ったWinプログラムに完全に対応しているかどうかです。
437の方が言うように、comctl32.libが抜けていたりしたら困るところです。

443:デフォルトの名無しさん
08/02/15 17:41:25
それくらいの基本的なものは揃っているから大丈夫。
ヘッダ・インポートライブラリに関してはVC++付属ので困ってから、
入れることを考えても遅くない。

だから、入れるとしたら、Windows SDKのツールやドキュメントが欲しいとき。


444:デフォルトの名無しさん
08/02/15 17:49:23
なるほど。分かりました。
取りあえず、2008をインストールして、何が不足しているかを探ってみます。

445:デフォルトの名無しさん
08/02/15 18:03:59
>>400

「じゃあ、テラの次ってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。

ネタとはいえ、どんだけ教養ないんだよとオモタ

446:デフォルトの名無しさん
08/02/15 18:20:19
テラの次と言えばハカだろjk

447:デフォルトの名無しさん
08/02/15 18:36:24
自分が知ってるとこだけつっこむってのは、それ以外は知らないということでいいのか?

448:デフォルトの名無しさん
08/02/15 18:41:30
>>441
ありがとー☆
さっそくつくってみる

449:デフォルトの名無しさん
08/02/15 19:28:57
>>448
がんばれ 超頑張れ
DirectXとかゲームPGもいいけどそっちの世界も面白いぞ

450:デフォルトの名無しさん
08/02/15 20:59:45
>>446
テラって葬式だけやってるわけじゃないぞ

451:デフォルトの名無しさん
08/02/15 22:20:21
エキスプレスエディションは、コンソールアポリ作れるようなヘダーやリブラリーしか入って無くて、
ウィンドーズ.hとか、コモンコントール.hとかはウィンドーズSDKに入ってるから、
別途インストロールしないといけないと思ってたが、違ったのか。

つか、ウィンドーズSDKのコンパイラーいれないと、エキスプレスエディションだけじゃ、
RC.Exeがないから、リソースがコンパイールできませ〜ん、ってエキスプレスの妖精さんに言われたんだが。

452:デフォルトの名無しさん
08/02/15 22:22:26
そういや神社って葬式しないのかな?
皇室の葬儀もよく判らんし

453:デフォルトの名無しさん
08/02/15 22:31:01
>>451
VC++ 2008はWindows SDKのサブセットが入っている。

454:デフォルトの名無しさん
08/02/15 22:34:56
神域は穢れを嫌うから神社で葬式はしないだろ
神格化していた頃ならいざ知らず

455:デフォルトの名無しさん
08/02/15 23:06:29
DT_CALCRECTでItaricの立ったフォントを計算して描くと右端が切れます。
仕様ですか?

456:デフォルトの名無しさん
08/02/15 23:18:08
サクラエディタや寺パッドとかって標準のテキストボックスじゃないよね?
だとしたらDrawTextとかで自力で書いてるの?

457:デフォルトの名無しさん
08/02/15 23:23:20
サクラエディタはソース公開されてるはずだから見てみれば?

458:デフォルトの名無しさん
08/02/15 23:23:53
テキストエディタの実装技術っつたらひとつの研究分野ですがな

459:デフォルトの名無しさん
08/02/15 23:36:36
VC++ 2005、WinXPで開発しています。
unicodeアプリです。

ある文字が全角文字か、半角文字かを判定したいと考えています。
どのようなAPIがあるでしょうか、よろしくお願いします。

460:デフォルトの名無しさん
08/02/15 23:39:14
普通にデータの文字コードを見ろよ

461:デフォルトの名無しさん
08/02/15 23:47:41
U+00C0〜辺りも半角って言うの?

462:デフォルトの名無しさん
08/02/15 23:58:05
ユニコードコンソーシアムがUnicode文字の属性として全角・半角などを決めている。

それとどういう関係かは知らないけど、
Windows APIでは、GetStringTypeExのCtype 3で、全角・半角を取得できる。

463:デフォルトの名無しさん
08/02/16 00:48:44
URLリンク(wisdom.sakura.ne.jp)
↑のサイト見ながらWinAPI勉強し始めたばかりの者ですが
コマンドライン引数の項に乗っている一番最初のサンプルプログラムをコンパイルしてみたところ
PSTRとLPCWSTRの型に互換性がないと警告され、データファイルを実行ファイルにD&Dすると文字化けしたパスが表示されました

その前のメッセージボックスの項で紹介されていた引数の型と違うからおかしいとは思っていたのですが・・・
一応、型変換なども試してみたのですが表示されるのはいつも文字化けしたファイルのパスです
なんとか文字化けさせずにD&Dしたファイルのパスをメッセージボックスに表示させたいのですがどうしたらいいでしょうか?



464:デフォルトの名無しさん
08/02/16 01:00:52
ユニコードについてと、Windows & VCでのユニコード文字の扱い、
プログラム上での表記について調べるがよい。

とりあえず、PSTR はchar型へのポインタ、LPCWSTR はwchar_t型へのポインタのハズ。
別ものだよ。

ただ、そのページの例にも問題があるなw

465:デフォルトの名無しさん
08/02/16 01:04:48
>>463
環境は?
VisualStudio2005からはUNICODE文字セット使用がデフォルトになってるからな
マルチバイト文字セット使用にするか、ソースをUNICODEにあわせるかどっちかで

466:デフォルトの名無しさん
08/02/16 01:06:28
>>464
ありがとうございます!
早速ユニコード文字について調べてきます

467:デフォルトの名無しさん
08/02/16 01:09:58
>>465
VC++2005EEです
・・・っということはやっぱりユニコードですか

GUI作成に至るまでに覚えることは多そうだ・・・・・

468:デフォルトの名無しさん
08/02/16 01:26:39
>>429
方法がさっぱりわかんねーです(涙涙涙涙涙涙涙涙涙涙涙涙;;;;;;


469:デフォルトの名無しさん
08/02/16 01:39:40
>>463
<tchar.h>をインクルードして、
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PTSTR pCmdLine, int nCmdShow)
とすればいい。

470:デフォルトの名無しさん
08/02/16 01:59:01
Lunaでグループボックス作ったんだけど文字の背景色が変だ
どうやったら直るか誰か教えてorz

471:デフォルトの名無しさん
08/02/16 02:05:09
>>468
IXXX->lpVtbl->Func()
って感じで書く。

ヘッダ見たほうが早いよ。
C用に下記みたいなマクロが用意されているし。
#define ITaskScheduler_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )


472:デフォルトの名無しさん
08/02/16 11:04:46


473:デフォルトの名無しさん
08/02/16 12:17:13
URLリンク(www.asahi-net.or.jp)
特別分かりやすいわけではないと思っているけど、Cでやるサンプルがある。

474:デフォルトの名無しさん
08/02/16 14:58:18
Kitty on your lapてなに?

475:デフォルトの名無しさん
08/02/16 15:01:51
hello worldと同じ

476:デフォルトの名無しさん
08/02/16 16:11:07
膝の上の子猫

477:デフォルトの名無しさん
08/02/16 16:11:39
GlobalFreeで何故かエラーがでてしまいます。
書いてあった関数コメントアウトして確保と開放の処理だけにしてみたのにやっぱりエラー…
何故でしょうか?

問題の部分のソースとエラー

unsigned long long int MojiCount=0;
static HGLOBAL hMem;
char *MojiBuf;

MojiCount=Edit_GetTextLength(hEdit);
hMem=GlobalAlloc(GHND,sizeof(char)*MojiCount+2);
if(hMem==NULL)
  MessageBox(hWnd,"メモリが確保できませんでした","メモリエラー",MB_OK);
MojiBuf=(char *)GlobalLock(hMem);
MojiBuf[MojiCount+2]='\0';
Edit_GetText(hEdit,MojiBuf,MojiCount+1);
//本当はここで関数に*MojiBufを渡しててそれが原因かと思って、コメントアウトしてみたけどやっぱりエラーでる
GlobalUnlock(hMem);
GlobalFree(hMem);//←ここにブレイクポイント設置、ステップインするとエラー

Windows によって ○○.exe でブレークポイントが発生しました。
ヒープが壊れていることが原因として考えられます。○○.exe または読み込まれた DLL にバグがあります。
あるいは、○○.exe がフォーカスを持っているときに、ユーザーが F12 キーを押したことが原因として考えられます。
可能であれば、出力ウィンドウに詳細な診断情報が表示されます。
HEAP[○○.exe]: Heap block at 0023EF50 modified at 0023EF5A past requested size of 2

478:デフォルトの名無しさん
08/02/16 16:13:00
> ヒープが壊れていることが原因として考えられます。
> Heap block at 0023EF50 modified at 0023EF5A past requested size of 2

479:デフォルトの名無しさん
08/02/16 16:19:16
C言語の基礎から勉強するスレなのか?

480:デフォルトの名無しさん
08/02/16 16:26:07
MojiBuf[MojiCount+2]='\0';

481:デフォルトの名無しさん
08/02/16 16:43:58
>>480
ありがとうございます。MojiBuf[MojiCount+1]='\0'だったw
弄ってたらいつの間にかエラーでるようになってしまったと思ってたらEdit_GetTextLength
で返ってくるのが文字数-1だと気づいて+2に変えたとき間違えて変えてしまってたみたい
しかも精神衛生的に'\0'入れるのはEdit_GetTextの後にやった方がいいよね
こんなのでずっと悩んでたなんて…

482:デフォルトの名無しさん
08/02/16 17:19:57
>>481
というか、これでいいんじゃないのか?
MojiCount=Edit_GetTextLength(hEdit)+1;
hMem=GlobalAlloc(GHND,sizeof(char)*MojiCount);
MojiBuf=(char *)GlobalLock(hMem);
Edit_GetText(hEdit,MojiBuf,MojiCount);
GlobalUnlock(hMem);
GlobalFree(hMem);

483:デフォルトの名無しさん
08/02/16 17:53:50
>>474
膝の上の同居人、っつーADVだったような。

というか、たるとといいミュウミュウといい、あのサイトの中の人はネコミミ属性のようだ。
普通の言語のテク紹介サイトだと思ってたら、何の前触れもなくたるととか出てきたから吹いたw

484:デフォルトの名無しさん
08/02/16 18:34:39
MSDN死んでる?

485:デフォルトの名無しさん
08/02/16 18:34:58
キャラが一世代古いな

486:デフォルトの名無しさん
08/02/16 18:57:20
>>483そうそう!何の前触れもなくいきなりって、ネットで勉強してるとしょっちゅうあるよなww
俺は、それを流すんだが、その状況が可笑しくなってきちゃうんだがw
「あれー・・・、今なんか・・・。いや、勉強勉強!」っつってww

487:デフォルトの名無しさん
08/02/16 19:33:47
MessageBoxで処理をぶった切りまくったらポインタが大変なことになった。

488:デフォルトの名無しさん
08/02/16 19:53:11
ビットマップを表示するところとか、もうここでは書きたくない。

489:デフォルトの名無しさん
08/02/16 19:55:42
>>486
日本語でおk

490:デフォルトの名無しさん
08/02/16 20:28:09
(´・ω・`)しらんがな

491:デフォルトの名無しさん
08/02/16 21:43:45
> 俺は、それを流すんだが、その状況が可笑しくなってきちゃうんだがw
誰かこれを日本語に翻訳してくれ

492:459
08/02/16 21:46:57
>>462
ありがとうございます。それを使ってみることにします。

493:431
08/02/17 00:23:27
>>434
>>435
>>439
有難うございます。
また来ます。

494:デフォルトの名無しさん
08/02/17 00:47:01
>>491
俺は、
「kitty on your lap」
この言葉を見てもいつも気にせずスルーして次の文にいくんだが、
毎回やるこの自分の行動に可笑しくなってきちゃうんだww

495:デフォルトの名無しさん
08/02/17 02:09:22
MSTask.h にこういう文があるんだけど、interfaceキーワードって何ですか?
K&Rにも載ってないです。

interface ITaskScheduler
{
CONST_VTBL struct ITaskSchedulerVtbl *lpVtbl;
};

496:デフォルトの名無しさん
08/02/17 02:20:32
#define interface struct

497:デフォルトの名無しさん
08/02/17 02:50:52
素直にC++使ったほうが楽だよ

498:デフォルトの名無しさん
08/02/17 02:54:29
C++しらねーんだYO!

499:デフォルトの名無しさん
08/02/17 03:11:26
>>498
( ・∀・)人(・∀・ )ナカーマ!!

500:デフォルトの名無しさん
08/02/17 03:38:29
素直にC++習得したほうが楽だよ

501:デフォルトの名無しさん
08/02/17 04:34:13
つーかCでCOMとか在り得ねー
lpVtblとか第一引数とか&IID_〜とかめんどいしC++でスマートポインタ使わないとやってられん

502:デフォルトの名無しさん
08/02/17 04:49:19
C で COM なんて C++ 勉強するより難しいと思う。

503:デフォルトの名無しさん
08/02/17 05:19:02
COMが世に出た当初はC全盛だったけどな

504:デフォルトの名無しさん
08/02/17 05:36:47
そしてCOMの世界で死ぬ。小一時間死ぬ。手始めにアパートメントモデルで死ぬ。

505:デフォルトの名無しさん
08/02/17 05:38:21
COMって1997年か。C全盛だったか?

506:デフォルトの名無しさん
08/02/17 05:41:48
COM で結局オブジェクト指向を勉強するくらいなら
C++ から入った方がマシ。

507:デフォルトの名無しさん
08/02/17 10:21:40
>>505
COMという言葉を前面に打ち出すようになったのはその頃からかもしれないけど、
技術的にはWindows 3.1までには出たはずのOLE2から始まったといっていいはず。。

508:デフォルトの名無しさん
08/02/17 12:41:31
ハンドルって何ですか?

509:デフォルトの名無しさん
08/02/17 12:43:26
FILE*のような、よくわからない何か。

510:デフォルトの名無しさん
08/02/17 12:48:13
何らかの操作を行うときに必用になる識別子

511:デフォルトの名無しさん
08/02/17 13:12:06
char s[100];
sprintf(s,"%d",GetLastError());
MessageBox(NULL, s , NULL , MB_OK );

GetLastErrorを確認するには上のような書き方ですか?

512:デフォルトの名無しさん
08/02/17 13:14:22
それもいいけど、FormatMessageを使うと番号に対応するメッセージが得られる。

513:デフォルトの名無しさん
08/02/17 13:38:24
ハンドル=ポインタだと思っている

514:デフォルトの名無しさん
08/02/17 14:22:15
>>511
wsprintf使え

515:デフォルトの名無しさん
08/02/17 14:23:25
だったらcharもTCHARへ変えないと。

516:デフォルトの名無しさん
08/02/17 14:33:37
>>515
wsprintfってchar*使えなかったの?

517:デフォルトの名無しさん
08/02/17 14:42:48
つかえるのはwsprintfA

518:デフォルトの名無しさん
08/02/17 14:58:53
このスレでAとかWとかそんなレベルの話はやめようぜ

519:デフォルトの名無しさん
08/02/17 15:49:38
>>517
へぇ・・・
俺BCCだから関係ないや

520:デフォルトの名無しさん
08/02/17 15:51:37
>>518
このスレだからやるんじゃないか
他所でやられるほうがウザい

521:デフォルトの名無しさん
08/02/17 15:56:37
>>518
大して難しい話でもないだろ
charだと一文字1バイト、TCHARだと一文字2バイトってだけの話じゃないか

522:デフォルトの名無しさん
08/02/17 16:05:25
>>519
BCCでも、Win32 APIを直接使うなら関係ある話だろ?

523:デフォルトの名無しさん
08/02/17 16:07:58
>>521
なにいってんだ?
TCHARは1バイトかもしんないぞ。

524:デフォルトの名無しさん
08/02/17 16:16:39
テーチャラは、チャラー型かヲチャラーテー型の切り替え用マクーロだろ

525:デフォルトの名無しさん
08/02/17 16:17:20
てーちゃらてーちゃら

526:デフォルトの名無しさん
08/02/17 16:23:40
ブチャラーテイに見えた

527:デフォルトの名無しさん
08/02/17 16:37:35
質問です。

タイトルバー以外のところをドラッグしてウィンドウを動かすために、WM_NCHITTEST で、
 return
  DefWindowProc() == HTCLOSE ? HTCLOSE :
  HTCAPTION;
ってやってるウィンドウで、ドラッグし終わったときを捉えたいのだけどどのイベントが飛んでくるのか判りません。
WM_LBUTTONUP と WM_NCLBUTTONUP かなーとか思って捕捉のためのイベントハンドラを作ったのだけど、
捕捉できず、Spy++ で何が飛んでくるのか確かめようと思ったらシステム全体が落ちてしまいます。
どなたか教えてください。

開発環境は VC2008EE + SDK + ATL/WTL で、VS2005proの include ディレクトリも include しています。

528:デフォルトの名無しさん
08/02/17 16:59:37
>>527
WM_MOVEじゃダメ?

529:デフォルトの名無しさん
08/02/17 18:06:57
CoCreateInstance関数がちゃんと動いてくれません><
どうしてか理由が分からないです。

error C2115: 'function' : 互換性のない型が含まれています。
warning C4024: 'CoCreateInstance' : の型が 1 の仮引数および実引数と異なります。
error C2115: 'function' : 互換性のない型が含まれています。
warning C4024: 'CoCreateInstance' : の型が 4 の仮引数および実引数と異なります。

となります。

#include <windows.h>
#include <mstask.h>

HRESULT hr
ITaskScheduler *pITS;

hr = CoCreateInstance(CLSID_CTaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskScheduler, (void **) &pITS);

どこかおかしいところがありますか?

530:デフォルトの名無しさん
08/02/17 18:07:36
CoCreateInstanceの前に

CoInitialize(NULL);

があります。忘れました><

531:デフォルトの名無しさん
08/02/17 18:08:13
WM_EXITSIZEMOVEとか?

532:デフォルトの名無しさん
08/02/17 18:08:50
>>529
CとC++の違い

533:デフォルトの名無しさん
08/02/17 18:12:48
>>529
まずは、REFCLSIDとREFIIDの定義確認。

534:デフォルトの名無しさん
08/02/17 18:19:00
>>529
CTaskScheuler 用のヘッダファイルインクルードして無いじゃん。

535:デフォルトの名無しさん
08/02/17 18:28:46
>>527
Spy++使わなくても自分のWndProcなんだから、どんなイベントが飛んでくるか分かるっしょ。
DebugConsoleに吐きまくれ。

536:デフォルトの名無しさん
08/02/17 18:59:34
拡張子をcppに変えればいいだけなのにね

537:デフォルトの名無しさん
08/02/17 20:51:08
ここは敢えて ->lpVtbl->

538:527
08/02/17 21:49:19
WM_EXITSIZEMOVE でいけましたー。ありがとうございました。

ところで、UINT uMsg の値から WM_〜 とかに変換してくれるライブラリとかありませんか?
変換がしんどかったのでw

539:デフォルトの名無しさん
08/02/17 21:59:55
変換も何もそのまんまだろ

540:デフォルトの名無しさん
08/02/17 22:03:55
あ、欲しいのは文字列です

541:デフォルトの名無しさん
08/02/17 22:05:53
WM_ のあるヘッダからテーブルを生成するプログラムを書いた気がする。

542:デフォルトの名無しさん
08/02/17 22:13:08
文字列にしたいってことでしょ

543:デフォルトの名無しさん
08/02/17 22:15:16
だから文字列テーブルを作るんだよ

544:デフォルトの名無しさん
08/02/17 22:37:50
ラップされて、電子レンジに入れられてしまった子猫の事かと思ってたんだが違ったのか・・・。

545:デフォルトの名無しさん
08/02/17 22:40:28
>>544
まだその話してたんかいw

546:デフォルトの名無しさん
08/02/17 23:36:41
VC++のデバッガならウォッチ式にuMsg,wmとか書いてWM_が表示できた気がする

547:デフォルトの名無しさん
08/02/18 00:16:11
>>546
試してみたらほんとだった。
素直に感謝します。

548:デフォルトの名無しさん
08/02/18 00:21:23
FindItem関連で質問があります。
仮想リストビューである文字列と文字列が一致した場合、アイテムを削除する処理を作ろうと思ってます。

lvfi.flags = LVFI_STRING;
lvfi.psz = "ab";

int nItem = ListView_FindItem(cListView.hListReserve, -1, &lvfi);
ListView_DeleteItem(cListView.hListReserve, nItem);

現在、一致する場合もしない場合もnItemには0しか戻ってきません。
仮想リストビューでは、ListView_FindItemは使えないのでしょうか?
回答よろしくお願いします。

環境はVC.NET + SDKです

549:デフォルトの名無しさん
08/02/18 00:26:01
コントロール側がデータを持っていたら、そもそも仮想の意味がないだろ。

550:デフォルトの名無しさん
08/02/18 01:33:20
アプリケーションを作成したのですが、
CPU使用率が高いです Orz
どこが悪いのでしょうか?

551:デフォルトの名無しさん
08/02/18 01:46:25
お前の脳みそ

552:デフォルトの名無しさん
08/02/18 07:49:23
>>550
ループしてる場所にSleepを入れる

553:デフォルトの名無しさん
08/02/18 11:07:41
なあなあ
CreateWindowExした直後にSetClipboardViewerするとウィンドウ無効で失敗するんだけどなんで?
もちろんCreateWindowExは成功してる

ちなみに
CreateWindowExとSetClipboardViewerの間にSendMessage(hWnd,WM_NULL,0,0);挟んだら動いた

MSDNにも何も書いてないんだけど…
URLリンク(msdn2.microsoft.com)

554:デフォルトの名無しさん
08/02/18 11:11:00
>>553
UpdateWindowは?

555:デフォルトの名無しさん
08/02/18 12:23:23
WM_CREATEくるまで駄目とか。


556:デフォルトの名無しさん
08/02/18 13:29:54
いや、CreateWindowExから戻ったときは、
既にWM_CREATEからの応答も帰ってきた後。

557:デフォルトの名無しさん
08/02/18 13:36:57
メッセージループまで行ってないうちにってことか。
SendMessage挟んだら動いたのはたまたまかもなあ

558:デフォルトの名無しさん
08/02/18 13:49:16
>>555
CreateWindowEx→WindowProc(WM_CREATE)→SetClipboardViewerになるからそれはない
WM_CREATE内でSetClipboardViewer呼んでるってんなら話は別だが

559:デフォルトの名無しさん
08/02/18 15:19:47
WM_CHANGECBCHAINやWM_DRAWCLIPBOARDを正しく処理してないんじゃないの?

ここ見る限りだとSetClipboardViewerの返値にSendMessageしてるみたいだけど。
URLリンク(msdn2.microsoft.com)

560:デフォルトの名無しさん
08/02/18 15:23:15
質問です
TextOut等で描画する文字の下にドロップシャドウを描画したいのですが、何か良い方法はありますか?
やはり、自分でシャドウを作らないといけないでしょうか?

宜しくお願いします

561:デフォルトの名無しさん
08/02/18 15:25:26
数ドットほど右下にTextOutで灰色か黒の文字を描いておけば影に見えないこともない

562:デフォルトの名無しさん
08/02/18 15:27:47
DrawShadowText

563:デフォルトの名無しさん
08/02/18 16:12:50
VistaならDrawThemeTextにあった気がする

564:デフォルトの名無しさん
08/02/18 16:48:01
スレ違いかな?
縁取り文字の一番気持ちいい実装ってどんなの?
8方向に1pxずつずらした白文字、最後にまんなかに黒文字ってやってるんだけど
ちょっと馬鹿っぽい。。

565:デフォルトの名無しさん
08/02/18 17:21:39
>>561
>>562
>>563
それらを参考にもう一度調べてみますね
情報ありがとうございました

566:デフォルトの名無しさん
08/02/18 17:35:47
>>564
BeginPath→DrawText→EndPath→PathToRegion→FrameRgn

567:デフォルトの名無しさん
08/02/18 20:01:37
PathとかRegionだと12ptくらいの小さい文字はつぶれるな

568:デフォルトの名無しさん
08/02/18 21:44:41
>>564
あらかじめ表示させたいフォントをビットマプとして保存しといて
BitBlt・・
あんま変なAPI使うと古いOSで動かなかったりするんで。

569:デフォルトの名無しさん
08/02/18 21:54:14
便乗で質問だけど、このスレ的にはどのOSから切り捨てるのが主流?

さすがにXPより前はサポートしません
とかはないだろうけど

9x系とNT4.0はもういいかなとか個人的には思ってる

570:デフォルトの名無しさん
08/02/18 21:57:47
Vista x64より前

571:デフォルトの名無しさん
08/02/18 21:58:28
9x捨てるならウニコードにしたほうがパフォーマンスはよくなるのかな?

572:デフォルトの名無しさん
08/02/18 22:02:41
2000から切り捨てるとかなり楽

573:デフォルトの名無しさん
08/02/18 22:29:43
俺は2000以降をサポるようにしてる。WINVERの指定も0x0500。

なぜなら、俺の環境では2000が現役だから・・・

574:デフォルトの名無しさん
08/02/18 22:30:54
サボると読んで混乱するおいら。

575:デフォルトの名無しさん
08/02/18 22:33:44
古いWindowsでも動かしたいと思うときで、
IE4.01以上など各種アップデートを施したWindows 95/NT4ということにしている。

576:デフォルトの名無しさん
08/02/18 22:40:13
2000より前なんて俺の中では存在しない
98以前はネットに繋ぐなカス

577:デフォルトの名無しさん
08/02/18 22:42:10
コンパイラはまさかVC6?

578:デフォルトの名無しさん
08/02/18 22:53:08
>>571
実測して差が出るかどうかはわからないけど、理屈の上では変換のコストがなくなるので若干良くなる

wchar_tにするとboostがイミフなエラー出したりすることもあるけど。。。


579:デフォルトの名無しさん
08/02/18 23:39:35
W<->A変換速度についてはダンゴさんの意見を聞きたいところだ

580:デフォルトの名無しさん
08/02/19 02:52:14
>>577
VC6現役で使ってるが何か?

581:デフォルトの名無しさん
08/02/19 02:54:44
VS2005 で素直にダイアログのフォントを使っています。
9x は切り捨て

582:デフォルトの名無しさん
08/02/19 03:01:39
暮れに突如DLLラッパー書きたくなって2008Express落としたが重すぎ。
VC6探し出してインスコした。
これアカデミック版なんだよなー、歳は食いたくねぇ。

583:デフォルトの名無しさん
08/02/19 09:11:20
URLリンク(msdn2.microsoft.com)
しばらく前から検索すると503になるんだが、俺だけか?
左のツリーからは目的のページには行けるんだが、検索できないと面倒でしかたない。

584:デフォルトの名無しさん
08/02/19 10:31:57
GetGlyphOutlineの使い方に関する質問です
URLリンク(www7a.biglobe.ne.jp)
ここのサイトのソースで
アンチエイリアスを施すフォントにFW_BOLDを指定すると、
このソースではlp[0] = (GetBValue(cr))で例外が発生して、
アプリケーションが落ちてしまいます
このソースに手を加えなければ正常に動く様です
どの辺りが悪いのでしょうか?

よろしくお願いします。

585:デフォルトの名無しさん
08/02/19 10:39:30
CreateFont(32, 0, 0, 0, 0,

CreateFont(32, 0, 0, 0, FW_BOLD,
にしたってこと?
落ちないけどなー

586:デフォルトの名無しさん
08/02/19 10:44:04
教えてください

GetDesktopWindowでハンドルとって
GetDCで デスクトップの画像 取得しているんですが

ログイン画面を取るときには たしかモニターの選択か
なにかしければならないんですよね?

昔何かで観て、必要になったんだけど
見つからない・・・・

よろしくお願いします


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4290日前に更新/212 KB
担当:undef