トップページ⇒tech
1001コメント291KB

Win32API 質問箱 Build11

■ このスレッドは過去ログ倉庫に格納されています
0001980 ◆oqSJWu4Ch2 NGNG
スレ立てるまでもない、Win32APIについての質問はこちらへどうぞ。
やさしい お兄ちゃん 達が答えてくれるかも。
でも、質問する前に検索ぐらい汁!!
過去スレ・参考は>>2 ぐらいにあるといいな。
0153148 ◆Kg.N7J02zE NGNG
>>152
これからは気を付けます。
0154デフォルトの名無しさんNGNG
>>148
OpenPrinter(), SetPrinter()でいけそうだが。
0155148 ◆Kg.N7J02zE NGNG
>>154
SetPrinterはドライバーのデフォルトの設定を直接変更してしまう
ので、148の手法には使えないと認識しています。
0156デフォルトの名無しさんNGNG
>>155
いや、印刷後もとの設定に戻せばいいだけでは?
0157148 ◆Kg.N7J02zE NGNG
>>154
補足しますと、EXECELの場合ファイルを開いてプリンタのトレイを変更し、
用紙サイズを変更しても、プリンターのドライバーのデフォルトの設定は変わ
りません。・・・(1)
プリンターフォルダで設定できるのがドライバーのデフォルトの設
定です。(2)
SetPrinterは(2)の設定は変更しますが、(1)のような変更がきかないのです。
0158148 ◆Kg.N7J02zE NGNG
>>156
同一プリンタドライバでの印刷を、同時に複数のユーザが
行った場合、ドライバのデフォルトの設定が変わってしまうと、
ユーザの思ったような印刷ができません。
0159デフォルトの名無しさんNGNG
>>157
(1) OpenPrinter():ハンドル取得
(2) Getprinter():現在の設定を取得
(3) SetPriner():印刷設定
(4) 印刷実行
(5) SetPriner():(2)で取得した設定に戻す
(6) ClosePrinter():終わり
でダメなの?
0160148 ◆Kg.N7J02zE NGNG
>>159
レスありがとうございます
(4)印刷実行の間に,他ユーザから Getprinterされてしまうと,
もとの設定には戻らないと思います.
0161デフォルトの名無しさんNGNG
>(4)印刷実行の間に,他ユーザから Getprinterされてしまうと
他のユーザーが戻してくれるのを期待汁!てか、Open 〜 Close の間に
割り込むことはできるんか?ちょっと調べてくれや>148
0162デフォルトの名無しさんNGNG
TextOut関数を使うよりDrawText,DrawTextExを使った方がいいのでしょうか?
TextOut関数について調べていたらDrawTextなるものを見つけて迷っています
0163148 ◆Kg.N7J02zE NGNG
>>161
調べてみます.実は印刷用アプリが別で以下のような構成です.
ご指摘で問題点が見えて来ました.これが原因かもです.

(1) OpenPrinter():ハンドル取得
(2) Getprinter():現在の設定を取得
(3) SetPriner():印刷設定
(4) ClosePrinter():終わり

(5) 印刷用アプリで印刷実行

