450 :
858:
451 :
441:2005/08/15(月) 23:21:25
>>444 クラスのメンバ構成が違ったり、packが違ったりしたら、やばいだしょが。
>>450 l5って言われてもどれか判らない罠。
まぁ、ハンドルで判るわけだが。
>>450 VC6でやったら普通にWM_IME_STARTCOMPOSITIONきたけど?
もしかしてIMEをONにしないで文字入力してるとかじゃないよな?
>>450 てかWM_IME_STARTCOMPOSITIONとWM_IME_ENDCOMPOSITIONはIMEのON/OFF時に飛んでくる
名無しさんこんにちは。いつも楽しく拝見しています。
ReadConsoleInput でマウスイベントが拾えません。
入力のモードに ENABLE_MOUSE_INPUT は含めています。
どうしたらいいのでしょうか。
Windows2000 を使っています。
タスクバーの長さを変えたいのですが、
過去ログ見てて出てきた
hwndTaskbar = FindWindow("Shell_TrayWnd", NULL);
SetWindowPos(hwndTaskbar,NULL,0,0,960,32,SWP_NOZORDER | SWP_NOSENDCHANGING);
でやると一瞬だけ変化して、すぐに戻ってしまいます。
ShowWindowは普通に持続するみたいなんでなんとかなるんじゃないかと思ったんですが (;´Д`)
どうすれば出来ますかね?
しつこく繰り返せ
まぁ当然の結果なんだろうけど、
実際にしつこく繰り返してみたらタスクバーがのびたり縮んだりを高速で繰り返して面白すぎることに
460 :
858:2005/08/16(火) 19:20:33
>てかWM_IME_STARTCOMPOSITIONとWM_IME_ENDCOMPOSITIONはIMEのON/OFF時に飛んでくる
え、ってことは、日本語入力モードが切り替わったときなんですか?
変換可能な文字(即ち下線付き状態)を入力し始めたら、WMstartがきて、
変換可能な文字の状態を確定(単にリターンキー)したら、WMendがくる
んじゃないんですか??
461 :
858:2005/08/16(火) 19:24:39
>>453
確かにVC++のサイトでは、WMIMESTRATCOMPOSITIONの説明が
多数掲載されていますね。そして、なんてことはない
特に意識することなく、メッセージ(&H10D)(0x010D)が発生していますよね。
でも、僕の場合、だめなんです。
112とか、84とか、133とかは、ちゃんときてますし、
200(マウスの移動)なんてのもしっかり発生しています。
(WndProcないで、Msg.ToString()をConsole.WriteLineして監視しました)
でも、肝心の、0x010Dとか、0x010Eとかがきてくれないんです。
(禁断の壷をインストールしたら、ものすごく快適になりました)
>>456 WM_GETMINMAXINFO を何とかしてみるとか?
463 :
858:2005/08/16(火) 19:37:13
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void WndProc(ref Message m)
{
Console.WriteLine(String.Format("{0,5:X}",m.Msg));
base.WndProc(ref m);
}
}
}
もう一度、新しいWindowsApplicationを作ってみました。
フォームにテキストボックスはりつけただけです。
ソースはこれだけです。
IMEを切り替えても(キーボードの左上の「半角/全角」ボタンを
連打しても)、010Dや、010Eはきません・・・(T_T)
>>463 .NET(つかC#?)はよく分からんけど、それですべてのメッセージが来るわけ?
なんかフィルタリングされてるとかじゃないの?
465 :
デフォルトの名無しさん:2005/08/16(火) 21:42:44
「マウスがどのウインドウ(オブジェクト)の上にいるか」といった情報を取得したいのですが、
とりあえずSetWindowsHookExのWH_MOUSE_LLでマウスのポジションなど取得出来るようになったのですが、
どのウインドウの上にいるか調べる方法で詰まっています。
何方かわかる方よろしくお願いします。
466 :
858:2005/08/16(火) 21:43:42
>>466 Win32ではメッセージはちゃんと飛んで、ちゃんと受け取れるので、
あとはC#スレにいったほうがいい。
たぶんコーディング方法を間違えてるとかだろ。
>>465 spy++(VC++ツールにあるでしょう)で適当なFlameにカーソル当てたときのメッセージ見たところ
WM_SETCURSORで戻ってくるときに、hWndが何かしらのパラメータとして与えられていた
おそらく、コールバック関数のいわゆるLOWORD(wParam)か、HIWORDに入れられていると思う(uMsgの値により、変わる模様)
自分だったら、フレームが立ち上がったときのハンドルをGetWindowLongあたりで取得しといて、そのハンドル値と一致したら
それは、フォーカスされたhWndハンドルでってことで、なんちゃらかんちゃら・・・
とやってみると思う
469 :
858:2005/08/16(火) 22:13:52
は、はい。