1 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 01:54:24 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ! 過去スレ、関連リンクは>>2-10 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで - Win32API質問箱 wiki wiki.livedoor.jp/program1/d/FrontPage Win32API質問箱 Build76 pc11.2ch.net/test/read.cgi/tech/1233622578/
267 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 21:44:58 ] >>264 Vista以降ならCoreAudioで扱えばいい。 他にもDirectSoundでバッファ読みまくりとか。 ソースは見るまでもないが、きっとやり方間違っているよ。 あらゆる方法を試した事のある俺が言うんだから間違いない。
268 名前:264 mailto:sage [2009/03/08(日) 21:50:58 ] >>265 ありがとうございます. ですが,低レベルAPIで書きたいです. >>266 ループ再生は不要なので,確かに両方とも0ですね. >>267 XPで書いています.DirectXにも挑戦しようか悩みましたが, 低レベルAPIで片付けてみたいのです. お暇な時にでもソースを見ていただけたら.
269 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 21:55:49 ] APIレベルではどうしようとも遅延が200〜500msあるんだが、それを理解した上でやっているのか?
270 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 21:56:58 ] >>264 ここよりサウンドプログラムスレの方が良いアドバイスもらえるんじゃないか
271 名前:264 mailto:sage [2009/03/08(日) 22:07:46 ] >>269 数値がどの程度かは知りませんでしたが それくらいの遅延は覚悟しておりました. しかし現状ではアルゴリズムの問題で遅延が生じてしまっているため それを解消したいのです. >>270 スレ検索が足りなかったようです. サウンドプログラミングのスレを見つけましたので, そちらでお聞きする事にします. 皆さん,ありがとうございました.
272 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 04:20:37 ] >>231 互換性を切り捨てられるなら君の言うとおりだ。>後の方が洗練
273 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 05:32:19 ] 互換性が切り捨てられるなら新しいOSが出る毎にコードを書き直さないといけないだろ そんなのが洗練されてるとか、馬鹿?
274 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 07:24:18 ] ↑話を分かっていないバカ
275 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 07:27:49 ] >>274 お前がな
276 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 07:34:07 ] >>274 荒らすなよ。
277 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 09:56:49 ] ここは荒らしていいスレじゃなかったっけ
278 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 10:33:57 ] 落書きだらけの壁に「落書き禁止」の紙が貼ってあるようなもんだ。
279 名前:デフォルトの名無しさん [2009/03/09(月) 12:42:44 ] 荒らしていいスレ(笑)
280 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:31:20 ] >>278 「落書き禁止」なんて貼ってないよ 「自由の板です、どうぞ」の紙が貼られている板
281 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:40:56 ] 以下のコードでnewでメモリ確保すると大丈夫なのにスタックにメモリ確保するとエラーになります。 どこがまずいのでしょうか?なんとなくスタックの概念を根本的に間違っているような気がします。 //----大丈夫---------------------------- #include<windows.h> #include<gdiplus.h> #pragma comment(lib,"Gdiplus.lib") #include<cstdio> void main() { Gdiplus::GdiplusStartupInput gdiplusStartupInput1; ULONG_PTR gdiToken; Gdiplus::GdiplusStartup(&gdiToken,&gdiplusStartupInput1,NULL); Gdiplus::Bitmap*pBitmap1=new Gdiplus::Bitmap(TEXT("C:\\WINDOWS\\winnt.bmp")); printf("%d\n",pBitmap1->GetWidth()); delete pBitmap1; Gdiplus::GdiplusShutdown(gdiToken); } //----エラー---------------------------- #include<windows.h> #include<gdiplus.h> #pragma comment(lib,"Gdiplus.lib") #include<cstdio> void main() { Gdiplus::GdiplusStartupInput gdiplusStartupInput1; ULONG_PTR gdiToken; Gdiplus::GdiplusStartup(&gdiToken,&gdiplusStartupInput1,NULL); Gdiplus::Bitmap bitmap1(TEXT("C:\\WINDOWS\\winnt.bmp")); printf("%d\n",bitmap1.GetWidth()); Gdiplus::GdiplusShutdown(gdiToken); }
282 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:45:43 ] >>281 使ってるクラスの内容は知らんが、 上だとビットマップ削除後Shutdown呼んでるが 下だとShutdown呼んだ後ビットマップ削除してる 辺りが原因なのでは?
283 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:46:53 ] スタックうんぬんというより、クラスのインスタンス生成の概念がわかってないんじゃない?
284 名前:281 mailto:sage [2009/03/09(月) 22:02:47 ] >>282 レスありがとうございます。 おっしゃるとおりでした。 main()を抜ける時にBitmapのデストラクタが実行されてすでに開放された領域を読もうとしていたようです。 >>282 レスありがとうございます。 クラスのインスタンス生成の概念がわかってないっぽいです。 自分のやり方だと確保する領域が固定だと Gdiplus::Bitmap bitmap1(TEXT("C:\\WINDOWS\\winnt.bmp")); という風にスタックに確保するのですが、 他の人は Gdiplus::Bitmap*pBitmap1=new Gdiplus::Bitmap(TEXT("C:\\WINDOWS\\winnt.bmp")); という風に確保する領域が固定でもnewで確保しているようです。 なぜそうするかは理解できません。
285 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:07:53 ] newを使いたくないなら無理やり↓みたいにスコープ作ればよいのでは。 { Gdiplus::Bitmap bitmap1(TEXT("C:\\WINDOWS\\winnt.bmp")); printf("%d\n",bitmap1.GetWidth()); }
286 名前:281 mailto:sage [2009/03/09(月) 22:22:46 ] >>285 レスありがとうございます。 デストラクタのタイミングを制御する必要がある時意外でも、 たとえば、デストラクタのタイミングを制御する必要がなく、いっけんnewを使う必要が無いような時も 自分のやり方だと Gdiplus::Graphics graphics1(hdc1); という風にスタックに確保する場面で 他の人は Gdiplus::Graphics*pGraphics1=new Gdiplus::Graphics(hdc1); という風にnewで確保しているようです。 この理由がわかりません。
287 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:53:01 ] >>286 クラスのインスタンスでも、基本的には変数と同じ使用方法でいいと思うけどね。 #関数内でのみの使用、永続的な使用等で切り分け わざとnewで確保するのは、明示的にdeleteを呼ぶことでそこでデストラクタが 実行されることを示したいからじゃない? ま、別にこだわる必要はなし。 下手にnewばかりしてメモリリークさせるなら>>281 の方が合理的なのは確か。
288 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:59:10 ] コンストラクタでGdiplusStartup呼んで、デストラクタでGdiplusShutdown呼ぶクラス一個つくって mainの頭に置こうぜ
289 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:02:40 ] >>286 サイズがデカいクラスをスタックにとりたくない場合はnewする場合はある。 Gdiplusがそこまでデカいかは知らんが。
290 名前:デフォルトの名無しさん [2009/03/09(月) 23:04:02 ] > Gdiplusがそこまでデカいかは知らんが。 実装依存
291 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:09:29 ] Gdiplusの実装とか
292 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:14:07 ] >>281 のエラーの出るコードをコンパイル実行するとメモリリーク発生だな 何でだろ?
293 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:15:15 ] >>289 言われてみれば、他作クラスはサイズが分からんから 念のためにヒープの方がいいかもな
294 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:19:49 ] readprocessmemory関数を使いたくてVB2005ExpressEditionでプログラムを組んでみたのですが、 エラーが出て動きません。なぜでしょうか??いろいろググってみたけどわかりませんでした。 やりたいことは単にプロセスのメモリを読みたいだけなんですが・・・ 「AccessViolationExceptionはハンドルされませんでした。 保護されているメモリに読み取りまたは書込み操作を行おうとしました。他のメモリ が壊れていることが考えられます。」 Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, ByRef lpdwProcessId As Long) As Long Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpszClassName As String, ByVal lpszWindowName As String) As Long Dim hProc As Long Dim PID As Long Dim threadid As Long hProc = FindWindow("Notepad", vbNullString) threadid = GetWindowThreadProcessId(hProc, PID) ←ここの処理でエラーになる
295 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:23:00 ] >>292 すでに>>285 が答えてるだろ bitmap1が関数の終わりで解放処理を行おうとするが その時にはGdiplusShutdownでgdiplusの環境が破棄されてるから正常に終了できない だからローカル変数のスコープを{}で狭い範囲に閉じ込めなければならない
296 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:25:43 ] >>294 大幅に間違ってる。とりあえず、リファレンスを見直せ。
297 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:26:33 ] HWND な変数に hProc なんて名前を付けるのはやめれ・・・
298 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:41:32 ] >>295 すまん、>>282 がそのものずばりのこといってるんだな、俺、ダメポ デストラクタが呼ばれる前にShutdownすれば、当然、メモリリーク出るわな Gdiplus::GdiplusShutdown(gdiToken); でShutdownさているのに プログラム終了時にGdiplus::Bitmap bitmap1のデストラクタ呼ぶんだからな
299 名前:281 mailto:sage [2009/03/09(月) 23:48:25 ] >>287 >>わざとnewで確保するのは、明示的にdeleteを呼ぶことでそこでデストラクタが >>実行されることを示したいからじゃない? 僕もそう思います。 >>288 それもいい方法だと思います。 >>289 newを使う理由が1つわかりました。ありがとうございます。 >>290 とりあえずスタックが壊れるほど大きくはなさそうです。 >>292 ,298 僕も282さんに聞くまで気付きませんでした。 >>293 慎重にやるならそれもいい方法ですね。 >>295 追加説明ありがとうございます。
300 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 00:01:49 ] >>293 他作クラスであってもスタック上に確保できるならサイズは調べられるだろ。 そうでないとそもそもコンパイル不能だ。 まあ、将来的に変更される可能性はあるが。 ちなみに手元の環境だとsizeof(Bitmap)は16で画像の実態は内部で保有してるポインタの先にある。
301 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 00:10:50 ] 他人が作ったライブラリの初期化と後始末を同じ関数内でやるのは細心の注意がいるね
302 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 00:11:28 ] >>300 更に言われてみれば、まともなメーカーが提供してるクラスだと 確かに馬鹿でかいクラスのオブジェクトをスタックに積む、なんて アホなクラスなんぞ無いはずだよな。。。 >コンパイル不能 StackOverflowってコンパイル時に分かるものだったっけ?
303 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 00:16:13 ] スタックにばかでかい配列取ろうとしたときは怒られるな
304 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 00:26:58 ] >>303 thx 警告レベルが低いせいかあまり見た記憶が無いな 今度試してみよう
305 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 10:06:06 ] >>280 >>276
306 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 10:14:17 ] ここは荒らしていいスレじゃなかったっけ
307 名前:デフォルトの名無しさん [2009/03/10(火) 13:11:43 ] OSではなくソフトウェアから、パフォーマンス オプションの「パフォーマンスを優先する」に設定することは可能でしょうか?そのようなAPIをご存知の方いますでしょうか?
308 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:25:29 ] OSもソフトウエア
309 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:30:44 ] >>307 そういうAPIがあるかどうかは知らんが、力技でいくなら、レジストリ書き換えて WM_SETTINGCHANGE を発行すれば?
310 名前:デフォルトの名無しさん [2009/03/10(火) 13:30:46 ] >>308 知らないならレスするなクズ
311 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:32:23 ] G(S)etPriorityClass
312 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:45:49 ] HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation をレジストリAPIで適切な値に書き換えて再起動。
313 名前:307 [2009/03/10(火) 13:54:40 ] ありがとうございます。レジストリ強制書き換えなら可能なのですね。APIでG(S)etPriorityClassでもできるのでしょうか?
314 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:59:41 ] システムの動作に関わるレジストリを勝手に書き換えるソフトか ウィルス並だな
315 名前:デフォルトの名無しさん [2009/03/10(火) 14:03:32 ] >>314 お前みたいなクズはウィルスよりたちが悪いぜ。
316 名前:デフォルトの名無しさん [2009/03/10(火) 14:17:00 ] >>315 知らないならレスするなクズ
317 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:48:00 ] WSHはCOMですか?
318 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:49:54 ] >>317 はい。API ではないのでスレ違いだと思われます。
319 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:17:54 ] ActiveScriptはぎりぎりこのスレの範疇にできるだろうけど、 WSHは外れていると思う。
320 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:09:42 ] ウィンドウのクライアント領域をドラッグしてウィンドウの位置を移動させたいんですが、ちょっとうまくいかないので質問。 WM_MOUSEMOVEでマウスボタンが押されていたらドラッグとみなし、SetWindowPosで前回位置との差分分移動としています。 しかし、これだとマウスが動くと同時にウィンドウがガタガタと元の位置辺りとマウス位置あたりに行ったり来たり を繰り返してしまって、とても汚いです。どういう風にやるとタイトルバーをドラッグした時のように綺麗に動くのでしょうか? ちなみにマウスの座標はクライアントでもスクリーンでもダメでした。
321 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:20:15 ] WM_NCHITTESTでHTCAPTION返せ
322 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 06:28:31 ] >>320 いい加減に書くとそうなる (移動した時にWM_MOUSEMOVEが発生するので、WM_MOUSEMOVE→移動→WM_MOUSEMOVE→・・・を繰り返してしまう)
323 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 07:45:14 ] WM_LBUTTONDOWNでフラグ立てて、WM_LBUTTONUPで落とすような 処理が必要じゃないの?
324 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:00:29 ] 知らない人はレスしなくていいです。
325 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:25:56 ] 前回位置との差分じゃなくてWM_LBUTTONDOWNが来た時のカーソル座標と現在のカーソル座標との差分を使うんだよ。 ていうかこんなのググればサンプルがすぐ見つかるんだから深夜に糞スレで質問するぐらいなら自分で探しなよ。
326 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:04:15 ] つーか>>321 で一発なのにな
327 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:24:15 ] >>325 そんなアホな処理しなくても>>321 でおk
328 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:50:14 ] むしろ>>321 でいいのにな
329 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:51:07 ] むしろ>>321 でいいのにな
330 名前:デフォルトの名無しさん [2009/03/11(水) 12:02:18 ] >>321 でいいとかマジで言ってるならアホすぎ
331 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:27:19 ] case WM_LBUTTONDOWN: ::PostMessage( hWnd, WM_NCLBUTTONDOWN, HTCAPTION,i lParam); break;
332 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:42:23 ] タイトルバー以外の部分をドラッグしてウィンドウを移動させる hp.vector.co.jp/authors/VA023539/tips/window/005.htm
333 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:08:28 ] >>331 コンパイルエラーだろバカ
334 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:28:31 ] #define i
335 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:33:24 ] 333 はおそらく実際にコンパイルしてみたに違いないw
336 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:36:08 ] そんなもんコンパイルしなくても見ればわかるだろ JK
337 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:41:37 ] つーかこんな所に貼られたコードを安易にコンパイルして実行する奴なんて居るのか? 得体の知れないファイルを平気でクリックして実行するレベルだろ
338 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:44:38 ] >>337 このスレに貼られたコードの意味が分からない奴なんて居るのか?
339 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:47:51 ] >>338 居るよ >>337 とか
340 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:02:01 ] むしろこのスレに貼られたコードの意味が分かる奴なんて居るのか?
341 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:04:27 ] >>340 いるよ >>339 とか
342 名前:339 mailto:sage [2009/03/11(水) 15:07:17 ] いや俺は.netしか使ったことないから分かってないよw
343 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:07:39 ] NCHITTESTだと、どのボタンが押されたかとか、自作ライブラリとの親和性が低いとかあるので >>325 の方法で大方解決しました。ありがとうございました。 ところでGDI+の半透明描画や画像の回転機能を自分で作りたいんですが、あのライブラリは ハードの機能を使ったりしているんでしょうか?自分でちまちまピクセルごとの計算をしたら とてもゲームに使えるようなスピードにならない気もするんですが・・・
344 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:28:34 ] やってみたのか
345 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:31:31 ] やってみたのだ
346 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:39:54 ] これでいいのだ
347 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 16:11:23 ] まだやってないです やるとしたら、描画命令来るたびにロックするとかかな
348 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:22:55 ] >>343 GDI+はソフトウェア描画だよ。
349 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:34:05 ] >>330 何がアホなのか言ってみな
350 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 18:17:52 ] >>348 ソフトウェア処理だけど一応MMX/SSEなどは使ってるみたい まあゲームで使える速度じゃないのは言うまでも無いけど
351 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:34:55 ] ____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ < 何がアホなのか言ってみな | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwwwww | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / バ | | l||l 从人 l||l l||l 从人 l||l バ ン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
352 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:37:31 ] ほらな 答えられない
353 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:04:05 ] >>348 ぐぐ そうですか バリバリフレームレート出まくってるゲームで描画が5割以上GDI+みたいなゲームってありますか? GDI+入れて組むのめんどくてどんなもんなのかよくわからんのです。知ってる人いたらラッキーなんで教えてくださいよ先輩
354 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:09:51 ] >>353 妄想レスだがフレームレート上げたいゲームならDirectXを普通に使うんじゃない?
355 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:34:18 ] [環境]非MFCでWin32API(VC2005でC++)です。 [質問]画面に入りきらないテキストを描画して、スクロールしたら、 上の方の文章を消して、下の方の文章を表示するプログラムが組めません。 [どこまでできたの?] DrawText作ってテキストを表示。 スクロールするだけのWindow。 スクロールした値は取れるので、それをDrawTextに反映させたいのですが、 どうやればいいでしょうか?
356 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:35:58 ] 素直にエディットコントロール使うんじゃだめなのか…
357 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:48:00 ] >>356 レスサンクス。 もっと、初期の段階だったらそれも考えれるのですが、、、ここの部分組んだらプログラム完成するんです、、、。 DrawTextの第4引数のRECT構造体の値があるんですが、 これって、マイナスの値入れるのは危険ですか? RECT rc; GetClientRect( hWnd, &rc ); rc.top -= 100;
358 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:48:54 ] GDI+の用途って画像ファイルの入出力とアンチエイリアスつきのベクタ描画ぐらいじゃね
359 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 21:01:11 ] >>357 問題はない。
360 名前:357 mailto:sage [2009/03/11(水) 21:04:13 ] >>359 レスありがとん。 それを聞いて安心しました。 あとは、テキストのたての長さを割り出す作業だけでいけそうです。 ありがとうございました。
361 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 21:48:35 ] メモリDCに最初から全部描いておいて、スクロールの都度、必要な部分だけBitBltする手もあるぞ
362 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 21:58:41 ] 早く数学を教えてください。 待て待て
363 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:49:25 ] >>354 それもそうですね。 >>358 GDIだけだと結構やりたいこと出来ないんですよ・・・
364 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:24:54 ] CloseHandleの戻り値って確認してる? 正しいハンドルを渡してもエラーになる場合ってどんなとき?
365 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:27:49 ] ::GetLastError()
366 名前:デフォルトの名無しさん [2009/03/11(水) 23:38:41 ] >>351 アホ乙w
367 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 00:15:36 ] >>364 通信系だと、通信不良とか?