(6) OpenPrinter():ハンドル取得
(7) Getprinter():現在の設定を取得
(8) SetPriner():(2)で取得した設定に戻す
(8) ClosePrinter():終わり
0164デフォルトの名無しさんNGNG
>>49
遅レス申し訳ないけど、GetNextWindowを使うとwindowのz-orderが取得できます。
最前面の一つ下のwindowが *概ね* 直前にアクティブです。。
最小化などでフォーカスを失った場合は直前のwindowが次のz-orderを持つとは
限りませんが、解法は私には分からないです。エロイ方はもっといい方法をお願いします。
0165デフォルトの名無しさんNGNG
>>162 ExtTextOutというのもあるよ(と更に困惑させてみる)
0166デフォルトの名無しさんNGNG
APIがイッパイあるってし・あ・わ・せ(はぁと





なわけねーだろゴルァ!
0167デフォルトの名無しさんNGNG
WM_PAINT時にCreateWindowでWS_VISIBLE指定したり、
ShowWindowで表示させようとしたりしてるのですが、表示ができません。
無理なんでしょうか?
0168_NGNG
  ∧_∧   
 ( ・∀・)/< こんなのみつけたっち♪ 
ttp://www.yamazaki.90.kg/hankaku/hankaku04.html
ttp://yamazaki.90.kg/hankaku/hankaku10.html
ttp://www.yamazaki.90.kg/hankaku/hankaku09.html
ttp://yamazaki.90.kg/hankaku/hankaku08.html
ttp://www.yamazaki.90.kg/hankaku/hankaku06.html
ttp://yamazaki.90.kg/hankaku/hankaku05.html
ttp://www.yamazaki.90.kg/hankaku/hankaku01.html
ttp://yamazaki.90.kg/hankaku/hankaku02.html
ttp://www.yamazaki.90.kg/hankaku/hankaku07.html
ttp://yamazaki.90.kg/hankaku/hankaku04.html
0169デフォルトの名無しさんNGNG
>>167
子ウィンドウをクリップしたいのなら親に WS_CLIPCHILDREN
スタイルを追加すればいいのだが、そういうことやりたいのとは
違うんかな
017066NGNG
>>147
ありがとうございます。昨晩の66です。
LPCTSTRはUnicodeマクロが定義されているかどうかで
VCがASCII変数、Unicode変数に読み替えてくれるというこですよね。
それと同じ意味でTextOutもUnicodeのときはTextOutW、でないときは
TextOutAに読み替えられるから、いづれにせよOSは文字数を受け取ら
なくてもszを検知できるはずということを書いたのですが、
昨日はうやむやになってしまいました。間違っているのでしょうか?
0171デフォルトの名無しさんNGNG
>>170
最後は0じゃなくていいってはじめからいってんだろ!
0172デフォルトの名無しさんNGNG
win16apiのライブラリーとかヘルプのダウンロード出来るところ教えてください
0173デフォルトの名無しさんNGNG
>>170
\0を終端とみなさないから文字数を入れてやらないと
どこまで表示していいか判断できなくなる
昨日から言われているのに未だに分かってないのか
久々に本当の馬鹿を見た
0174デフォルトの名無しさんNGNG
>>167
問題点をはぐらかすような質問は止めれ。
どうせ WM_PAINT じゃなくても表示できんのだろ?
0175デフォルトの名無しさんNGNG
GetThreadSelectorEntry ってどう使うんだ。(具体的に)
あまり情報がないんだが
0176デフォルトの名無しさんNGNG
386のセグメントが分かってればすぐに使えると思うけど。
0177デフォルトの名無しさんNGNG
>147
さらに遅レス。LPCTSTRって
Long Pointer Const To STRing
だと思ってた。
0178デフォルトの名無しさんNGNG
TはTinyのT
0179デフォルトの名無しさんNGNG
TはTinkoのT
0180デフォルトの名無しさんNGNG
Q. What's the meaning of `T'?
A `T' means `Tamachan'.(He is the most popular animal in Japan.)
Reference:
ANSI Sec. 123.4; ISO Sec. 5.67
0181デフォルトの名無しさんNGNG
>>174
は?意味がわからんのですが…
WM_CREATEではできたけど、WM_PAINT時に表示できなかったから聞いてるのですが?
日本語読めますよね?

ちなみにShowWindowでは表示できました。
CreateWindowでWS_VISIBLEをしても表示できない理由はまだわかってませんが。
0182デフォルトの名無しさんNGNG
>>181
WM_PAINT のたびに CreateWindow() してるの?
0183デフォルトの名無しさんNGNG
どういう仕様なのか分からんけど EndPaint() の後に書いても駄目だろうか。
0184デフォルトの名無しさんNGNG
>>182
あ…そうなっちゃいますね…まずいヨカン

ではCreateWindow時に今後表示させる場所にWindowを全部非表示で作成しておいて
SW_SHOW, SW_HIDEで表示、非表示を切り替えるのがいいのでしょうか?
0185デフォルトの名無しさんNGNG
○WM_CREATE
×CreateWindow

でした
0186デフォルトの名無しさんNGNG
少なくとも WM_PAINT でウィンドウを作るなんてのはナンセンス。
サイズ変更枠をドラッグさせるだけでウィンドウが作られるなんて
考えるだけで。。
0187デフォルトの名無しさんNGNG
>>186
ありがとうございました!
今後気をつけます。
0188デフォルトの名無しさんNGNG
WM_PAINT時にウィンドウのリージョンを更新するような処理は禁止
WM_PAINT時にウィンドウのリージョンを更新するような処理は禁止
WM_PAINT時にウィンドウのリージョンを更新するような処理は禁止
0189デフォルトの名無しさんNGNG
EndPaintじゃねーよなw
SetWindowRgnのことか?
0190デフォルトの名無しさんNGNG
BeginPaintだろアフォ
0191デフォルトの名無しさんNGNG
ところでHDCの取得には
BeginPaint()とGetDC()があるの?
使い分けってしてますか?
0192デフォルトの名無しさんNGNG
用途分かれてる気がするケド
0193デフォルトの名無しさんNGNG
>>191
BeginPaint()はWM_PAINTハンドラ内専用。
WM_PAINT内でGetDC()を使うと無効領域がクリアされないから
永遠にWM_PAINTを受け取ることになる。
0194デフォルトの名無しさんNGNG
wm_paint内ではbeginpaint それ以外はgetdc
0195デフォルトの名無しさんNGNG
TはTakeshiのT
0196デフォルトの名無しさんNGNG
Typename
0197名無し@沢村NGNG
おまいらよwin32APIでプログラムをつくるのはいいが、レジスタやメモリには予約ビットというのがあるのを知っているか?
おまいらよ、予約ビットというのはプログラマが勝手に使ってはいけない領域だ。
おまいらよ、この予約ビットの存在を知らずにプログラミングすると、プログラムが暴走したりシステムがハングアップしたりして、大変危険だよ。
例えばmallocで1000バイトばかりメモリを確保した場合、その中に予約ビットが含まれていると、プログラムはどこもおかしくないのに、突然フリーズしてしまったという不思議な現象が起るのよ。
不正なメモリアクセスというやつだな。
この予約ビットというのはメモリのそこかしこに散りばまられているから、正常にメモリを確保するのは至難の技だぞ!!
プログラミングって大変だぞ、おまいらよ!!
0198デフォルトの名無しさんNGNG
沢村よ、最初の頃の元気がないな。

> 例えばmallocで1000バイトばかりメモリを確保した場合、その中に予約ビットが含まれていると

確保したのに、
予約されてて使えないビットがあるというのはいかがなものか。
0199デフォルトの名無しさんNGNG
WinSock2 使ってちょっとしたサーバプログラムを作ってる。

socket() → bind() → listen() の後に...
WSAAsyncSelect(Socket, Window, Accepted, FD_ACCEPT) ってやって、外部から接続に行くとちゃんと WindowProc() が呼ばれる。
で WindowProc() の中で accept() するんだけど、accept() が失敗したら MessageBox() でメッセージを出すようにしてた。
で、最初動かした時に accept() の引数が間違っててメッセージが出るのはいいんだけど、1つだけじゃなくいっぱいでて異常終了する。
デバッガで追っかけると、MessageBox() 呼んだ時に、WindowProc() が呼び出されて、もう一回 MessageBox() が呼ばれて...
で、最終的にスタックオーバーしている。

これって仕様なの ?
0200デフォルトの名無しさんNGNG
スタックオーバーフローを防ぐのはプログラマの責任です
0201デフォルトの名無しさんNGNG
>>199
WINAPIでの話しだけど、
WM_PAINTでMessageBox()を書くと、無限ループになる。
  (最終的には止まるが)
よく、winsockについては知らんが
MessageBoxが怪しいと感じる。
MessageBoxがでたら次はWM_PAINTでWindowProcが呼び出されている説は?
0202デフォルトの名無しさんNGNG
>>201 あふぉ。>>186,>>188 嫁
0203201NGNG
>>202
前、デバッグでMessageBoxをWM_PAINTに書いて
びっくりするくらいMessageBoxがなかなか消えなかったので、
>>199さんがもし、知らないならと思って書いた。
>>186,>>188は知ってたよ。けど、書いた。念のため。
0204デフォルトの名無しさんNGNG
>>201
プログラム上は、WM_PAINT とか (と言うか、Socket 関係以外) が来たらそのまま DefWindowProc に渡しているだけ。
ウィンドは作ってるけど、非表示だから WM_PAINT は来ていない。
タスクトレイ常駐させて、左クリックで表示するようにしているのでその時にはじめて WM_PAINT が来ていることも確認した。

どうも、accept で失敗しているので再度メッセージが飛んできているみたい...、でも誰も DispatchMessage() してないはずなんだが。
MessageBox() 内で DispatchMessage() されちゃうのかなぁ...。

>>202
荒れるからアフォと書くなよ。
ちょっと上にも出てたんだから WM_PAINT の件ぐらいはみんな理解してると思う。
0205デフォルトの名無しさんNGNG
>>201
それはチミ、こういうことかね?

WM_PAINT → MessageBoxをウィンドウの上に出す → MessageBoxが消えると再描画発生
  ↑                                        ↓
  └―――――← ヽ(`Д´)ノ ウワァァン―←―――――――――――┘
0206デフォルトの名無しさんNGNG
>204
>MessageBox() 内で Dispatch...
これは無いだろ。独自のモーダルループに入るはず。
こういう場合はデバッガじゃなくトレースした方が良かろう。
それとMessageBox()の親を自分(非表示の)にしてない?
呼んだ時は知らんが、閉じた時に無条件に親が生かされたと思うから、この場合はデスクトックなどにするべきじゃろう。
0207デフォルトの名無しさんNGNG
はあ?上のメッセージボックス(や他のアプリ)が移動しただけでも、
Enable/Disableに関係無くWM_PAINTは来るでしょ。
0208デフォルトの名無しさんNGNG
>>206
「独自のモーダルループ」は別にウィンドウを制限してないから
しっかりDispatchされる
0209デフォルトの名無しさんNGNG
ウインドーの中に四角いウインドーじゃ無い箱作ってドラッグさせたり
その箱クリックしてメニュー出したり糸をくっつけてくるくる回したりしたいんだけど
一番効率的なやり方教えてください
0210デフォルトの名無しさんNGNG
>>209
WS_PUPOPWINDOW
そうすればドラッグ、クリック時にメッセージ。
描画は自己責任。
メニューは自作。またはオーナードロー。
が多分一番楽。
0211デフォルトの名無しさんNGNG
エディットコントロールを2つ並べて、
その境界線をドラッグで動かせるようにするにはどうすればいいですか?
0212デフォルトの名無しさんNGNG
>>211
エディットコントロールを包括するフレームウインドウを作り、エディットビューを形成する
0213デフォルトの名無しさんNGNG
>>206
> それとMessageBox()の親を自分(非表示の)にしてない?

MessageBox(0, ...) としてるから問題ないと思うんだけど。

>>207
EnableWindow() と混乱してない ?
ShowWindow(SH_SHOW or SH_HIDE) だよ。

>>208
ごめん理解できない。
MessageBox() 表示すると、システムが勝手に俺のウインドメッセージまで Dispatch しちゃうってことなの ?
メインループには戻ってないのに ?
0214デフォルトの名無しさんNGNG
スワップファイルとページファイルはどのように違う物なのですか?
俺は今までずっと一緒だと思い込んでいたのですが、↓を読むと別物のよう。
ttp://www.microsoft.com/japan/developer/library/vccore/_core_.2f.swaprun.htm

どこで聞いたらいいか分からなかったけど、ここが最も近そうに思えたので、
ここに書き込みました。より適切なスレが他にありましたら誘導をお願いします。
0215デフォルトの名無しさんNGNG
>>213
MessageBoxはシステムが勝手にユーザーのウインドウをDispatchするよ。
メッセージループしてなくてもMessageBoxが表示されてる間はしてるのと同じ状態になる。

多分MessageBoxで隠れた部分を再描画するためにWM_PAINTを呼び出す必要があるからなんだろうけど、
俺の場合はWM_PAINTとかじゃなく、WM_TIMERが呼び出されちゃってはまったからなぁ・・・
0216デフォルトの名無しさんNGNG
>>214
9x系だとスワップファイル、NT系だとページファイル
じゃなかったっけな
0217デフォルトの名無しさんNGNG
>>214
確かに、別物であるかのように呼び分けてるね。
誤訳かと思って米MSを確認したら、そちらでも呼び分けてた。
>>216
リンク先に「これはNT4.0の機能」とあるので、9x系は関係無いっぽい。
0218デフォルトの名無しさんNGNG
ページファイルが仮想メモリのことでスワップファイルは実際に作られるファイルのこと
0219じいさまNGNG
セグメント: 1つのベースアドレスにオフセットを加えてアクセスする主記憶装置の論理範囲
スワッピング: セグメント全体を2次記憶装置にバックアップ/リストアすること
ページング: セグメントの部分を一定のサイズを単位としてバックアップ/リストアすること
0220デフォルトの名無しさんNGNG
>>215
なるほど確かに普通のアプリケーションでもダイアログボックスの後ろの領域の再描画はされてるから、WindowProc は呼び出されないとダメだね。
つーことは、WindowProc 内で MessageBox は使うのは要注意と言うことだな。

> 俺の場合はWM_PAINTとかじゃなく、WM_TIMERが呼び出されちゃってはまったからなぁ・・・

だねぇ、WM_PAINT とかならすぐ気付きそうなもんだけど、WM_TIMER とか Socket なんかだと関係なさそうだったから気付きにくいよね。

ありがと、1つ経験値が上がったよ。
0221デフォルトの名無しさんNGNG
矩形内に文字列を出力するのにDrawText()を使っているのですが
エクセルのような「縮小して全体表示」をするのにフォントサイズを
0.1ポイントづつ減らしてループで矩形内に収まるかを計算しているの
ですが、これって専用のAPIで提供されているのでしょうか?
0222デフォルトの名無しさんNGNG
Dispatchするというのは
日本語で言うとどんな意味ですか?
0223デフォルトの名無しさんNGNG
>>222
殺す
もっと一般的な意味があったと思うけど・・・
0224デフォルトの名無しさんNGNG
>>222-223
dispatch[dispトv]
v.t.
1 [III 名(副)]〈使者・軍隊などを〉(…に)急派[派遣]する;〈手紙などを〉(…に)急送[発送]する《to...》:〜 the Foreign Minister to the U.N. General Assembly 国連総会に外務大臣を(急いで)派遣する.
2 〈面会人などを〉さっさと送り出す;《話》〈仕事を〉手ぎわよくかたづける;〈食事を〉手早く済ませる:〜 a salesman セールスマンにお引き取りを願う.
3 〈人・動物を〉(とどめを刺して)殺す,「かたづける」:〜 a wounded deer 手負いのシカにとどめを刺す / 〜 to eternity 殺す.
-n.
1 U (使者などの)派遣,特派;(手紙などの)発送,投函(かん).
2 UC (人の)殺害,死刑執行.
3 U すばやい処理;迅速さ.
4 速達便;(軍事・外交などに関して送られる)公文書;(新聞記者の)特電;〔商〕(急行)運送;貨物(運送会社):the New York Times 〜 from Tokyo ニューヨークタイムスの東京からの特電.

語源 イタリア語より.もとはスペイン語 despachar(des-離れて+pachar 固定する=固定から離れる→急ぐ)
0225デフォルトの名無しさんNGNG
win2000です。
ファイルからビットマップを読み込んで印刷したいと思っています。
その途中の、LoadImageを使ってbmpを読み込むところで苦戦しています。
下のようなコードなのですが、どうやってもNULLしかかえってきません。
当然、ファイルは存在しています。。。
なにかミスしてます?

char *fname = "c:\\temp.bmp";
hbmp=(HBITMAP)LoadImage (
NULL,fname,IMAGE_BITMAP,
0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
0226デフォルトの名無しさんNGNG
>>225
第一引数
0227デフォルトの名無しさんNGNG
>>223
じゃあダブルディスパッチは心中?
0228デフォルトの名無しさんNGNG
>>227
二重派遣だな(゚∀゚)



                                 (´Д⊂ ウウ…
0229デフォルトの名無しさんNGNG
>>225
とりあえずFormatMessageしてみそ
0230デフォルトの名無しさんNGNG
>>221
DrawTextで裏画面に描画、
StretchBltで裏のを表に縮小コピーの方がいいと思いますが。
0231225NGNG
ヘルプは何度も読んだのですが、第1引数は第6引数にLR_LOADFROMFILEを指定していれば無視されるようなことが書かれていたのでNULLにしていました。
一応GetModuleHandle( NULL )と(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE )で試しましたが同じでした。

FormatMessageでは、「この操作は正しく終了しました」と出ます。
もちろん、LoadImageではNULLが返ります。

誰か助けてー
0232225NGNG
DirectXのAPIで作成したBMPだったんだけど、そっちがおかしかったみたいです。
ペイントだと表示できるのに。
BMPのバージョンとかあるの?どうすりゃいいんだろう?(泣)
0233デフォルトの名無しさんNGNG
>>225
もうちょっと長めのコードを書いてみそ。他の所に間違いがあるのかも。
コードが長いなら以下のところに書くといいよ。
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0234デフォルトの名無しさんNGNG
>>232
Yes。BMPには複数のバージョンがある。
0235225NGNG
>>233
LoadImageに失敗するコードを貼り付けておきます。
ペイントで適当に作ったBMPでは成功しています。

>>234
その場合、LoadImage以外のAPIを使えば解決するの?

char *fname = "c:\\tempsurface.bmp";
LPDIRECT3DSURFACE9 backbuf;
AGlobal::GetD3DDevice()->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&backbuf);
D3DXSaveSurfaceToFile(fname,D3DXIFF_BMP,backbuf,NULL,NULL);
backbuf->Release();
if((hbmp=(HBITMAP)LoadImage (
NULL,
fname,
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION
))==NULL)
{
GetLastError()...
}
0236233NGNG
>>234
バージョンってどんな?16色、256色、1670万色の事?それとも他にある?
>>232>>235
ペイントで開くと言うことはプログラムでの開き方がおかしいと言うこと。
僕が使うのはCleateFileか標準Cだから、LoadImageは余り分からないけど
最後の引数をLR_CREATEDIBSECTION|LR_LOADFROMFILE|LR_DEFAULTSIZE
にすると動?
0237デフォルトの名無しさんNGNG
ステータスバーのサイズ変更用グリップのサイズって固定なんでしょうか?
それともデスクトップの設定によって可変なんでしょうか?
可変ならばグリップサイズを取得するAPI、もしくは方法を教えてください。
今のところグリップ幅15程度にハードコーディングしてしまっています。
0238デフォルトの名無しさんNGNG
接続されてるジョイパッドの情報を取得するAPI教えてください。
お願いします。
0239デフォルトの名無しさんNGNG
>>238
http://www.google.co.jp/search?q=%E3%82%B8%E3%83%A7%E3%82%A4%E3%83%91%E3%83%83%E3%83%89+api&ie=UTF-8&oe=UTF-8&hl=ja&lr=
なぜこの程度も出来ない?
インターネット上にいくら情報があるといっても、使う奴が無能である限り宝の持ち腐れ
0240デフォルトの名無しさんNGNG
>>239

掲示板で質問すれば、君みたいな親切くんが検索の仕方まで
教えてくれるからなあ。
0241221NGNG
>>230
そんな方法があるんでつね。
やってみます。ありがとう。。。
0242デフォルトの名無しさんNGNG
windowsフォルダーの中の起動に必要な重要なファイルとかを
使っている人にばれないように消去する方法教えてください
0243デフォルトの名無しさんNGNG
>>236
LoadImageはDDB型。
CreateFile,標準CはDIB型。
DirectXは知らんが、編集はDIB型がいい。
DIB使うなら検索でBMPフォーマットから知れ。
0244デフォルトの名無しさんNGNG
>>242
削除プログラム作って、
レジストリのキー「RUN」に追加する。
書き方は他のを参照。
スタートアップに入れる方法をあるが、
ばれやすそうなんで、そっちオススメ
0245デフォルトの名無しさんNGNG
マルチデスクトップ環境で、マウスカーソルがあるモニタの
左上のスクリーン座標かスクリーン座標系のRECTを取得したいのですが、
何かいい方法はありませんか?

POINT p;
MONITORINFOEX monInfo;
GetCursorPos(&p);
monInfo.cbSize =sizeof(monInfo);
GetMonitorInfo(MonitorFromPoint(p,MONITOR_DEFAULTTONEAREST), &monInfo);

として、
MONITORINFOEX構造体のrcMonitorでうまく取得できると思ったのですが、
実際作ってみるとうまくいってないみたいです。
よろしくお願いします。

0246デフォルトの名無しさんNGNG
>>245
GetClientRectでデスクトップのハンドル使っても
駄目なのか?
0247デフォルトの名無しさんNGNG
>>246
それだとクライアント座標系での取得になってしまうので、
左上の座標は必ず(0,0)になってしまうと思いますし、
モニタの座標ではなく、すべてのモニタを囲む長方形(VirtualDesktop)の
左上、右下の座標が取れるだけだと思うのですが間違ってますか?

スクリーン座標で
(0,0) (1600,0) (2400,0)
┌───┬──┐
│1    │2 │
│ ├──┘(2400,600)
└───┘
(0,1200)(1600,1200)
のようなモニタ配置だとして、「2」のモニタのスクリーン座標(1600,0)-(2400,600)が
ゲットしたいのです。なにかよい方法はないでしょうか・・・。
0248デフォルトの名無しさんNGNG
激しくずれました。
すいません。
0249デフォルトの名無しさんNGNG
>>248
レジストリにその情報がある可能性が高いと思われ。
あるかは知らんが。
0250214NGNG
>>216-219
ありがとうございます。おかげで理解できました。
0251デフォルトの名無しさんNGNG
Windowsのデスクトップ上のどこかで
IMEがON/OFFされたことを検出する方法はありますか?
0252デフォルトの名無しさんNGNG
ホイールマウスのホイールを無効にするにはどうしたら良いでしょうか?
■ このスレッドは過去ログ倉庫に格納されています