- 1 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 03:44:55 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- 75 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 00:55:58 ]
- なんとかできそうです。
ありがとうございました。
- 76 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 01:39:34 ]
- 対象アプリケーションを作った奴に文句言うのが正しい解決法だろう。
- 77 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 01:51:13 ]
- >>67
ジョブオブジェクト
- 78 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:00:59 ]
- 教えてください。とあるサイトで見たコードなんですが
DWORD WINAPI oreore(LPVOID p) { MSG msg; /* メッセージキューを作る。*/ PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE); SetEvent((HANDLE)p); while (GetMessage(&msg, NULL,0,0) > 0) { switch (msg.message) { case WM_SURE_TEST1: puts("WM_SURE_TEST1"); break; case WM_SURE_TEST2: puts("WM_SURE_TEST2"); break; case WM_SURE_TEST3: puts("WM_SURE_TEST3"); break; default: puts("理解できないメッセージです"); } } ExitThread(0); } このコードの最初のPeekMessageの必要性がよくわからないです。 そもそも必要なのでしょうか?
- 79 名前:78 mailto:sage [2007/03/23(金) 02:01:44 ]
- 因みにこれはCreateThreadで作られたスレッドです。
- 80 名前:デフォルトの名無しさん [2007/03/23(金) 02:06:13 ]
- >>77
日本語でおk
- 81 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:11:15 ]
- 職業物体
- 82 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:12:20 ]
- >>78
スレッドが作成された時点ではメッセージキューが作成されていない。 (メッセージキューはスレッド単位で存在するもの) PeekMessage等のAPIが初めて呼ばれたときに作成される。 詳しくはPostThreadMessageでググってくれ。
- 83 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:20:09 ]
- >>80
CreateJobObject & SetInformationJobObject # 日本語でおkと言われたのに英語になったw
- 84 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:22:26 ]
- >>83
肝心のパラメーターが判りません。 クラスに応じた構造体を渡すみたいですが 情報出てきません…
- 85 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:35:37 ]
- >>84
msdn2.microsoft.com/en-us/library/ms686216.aspx ぐぐったら一発で出てきたが。 こちらは日本語でおkとか言われてもリクエストには応えかねるのでよろしく あと最後にAssignProcessToJob
- 86 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 08:26:27 ]
- >>84
MSDN読めカス ググれカス
- 87 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 09:45:40 ]
- Richeditでキーワードに色を付けたいのです。
// 赤色に変更するためのCHARFORMAT CHARFORMAT cf; cf.cbSize = sizeof(cf); cf.dwMask = CFM_COLOR; cf.crTextColor = RGB(255, 0, 0); // 選択範囲を反転表示しないように設定 SendMessage(hwndEdit, EM_HIDESELECTION, TRUE, 0); for(/* begin〜end を Richedit 内のキーワードの位置に設定しながら繰り返す */){ SendMessage(hwndEdit, EM_SETSEL, (WPARAM)begin, (LPARAM)end); // ← ※ SendMessage(hwndEdit, EM_SETCHARFOTMAT, SCF_SELECTION, (LPARAM)&cf); } ↑のように処理すると、※の場所で、スクロールバーが連動して動いてしまいます。 スクロールバーをシンクロさせない方法はありませんか? もしくはキーワード部分を選択せずに色分けする方法はありませんか?
- 88 名前:デフォルトの名無しさん [2007/03/23(金) 10:36:42 ]
- すいません誘導できますた。
IsWindow(handle)みたいなプロセスIDかスレッドの生死を判断するものはあるんでしょうか?
- 89 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 10:55:33 ]
- ,、‐ " ̄:::゙:丶、
,r: ,' 3゙ :::::::/ハヽ:ヽ::::、:ヽ {::://:::::::// ヽ\ト、:::::::! ヾ l:::::::/ 丶 `ヾ ィ、:::| |;:r::| O` 'O ゙ハ| < ないない ヽハ :.:. :.: レ ´\ r‐--‐、,ノ r、 r、/ヾ ̄下ヘ ヽヾ 三 |:l1、_ヽ/__ .ィヽ \>ヽ/ |` } n_n| | ヘ lノ `'ソ l゚ω゚| | /´ /  ̄|. | \. ィ ___ | | | ノ l | | | | i:| |
- 90 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 10:59:10 ]
- HANDLEを引数にするAPIに無効なHANDLE渡すとAPIは失敗して、
そういう意味のエラーコードが設定されるからそれで判断するとか?
- 91 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 11:13:43 ]
- GetProcessVersionとかOpenProcessなどが使えそうだけど
Session境界を超えた場合の挙動とかわからないな
- 92 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 11:15:43 ]
- GetExitCodeProcess はどう?
- 93 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 12:29:40 ]
- プロセスを全部列挙してみるとか
- 94 名前:88 [2007/03/23(金) 12:34:45 ]
- >>89-92 皆さんありがとうございました。
>>91氏のGetProcessVersion() = 0 で死亡確認できました。 ありがとうございました。
- 95 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 14:06:22 ]
- ものすごい基本の質問なんですが
charとchar*やTCHARとTCHAR*のように 最後に*が付くのと付かないのではどう違うんですか?
- 96 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 14:14:08 ]
- ぬるぽ
- 97 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 14:18:29 ]
- 一応マジレスすると、*がつくのはポインタ型。全然違うもの。
詳しくはC言語のスレ行ってくれ、そっちなら真面目に答える(かもしれない)。
- 98 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 14:25:34 ]
- >>97
ありがとうございます。 ググってみて少し分かったような気がします。 スレ違い失礼しました。
- 99 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 16:33:31 ]
- >>95 和んだw
- 100 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 18:15:47 ]
- a*は黄門、aは体
- 101 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:51:33 ]
- >>94
プロセスIDが再利用されると生きてると誤判定する可能性があるぞ。 OpenProcessでハンドルを持っておいた方がいい (ハンドルが1つでもある限りプロセスIDは再利用されないことが保証される) 死亡確認はGetExitCodeProcessかWaitForSingleObject
- 102 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 20:05:21 ]
- >>95
俺ならTCHAR *じゃなくてLPTSTRだぜwwwwwwwwww
- 103 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 20:32:10 ]
- >>96
まだそうと決まってないのにw
- 104 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 00:28:07 ]
- 32APIはよく知らないんですが、24bitsのDIBって有効なんでしょうか?
#define WIDTH 100 #define HEIGHT 50 LPDWORD lpPixel; BITMAPINFO bmpInfo; : : lpPixel=(LPDWORD)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, WIDTH*HEIGHT*3 //Alpha保持しないから3でいいんだろうか ); : : //3bytesだから24でいいよね? bmpInfo.bmiHeader.biBitCount=24;
- 105 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 00:30:05 ]
- 1行辺りのバイト数を4の倍数に揃えないといけないとかなんとかあったはず。
- 106 名前:104 mailto:sage [2007/03/24(土) 00:31:22 ]
- >>105
それってファイルフォーマットじゃなくてDIBにもそういうルールがあるんですか?
- 107 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 00:36:33 ]
- うん
- 108 名前:104 mailto:sage [2007/03/24(土) 00:38:28 ]
- ググったら自己解決しました
- 109 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 00:39:03 ]
- BMPファイルはヘッダの後にDIBをそのまま並べただけなのだから、
ファイル上でそうなっているということはメモリ上でもそうなっているということ。
- 110 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 03:31:24 ]
- 質問です。ポップアップウィンドウを表示したいのですが
HWND hWnd; hWnd = CreateWindow(TEXT("STATIC"),NULL,WS_POPUP | WS_BORDER, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,hInst,NULL); ShowWindow(hWnd,SW_SHOW); としても何も表示されません。原因が分からず困っています。 間違いがあれば指摘して下さい。コンパイラはBCCです。
- 111 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 03:38:58 ]
- >>110
間違いを指摘してなんとかなるってレベルじゃねぇぞ! ・・・メッセージポンプ、メッセージループでググれ。
- 112 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 03:45:28 ]
- グーグってもしーかたない 迷わーずにすすめよ 行けばわかるのさ♪
- 113 名前:110 mailto:sage [2007/03/24(土) 04:20:22 ]
- 自己解決しました。
CW_USEDEFAULTを具体的な数値に置き換えると表示されました。(^_^;)
- 114 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 04:25:42 ]
- 解決してねぇぇぇぇぇぇ
- 115 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 04:35:55 ]
- おう
- 116 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 10:30:06 ]
- >>101 ありがとうございます。早速ハンドルを持ったままに変更しようと思います。
- 117 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 11:24:30 ]
- >>111
それはここに書いていないだけに違いない
- 118 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 12:55:13 ]
- 24bitDIBに4の倍数の縛りはなかったと思うぞ。
ただ1ピクセルの転送にWord、Byteそれぞれ1回づつ必要だからDoubleWord1回ですむ32bitのほうが扱い易いのは確か。 4の倍数は24bitDIB扱うライブラリの制限じゃ?(高速化のために4バイトづつ処理する関係上4の整数倍ピクセルじゃないと問題が出る)
- 119 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 13:06:41 ]
- 要はアライメントの問題って事?
- 120 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 13:09:24 ]
- Win32の非圧縮DIBでは、スキャンライン毎のDWORDアラインは必須。
あと、HeapAllocとか使うくらいならCreateDIBSectionの方が楽だな。
- 121 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 15:59:24 ]
- >>118
「1行辺りの」バイト数に4バイトアラインの制限がある。1ピクセルあたりではない
- 122 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 13:22:59 ]
- >>5
Update来ている Microsoft® Windows® Software Development Kit Update for Windows Vista™ www.microsoft.com/downloads/details.aspx?familyid=ff6467e6-5bba-4bf5-b562-9199be864d29&displaylang=en
- 123 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 14:32:52 ]
- >>122
今日寝る前に>>5をインストールしたばかりだというのに、 この仕打ちはあんまりだorz
- 124 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 02:10:40 ]
- Win32APIのコモンコントロールにデータグリッド(Excelの表みたいなやつ)
ってないんでしょうか?
- 125 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 02:14:21 ]
- つ[リストビュー]
- 126 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 02:15:08 ]
- >>124
リストビューコントロール(エクスプローラの右側のペインのヤツ)ぐらいしかない。
- 127 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 02:46:31 ]
- オーナードロー駆使しまくって無理やり似せたことがあるけど
なかなか死ねる
- 128 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 03:11:17 ]
- >>127
それ、壱からコントロールをフルスクラッチしたほうがまだ楽なんじゃないのか? 描画位地の調整が半端じゃなく大変だったろうに。
- 129 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 03:11:35 ]
- ActiveXコントロール
- 130 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 03:17:04 ]
- >>128
五時間くらいhDCと格闘してからそうしたorz
- 131 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 03:30:46 ]
- フルスクラッチでも挙動や見た目をコモンコントロールに似せようとするとどのみち大変なんじゃねえの
- 132 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 03:48:26 ]
- >>131
それはそうなんだが、コモンコントロールってWindowsのバージョンによって 微妙に挙動が異なったりするし、描画位置の調整が恐ろしく大変だから >>124 みたいなのはフルスクラッチしたほうが楽なんだよ。
- 133 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:20:57 ]
- そういや、NT3.51以前にListBoxを基底にしてListView作ったっけな
- 134 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:33:14 ]
- あるファイルを開いているプロセスの一覧を取得するアプリを
作りたいのですが、どのようなAPIを使えばよいでしょうか? ヒントになるようなことだけでもよろしくお願いします。
- 135 名前:124 mailto:sage [2007/03/26(月) 10:49:37 ]
- データグリッドをフルスクラッチってどどどどんな感じで作るんでしょうか。
- 136 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:51:27 ]
- どんなって、普通にウィンドウプロシージャ書いて、ウィンドウクラス登録して、ウィンドウ作るんだろ?
- 137 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:52:48 ]
- まず縦横に線を引くことからはじめるんだ
- 138 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:55:01 ]
- データ構造決めてからやればそんなに手間でもないけど
使う人が慣れてるやつとかけ離れてると使ってくれないかもな
- 139 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 11:00:55 ]
- オブジェクトの動作の一部だけを上書きするのがサブクラス化、
構築からウィンドウクラスの登録から全部最初から 書くのがフルスクラッチという解釈でいいんすか?
- 140 名前:124 mailto:sage [2007/03/26(月) 11:39:08 ]
- 自分で線引くってことは、もしかして、クリックされたセルの色反転させるのも
一々座標見て、「ここは上から2番目、左から3番目のセルだから、 座標x、y−s、tで描かれる長方形の色を今ある色と反転させる」とか やる必要あるんですかねッ!?行列のソートも自前!?
- 141 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 11:56:19 BE:122283779-2BP(222)]
- >>140
内部でこっそりListBoxとかを持っておくとか。
- 142 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 12:32:03 ]
- >>140
ListCtrlで足りない機能を列挙するところから始めたら?
- 143 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 12:32:41 ]
- >>140
だから自前描画は普通やらないの。
- 144 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 12:43:59 ]
- >>140
そうだよ、スクロールも考慮してな
- 145 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 13:51:56 ]
- Cでスクリーンショット撮ってクリップボードや適当な画像ファイル形式に保存する
プログラムを作成したいんだけどどうしたらいい?
- 146 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 13:54:37 BE:67935375-2BP(222)]
- GetDC(NULL)
- 147 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 13:55:43 ]
- CreateDC "DISPLAY", 0, 0, 0
- 148 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:01:21 ]
- 便乗質問なんですが
他のWindowで隠れてるWindowのキャプチャって可能ですか?
- 149 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:07:55 ]
- hDC取得出来ればいけるんじゃね?
- 150 名前:145 mailto:sage [2007/03/26(月) 14:10:59 ]
- >>146
>>147 ありがとう。
- 151 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:11:07 BE:29115735-2BP(222)]
- FindWindow
GetDC(hWnd)
- 152 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:22:19 ]
- 隠れてるウィンドウは表に出てWM_PAINTメッセージがきて初めて描画される
だから裏にいるときにDC取得しても上に乗っかってるウィンドウの内容がとれる
- 153 名前:148 mailto:sage [2007/03/26(月) 14:26:23 ]
- >>149
>>151 GetDC + BitBlt で試してみましたがやはり上のWindowが写りこんでしまいました。 >>152 ああ、やっぱり普通には無理なんですね。 ありがとうございました。
- 154 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 14:37:49 ]
- vistaだと、その辺の様子変わるのかねぇ・・・
- 155 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 15:32:21 ]
- ビットマップのDC作成して、レンダリングさせればいいじゃまいか。
でも対象プロセスの中で動作させないと色々リソース管理が面倒そうだ。DllInjectionでちょっと実行が楽かな。
- 156 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 15:47:35 ]
- >>154
どっかのブログで見た。 DWMまわりをごにょごにょするんだったかな。
- 157 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:15:04 ]
- あえろが効いていればできるって聞いたけどな
vistaいじってみてえ
- 158 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:16:34 ]
- DirectX使ってるならレンダリングイメージを保持してるのはサーフェスだからなぁ
- 159 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:29:33 ]
- >>158
ゲームの動画取るソフトで、パフォーマンスのために APIフックとかしてサーフェイス取得してるのもあるな
- 160 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:38:29 ]
- ReadFileの第3パラメータ「読込バイト数」を、MessageBox()で出力したいのですが、
下だとエラーが出ます、どうすればいいですか? MessageBox(NULL ,GetFileSize(hFile, NULL) , TEXT("読込バイト数") , MB_OK); エラー↓ error C2664: 'MessageBoxW' : 2 番目の引数を 'DWORD' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 1> 整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
- 161 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:48:51 ]
- >>160
C言語からやり直してきて
- 162 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:52:55 ]
- char buff[256];
wsprintf(buff, "%d", GetFileSize(hFile, NULL)); MessageBox(NULL ,buff , TEXT("読込バイト数") , MB_OK);
- 163 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:01:36 ]
- VB出身かなぁ
- 164 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:07:53 ]
- まぁ誰もが一度は通る道だ。
最近の.NETとか触ってからWindowsAPIをやろうとすると 文字列→数値や数値→文字列変換を自前でやらないといけないめんどくささにびっくりするもんだ。
- 165 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:10:31 ]
- >>162
charじゃなくてTCHARにしとけ
- 166 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:22:40 ]
- うーすみません>>162をchar→TCHARにして実行したところまたエラーが・・
error C2664: 'wsprintfW' : 2 番目の引数を 'const char [3]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 一応環境です Windows2000SP4 VC++2005ExpressEdition PlatformSDK
- 167 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:23:38 ]
- >>166
wsprintf(buff, "%d", GetFileSize(hFile, NULL)); ↓ wsprintf(buff, TEXT("%d"), GetFileSize(hFile, NULL));
- 168 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:36:31 ]
- 何のためにTEXT()マクロを使っているかを自分で調べた方がいいな
- 169 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:40:00 ]
- できました!ありがとうございました!
- 170 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 20:20:26 ]
- >>148
ふらっとC♯, C#(初心者用) Part13 pc11.2ch.net/test/read.cgi/tech/1170761729/893-894 893 名前: デフォルトの名無しさん [sage] 投稿日: 2007/03/06(火) 11:22:59 ほかのアプリケーションのスクリーンショットを撮りたいとき Alt+PrintScreenを送ってクリップボードから取得する以外に いい方法はありませんか? Vistaでのウィンドウ一覧の3D表示をXPでも できるようにするソフトを作りたいのですが。 894 名前: デフォルトの名無しさん [sage] 投稿日: 2007/03/06(火) 11:38:00 >>893 PrintWindow API使えばある程度できるよ。 ttp://www.microsoft.com/japan/msdn/windows/windowsxp/xpvisualstyles.aspx でもVistaみたいに最小化しているウィンドウについては無理。 あとリアルタイムアニメーションも多分きつい。 Vistaはわざわざライブサムネイルのためにウィンドウマネージャ書き換えてAPIまで追加したわけで、 それが何の苦労もなくXPで実現できるならXPでいいじゃんということになる。
- 171 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 20:29:34 ]
- MDIがこうなってるのはわかったのですが、
フレームウィンドウ ↓ クライアントウィンドウ ↓ 子ウィンドウ1 子ウィンドウ2 子ウィンドウ3 フレームウィンドウはWinMainで作るとして、 クライアントウィンドウはWinMainの中でフレームウィンドウ作成後に作るのと、 CALLBACK FrameProc関数がWM_CREATE:を受け取ったときに作るのと どちらがいいのでしょうか??
- 172 名前:171 mailto:sage [2007/03/26(月) 20:51:10 ]
- ttp://wisdom.sakura.ne.jp/system/winapi/win32/win139.html
すみません補足です このページではFrameProc関数がWM_CREATE:を受け取ったときに クライアントウィンドウを作っているのですが、なぜWinMainで 作ってないのか疑問に思ったのです
- 173 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 20:53:22 ]
- 動けばいいんだから細かいところを
ゴチャゴチャゴチャゴチャ ゴチャゴチャゴチャゴチャ ゴチャゴチャゴチャゴチャ ゴチャゴチャゴチャゴチャ 気にするな。
- 174 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 20:56:43 ]
- >>173はVB出身
- 175 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:04:06 ]
- >>172
WinMain が管理すべきものはフレームウインドウだけであって、 クライアントウインドウはフレームウインドウが管理すべきだから。 oo に従っておくと同時に考えなくてはいけないことが減ってうれしい。 というか不正なウインドウを操作しようとするようなバグが減る。
|

|