- 1 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:39:56 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- 208 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 20:46:05 ]
- >>205
thisポインタで自分を取り戻すんだ!
- 209 名前:203 mailto:sage [2007/11/17(土) 20:53:03 ]
- 203です。
>>207,206 _beginthreadexで実行する関数が、GlobalかStaticの制限があるのです。 また、スレッドクラスを継承するクラスは、簡単に使えるようにしたかったのです。 わけあって、MFC等のライブラリを使用できないのです。 >>208 thisを渡す方法も検討したのですが、これも上記Win32APIの理由で・・・ C++すれ逝って来ます。どうもです。
- 210 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 20:55:58 ]
- >>209
> _beginthreadexで実行する関数が、GlobalかStaticの制限があるのです。 嘘だろ?どこに書いてある? _beginthreadex のせいでこんなことになってるなら C++ スレに逝っても 迷惑なだけだろう。
- 211 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 20:59:00 ]
- >>209
>thisを渡す方法も検討したのですが、これも上記Win32APIの理由で・・・ どの理由だよ thread_mainはグローバル関数なんだから制限の範囲内じゃん
- 212 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 21:08:43 ]
- >>201
カスタムリソースにも興味があったのでFindの方やってみようかなと思って アドバイスありがとう、やってみます
- 213 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 21:32:25 ]
- class A {
public: virtual unsigned threadProc () = 0; static unsigned threadProcStatic (void * arglist) { return ((A *)arglist)->threadProc(); } void Start () { _beginthreadex(threadProcStatic, this); // 引数適当 } }; class B : public A { public: virtual unsigned threadProc () { // なんか } }; こんな感じじゃ駄目なのか? >>209
- 214 名前:203 mailto:sage [2007/11/17(土) 22:14:30 ]
- 203です。Win32APIよくわかってなくてスイマセン。
>>210 _cdeclか_clrcallで渡すことが規約のようです。global or 非staticなメンバ関数を渡せるなら教えてください。 >>211 混乱しててスイマセン。_beginthreadexとthisをどううまく使えば良いのかわかりませんでした。 >>213 ありがとうございます!これで動きました!一度staticな関数を噛まして非staticを呼ぶのですね。 皆様どうもありがとうございました。
- 215 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 22:32:28 ]
- >>214
>213 は >206 と同じことなわけだが。
- 216 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 23:28:01 ]
- >>195
>ANSI版は、文字数とバイト数がバラバラというか。。 >ダブルバイト文字とシングルバイト文字が一緒くたでわかりにくいというか・・ それが、可変長であるダブルバイト文字列というもの。 それに嫌気がさしたから、UNICODEは1文字が固定長になっている。 #というはずだったが現実そう上手くは行かず。 >>196 ANSIだとchar型、UNICODEだとwchar_t型でどれだけの要素数を占めるのかと考えればよい。
- 217 名前:デフォルトの名無しさん [2007/11/18(日) 00:01:51 ]
- >>215
206は再利用ということを考えてないっぽい
- 218 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:02:44 ]
- このようなのを作りたいんですが、どのような関数を使えばできますか?
ttp://www.hsjp.net/upload/src/up5686.jpg
- 219 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:08:52 ]
- CreateListViewMitainaControl()
- 220 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:10:59 ]
- >>214
>>210は間違っている気がするな
- 221 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:12:32 ]
- >>219
ありがとう。そんな便利な関数があるんだね CreateListViewでググって勉強してくる
- 222 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:12:37 ]
- >>219
Mitainaワロタw
- 223 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 07:03:24 ]
- >>199
やっぱり無いですか。調べても出てこないわけだ エラー無くす方向で頑張ってみます
- 224 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 08:12:52 ]
- >>198-199
無いこともない。joySetCaptureでググれ。 といっても、これを使ったところで全く解決にはならないけどな。 結局自分の代わりにポーリングして監視してくれるだけ。 ゲームパッドはキーボードやマウスのようにmake/breakコードを 送信するいわゆる割り込みデバイスではないから、能動的に 状態の変化を受け取るのは不可能。
- 225 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 08:47:25 ]
- 画面上の任意のテキストを右クリックして、文字列を取得するにはどうしたらよいでしょうか。
Babylon ttp://www.babylon.com/jpn/ のような感じで、Webブラウザに表示されたWebコンテンツでも、 ウィンドウのタイトルの文字列でも、自由にテキストを取得できるようにしたいです。 調べた限りでは、クリックした座標を元にウィンドウハンドルを取得し、該当する文字列を*丸ごと*取得することはできます。 しかし、*クリックした付近の文字列*を取得することが必要なのです。何かよい方法はありますでしょうか。
- 226 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 09:09:23 ]
- 先に言っておくが汎用的な方法は無い
テキストが表示されてるのがEDITクラス(エディットコントロール)なら EM_GETSELで選択範囲を取れるから WM_GETTEXTでテキストを取ってから選択範囲を切り出せばいい ブラウザの場合は表示されてるのはキャプションじゃないのでもっと別の方法が必要になる 具体的には IWebBrowser2→IHTMLDocument::selection→ HTMLElement::createTextRange→IHTMLTxtRange::findText って感じで取る まあ無理だろう
- 227 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 09:35:55 ]
- Babylonは画面上の「画像」をOCRで読み取ってる
だからIEだろうがFirefoxだろうが、画像中の文字だろうが読み取れる 同等の物を作るのは相当な困難が予想されるが、まぁがんばれw
- 228 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 10:32:19 ]
- >>227
>Babylonは画面上の「画像」をOCRで読み取ってる これ、まじ? ("O(ptical)"では無いだろうというツッコミは置いといて、) ほんとに、画像→文字認識してるの?
- 229 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 10:38:13 ]
- >>228
Babylonの説明にそう書いてあるだろう 例に出してるものくらいちゃんと調べろよw
- 230 名前:228 mailto:sage [2007/11/18(日) 10:48:08 ]
- >>229
ごめりんこ
- 231 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 11:01:02 ]
- どこの誰が書いたかわからんヨタかもしれん話をいちいち調べるかよw
- 232 名前:158 mailto:sage [2007/11/18(日) 11:05:38 ]
- 昨日の158です。再び助けて下さい。
i-bbs.sijex.net/imageDisp.jsp?id=gtrgtr&file=1195351075500o.jpg ダイアログのボタンを押して、メッツセージBoxを表示させました。 これを、異なるダイアログを表示させたいです。 例 i-bbs.sijex.net/imageDisp.jsp?id=gtrgtr&file=1195351124662o.jpg 表示させる記述と方法がわかりません。 出来れば具体的な記述をしてくれると有り難いです。 どなたか、ご教授お願いします。
- 233 名前:158 mailto:sage [2007/11/18(日) 11:09:45 ]
- 昨日の記述
>>158 >>159 >>160 助けてくれた神 >>164 他
- 234 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 11:12:15 ]
- >>231=馬鹿
- 235 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 11:18:43 ]
- >>232-233
だからMFCはスレチだっつーの
- 236 名前:デフォルトの名無しさん [2007/11/18(日) 11:59:39 ]
- >>232
普通にボタンがクリックされたメッセージ処理に、DialogBoxかDialogBoxParamを呼び出せばいいだけじゃないの? 昨日の質問というのは見てないので分からんけど、メッセージボックスだってDLL内でリソース確保して DialogBoxParam関数を呼び出しているだけのような気がする モーダルダイアログボックス
- 237 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 12:05:44 ]
- >>232
ダイアログから複数のモードレスダイアログを開くサンプルを、 C+Win32で書いてみたぞ。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5289.zip サブダイアログは、管理を楽にするために、 一度作成されると閉じても非表示になるだけの仕様。 宿題のメインはここじゃないのだろうから、こんなもんでいいんじゃね?
- 238 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 12:16:12 ]
- 宿題お願いすると簡単に答えてくれるスレはここですか?
- 239 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 12:26:45 ]
- 宿題スレでやれ
- 240 名前:158 mailto:sage [2007/11/18(日) 14:04:35 ]
- >>236様
>>237様 他 有難う御座います・・・ けれど、駄目だ Orz 分け分からないです。 void CKadai1119Dlg::Onmaru() { // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください //MessageBox("○の表示"); DialogBox(hInst, (LPCTSTR)IDD_maru, hWnd, (DLGPROC)About); } IDD_maru ダイアログを新たに作成し、取りあえず付けました。 当然エラー C:\Documents and Settings\あ\デスクトップ\kadai1119\kadai1119Dlg.cpp(178) : error C2065: 'hInst' : 定義されていない識別子です。 C:\Documents and Settings\あ\デスクトップ\kadai1119\kadai1119Dlg.cpp(178) : error C2065: 'hWnd' : 定義されていない識別子です。 C:\Documents and Settings\あ\デスクトップ\kadai1119\kadai1119Dlg.cpp(178) : error C2065: 'About' : 定義されていない識別子です。
- 241 名前:158 mailto:sage [2007/11/18(日) 14:08:11 ]
- 以上のエラーが出ています。
根本的に知識が足りないです。 サンプルプログラムや文献を漁ってみます。 とても、237様に感謝してます。参考にして頑張ります。
- 242 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:02:06 ]
- MFCで無意味にDialogBoxなんてAPIを使おうとする馬鹿初めて見た
>>241 いい加減こっち行けつってるだろ 日本語読めんのか? ■MFC相談室 mfc18d.dll■ pc11.2ch.net/test/read.cgi/tech/1185917008/
- 243 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:02:35 ]
- 基礎からやれってことだ
横着したって無駄 ここは宿題スレではない
- 244 名前:デフォルトの名無しさん [2007/11/18(日) 16:00:50 ]
- 俺は、応援してるぞ158w
- 245 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:07:57 ]
- >>244
自演乙
- 246 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:20:19 ]
- __
/__.))ノヽ .|ミ.l _ ._ i.) (^'ミ/.´・ .〈・ リ .しi r、_) | しゃぶらないか? | `ニニ' / ノ `ー―i´ / ̄ '  ̄ヽ / ,ィ -っ、 ヽ | / 、__う人 ・,.y i | /  ̄ | | ヽ、__ノ | | | 。 | / | ヽ、_ _,ノ 丿 | (つ) | | / ヽ |
- 247 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:23:25 ]
- >>240
デスクトップwww
- 248 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:25:09 ]
- がんばれ158w
- 249 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:54:46 ]
- エディットボックスを透明にすることは出来ますかね?
- 250 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:59:10 ]
- 非表示にすればいい
- 251 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:11:18 ]
- 頭いいな
- 252 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:25:23 ]
- 間違えました。
透明な背景を持つようにするにはどうしたらいいですかね?
- 253 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:34:23 ]
- レイヤードウィンドウでカラーキーを設定する
- 254 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:05:18 ]
- 透明なエディットボックスって何の役に立つの?
- 255 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:13:38 ]
- 仕事中に官能小説でも書きたいんジャマイカ?
- 256 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:19:35 ]
- ググッてるんですが、中々難しいです。
>254 機能的にはなんの役にも立ちません。 しかし、描画してあるビットマップがエディットボックスの背景色と重なるのは少し気になります。
- 257 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:59:08 ]
- 1. WS_EX_TRANSPARENTを設定する
2. WM_CTLCOLOREDITでNULL_BRUSHを返す これで透明にならなければEditコントロール自体の問題だからMSに文句言うか諦める
- 258 名前:デフォルトの名無しさん [2007/11/18(日) 23:32:39 ]
- .NETでも探しているのですが、Win32APIでも探しています。
Windowsのユーザーアカウントの一覧リストをプログラム上で表示して そこからアカウントを選択するようなことをする場合、ユーザーアカウントの リストを得るためのクラスやAPIがあればうれしいのですが、どのようなものがある でしょうか? また、そのリストを、Domain上のユーザーアカウントに対しても取得したい 場合にも有効なクラスやAPIであれば尚ありがたいです。何卒よろしくお願いします。
- 259 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:07:56 ]
- static HBRUSH hBrush;
switch (msg) { case WM_CREATE: hBrush = CreateSolidBrush(123); hEdit = CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL, 100, 10, 200, 25, hWnd, (HMENU)ID_EDIT, hInst, NULL); SendMessage(hEdit, EM_SETLIMITTEXT, (WPARAM)63, 0); case WM_CTLCOLOREDIT: SetBkColor((HDC)wParam, 456); return ((LRESULT)hBrush); break; こうですかね?
- 260 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:09:20 ]
- 標準機能では背景を透過させることは出来ない。
以上
- 261 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:16:47 ]
- dllから、そのdllを読み込んだexeにメッセージを渡したいのですが
どちらもウインドウを持たない場合はどのような手段が考えられるでしょうか。
- 262 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:23:40 ]
- メールを送信する
- 263 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 01:05:11 ]
- メモリマップトファイル
アトム
- 264 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 01:26:11 ]
- >>261
コールバック関数用意しとけばいいんじゃね?
- 265 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 01:55:32 ]
- 非同期でよければexeからdll呼び出すときに変数のポインタ渡せばいいんじゃない?
コールバックが一番確実だろうけど。
- 266 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 02:10:55 ]
- >>259
hBrush = CreateSolidBrush(123); SetBkColor((HDC)wParam, 456); ナンダコレw
- 267 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 07:00:16 ]
- Process Explorerでプログラムのsuspendとresumeが可能なんですが
どんなAPIを使ってるんでしょうか?
- 268 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 07:18:36 ]
- ねいてぃう゛API
- 269 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 09:03:22 ]
- スレッドを列挙してSuspendThread連打
- 270 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 13:18:16 ]
- たぶんNtSuspendProcess
調べてもないけど
- 271 名前:261 mailto:sage [2007/11/19(月) 14:22:54 ]
- >>262-265
レスありがとうございます! コールバックを実装してみようと思います。
- 272 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 17:31:21 ]
- リソースからではなく、ファイルからアイコンを取得してイメージリストに
追加したいんですが、どういう方法をとればいけるんでしょうか。
- 273 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 17:37:54 ]
- LoadLibraryで開いて、LoadIconなりLoadImageなり
- 274 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 17:55:20 ]
- すいません、dll内のものじゃなくて、iconファイルやbmpからです。
- 275 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 18:39:23 ]
- LoadImage で LR_LOADFROMFILE
- 276 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 19:26:25 ]
- >>275
ありがとうございました。 解決しました。
- 277 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:09:40 ]
- 透過出来ないのはなぜなんですか?
- 278 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:11:24 ]
- 何が?
- 279 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:15:08 ]
- 人体
- 280 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:28:59 ]
- 人体より衣服を透過したい
- 281 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:31:50 ]
- 夜店で売ってるよ
- 282 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 20:54:13 ]
- >>280
ユーザーモードでは他人の衣服を透過させる事はできない まずはターゲットに対しての特権取得を行う必要がある
- 283 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 21:17:45 ]
- >>282
どうあがいても、無理ってことですか?
- 284 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 21:39:50 ]
- 衣服の透過は実装例とか見つからないので詳しくはわからないけど、
管理者権限でも衣服にアタッチできないんなら諦めたほうが素直じゃないか?
- 285 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:13:16 ]
- 透過した衣服を着てくれる彼女を作ればいいよ
- 286 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:22:54 ]
- 境界線をクリックした時に出る
変な網目のようなバーを描画する関数ってあるんでしょうか?
- 287 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:27:49 ]
- あるといえばあるし、ないと言えばない。
あらゆるプログラムは関数を組み合わせて書く。
- 288 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:15:04 ]
- >>286
DrawFocusRect
- 289 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 01:53:40 ]
- >>286
白黒のブラシを作って、それで反転させる。
- 290 名前:デフォルトの名無しさん [2007/11/20(火) 06:43:28 ]
- 1つのアプリでコンソールを複数表示したいのですが、どうすればいいですか?
stderr用とかstdout用とかにわけたいんですが。
- 291 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 07:30:24 ]
- コンソールは各プロセスに 1 つしか割り当てることができません。
すでにコンソールを持っているプロセスが AllocConsole 関数を呼び出すと失敗します。 FreeConsole 関数を使って現在のコンソールからプロセスを切り離すと、 AllocConsole 関数を呼び出して新しいコンソールを作成することができます。 AllocConsole 関数は、新しいコンソールの標準入力ハンドル、標準出力ハンドル、 標準エラーハンドルを設定することもできます。 標準入力ハンドルはコンソールの入力バッファのハンドル、 標準出力ハンドルと標準エラーハンドルはコンソールの画面バッファのハンドルです。 ハンドルを取得するときは、GetStdHandle 関数を使います。 この関数は主に、グラフィックスアプリケーションでコンソールウィンドウを作成するときに使います。 グラフィックスアプリケーションは、コンソールなしで初期化します。 コンソールアプリケーションは、切り離されたプロセスとして作成する (CreateProcess 関数を呼び出すときに DETACHED_PROCESS フラグをセットする) 場合を除いて、コンソール付きで初期化するのが普通です。 ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpfileio/html/_win32_allocconsole.asp CreateConsole AllocConsole FreeConsole
- 292 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 08:25:51 ]
- コンソールを持つ子プロセスを複数用意して
CreateProcessの時に親プロセスのstderrやらstdoutをそれぞれのstdinに当ててしまえば可能かも名
- 293 名前:デフォルトの名無しさん [2007/11/20(火) 09:41:19 ]
- ブラウザのお気に入りとかのウィンドウのサイズを変える境界線みたいなのってどうやって作るんですか?
境界線を移動できるオプションをウィンドウに設定しても、動くのは一つのウィンドウだけで、 その他のウィンドウはそれに反応してリサイズされないですよね?あの境界線ってどうやって作るのでしょうか?
- 294 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 09:47:10 ]
- リサイズされるたびに再計算してるだけ
- 295 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 10:34:59 ]
- >>293
「スプリッタウィンドウ」 で ググれ
- 296 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 13:03:37 ]
- >>288 >>289
ありがとう、試してみます
- 297 名前:デフォルトの名無しさん [2007/11/20(火) 14:21:09 ]
- >>295
ありがとうございます
- 298 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 14:24:56 ]
- でも画面DCに反転ブラシで書く方法はAeroGlass環境だとクソ重くなるぞ
スプリッタならエクスプローラみたいにダイレクトにサイズ変更するようにしたほうがいい
- 299 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 15:48:34 ]
- 普通はスプリッタウィンドウの中に子ウィンドウを置くだろ
- 300 名前:デフォルトの名無しさん [2007/11/20(火) 20:19:01 ]
- スプラッタ?
- 301 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 20:52:48 ]
- バケラッタ!
- 302 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 20:58:28 ]
- (/O^)/
- 303 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 20:59:44 ]
- はらへった
- 304 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 23:08:21 ]
- hDCはEndPaintで開放されるのでしょうか?
case WM_PAINT: // クライアント領域を再描画する処理 hDC = BeginPaint(hWnd, &ps); TextOut(hDC, 0, 0, s, lstrlen(s)); EndPaint(hWnd, &ps); return 0;
- 305 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 23:09:32 ]
- そうだよ。PAINTSTRUCTの中にhDCが保持されているので、
そこからEndPaintは解放するデバイスコンテキストを見付ける。
- 306 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 23:20:22 ]
- なるほど、そういうことだったのですね
デバイスコンテキストはプロシージャを抜けるまでに開放しないと やばいことになる(どうやばいのかは知りませんが)と聞いていたので どこで開放してるのか必死になってさがしまつた
- 307 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 12:56:48 ]
- しかしPAINTSTRUCTの中のhdcと同じもの返すって普通に考えたら謎な実装だな。
文字列系関数で渡したバッファのポインタそのまま返すのと似た感じでコーディング楽にするためなんだろうか。
- 308 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 13:54:58 ]
- >>307
BeginPaint の動作を勘違いしていると思う・・・
|

|