Win32API 質問箱 Build10
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGやさしいお兄さんたちが答えてくれるかも。
でも、質問する前に検索ぐらいしる!!
過去スレ・参考は>>2-5
MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/index.html
0153デフォルトの名無しさん
NGNG×IL32ならlong=int32で(Win32)
○IL32ならlong=int32で(Win64)
0154デフォルトの名無しさん
NGNGソースは?
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGグロ
0157デフォルトの名無しさん
NGNG凍ってしまうんですが、これはどうにかならないのでしょうか?
0159デフォルトの名無しさん
NGNG回すと何らかの動作するようにしたいのですが、Spy++で調べても
WM_MOUSEWHEELが送られてこないようです。
どうすればホイールの動きを感知できるでしょうか?
0160デフォルトの名無しさん
NGNGSleepExつかっても凍ってしまうのですが。
ごめん、記憶で適当に言っちゃった。でも SleepEx() て割り込み受け付けるために
使うんじゃなかった?
明日検証してみるからちょっとまっててね。
AppWizard で作った Win32コンソールの hello world くらいで再現するよね?
0162デフォルトの名無しさん
NGNGどんな環境でそうなるの。98でもXPでもきちんと止まるのですが。
0163デフォルトの名無しさん
NGNGWM_MOUSEWHEEL はキーボードフォーカスを持つ
ウインドウに送られるそうだけど、その辺は大丈夫?
0164デフォルトの名無しさん
NGNGttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/10811
0165161
NGNGごめん、まじで再現しない。
#include <stdio.h>
#include <Windows.h>
int main(int argc, char* argv[])
{
printf("Hello World!\n");
::Sleep(10000);
return 0;
}
で、コンソールアプリ実行しても、Ctrl+c で止まる。
>>164さんの情報でも解決しない場合は、詳しく環境を教えて。
0166デフォルトの名無しさん
NGNG一応報告。
ウィザードが吐いたコードの最後に ::Sleep(10000); を追加しただけだが……
Win2000 VC6SP5
0167165
NGNGWin32 Console Application を AppWizard で作らせて、
MFCサポートにした。
if () ~ else の最後に ::Sleep(10000); を追加したけど落ちない。
WinXP home VC6SP5
0168デフォルトの名無しさん
NGNGできたのですが、その中で変更のあったファイルのみ列挙するには
どのようにしたらよいでしょうか?
0169159
NGNGSetFocusを実行するようにしてみたのですがダメでした。
普通のウィンドウ(WS_OVERLAPPEDWINDOW)で
ホイールの動きを感知できるか試してみたのですが、
Spy++で見る限りWM_MOUSEWHEELが送られているのに、
ウィンドウプロシージャのブレークポイントには止まりません。
WM_MOUSEWHEELがちゃんと定義されていないのかと思い、
case 0x020a:としてみたのですがダメでした。
メッセージループに何か仕掛けが必要なのでしょうか?
0170デフォルトの名無しさん
NGNGWM_VSCROLLにすりかえられてたりしない?
0171168
NGNG0172デフォルトの名無しさん
NGNGSetErrorModeするとか明示的にsignalハンドラ書くとかはどうよ?
0173デフォルトの名無しさん
NGNG'void *' 型は 'HBRUSH__ *' 型に変換できない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
とエラーが出ます
BCCです
早くも挫折の予感です
みなさんこれを乗り越えてきたのでしょうか
0174デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1030493157/733 を見てください
bccだと猫のサンプルはエラーが結構出たような気がするけどがむばれ・・・
0175デフォルトの名無しさん
NGNGwindowsx.h, GetStockBrush, DeleteBrush 等のキーワードで調べる……は駄目かな?
0176デフォルトの名無しさん
NGNGC言語の第1章からやれ
0177デフォルトの名無しさん
NGNGエラーと言われたソースのファイル名と行番号は認識してるか?
その行で使っている型識別子は1つずつgrepしてみたか?
typedefは見つけたか?
0178デフォルトの名無しさん
NGNG…は素人にはお勧めできないからがんばって適切な型の指定に置き換える
0179173
NGNG意味はよくわかりませんでしたが、HBRUSH型にキャストしてやれば良いんですね
>>174>>175>>176>>177>>178
アドバイスありがとう
また明日から頑張れそうです
0180デフォルトの名無しさん
NGNG憶えたこと、その場でちゃんとメモっとけよ
そのメモの束が、お前が先輩になった時の財産になるぞ
0182デフォルトの名無しさん
NGNGおお。
0183名無し@沢村
NGNGははは、昨日会社でソースを確認したらUpdateWindowじゃなかったよ。
正しくはこうだな。
ShowWindow(hWnd, SW_HIDE);
MoveWindow(hWnd, .....);
ShowWindow(hWnd, SW_SHOW);
0184デフォルトの名無しさん
NGNG( ●ω●) オトーサン・・・
0185デフォルトの名無しさん
NGNG禿しくちらつく。
そんなもん実用にならねぇ
0186デフォルトの名無しさん
NGNGWM_VSCROLLにすり替えられていたようです。
Spy++で表示されているのは、送られているメッセージで、
受け取ったメッセージではないんですね?
ありがとうございました。
0187名無し@沢村
NGNGヌヒよ、WS_EX_TRANSPARENT のポップアップウィンドウの話をしているのだぞ。
ユーザには存在していないように見えるウィンドウをいったん非表示にしたところで
ちらつくわけがないだろ。わかったか、ヌヒよ。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGPC に PS/2 キーボードと USB キーボード みたいに
キーボードが複数繋がっているとして、
この両者の入力を、どちらのものか識別したりする方法ってないでしょうか?
一応、デバイスマネージャにはデバイスドライバが2つある状態になっています。
多少低レベルな API とかでもいいのですが…
(さすがにデバイスドライバを作るとか、そういうレベルだと厳しいのですが)
識者の方、指揮者の方問わずよろしくおねがいします。
0190デフォルトの名無しさん
NGNGGetStdHandleすると返ってくる値がとても変なのですが
なにか関連情報ありませんか?
例えばWindows2000Sp3のExplorerから起動すると、
標準出力ハンドルとして0x00010001が返ってきます。
NULLでもINVALID_HANDLE_VALUEでもない、しかし無効なハンドル。
一方CMD.EXEからstartコマンドを使って起動するとハンドルはNULL
その他、起動方法を変えるといろいろな結果が得られます。
今手元に詳しい結果が無いのですが
WinMain
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
MessageBox(...)
}
とかで簡単に調べられます。なんでしょねこれ。
0191デフォルトの名無しさん
NGNGexplorerがなにがしかハンドルを渡してるんじゃないのか?
0192デフォルトの名無しさん
NGNGGetStdHandle 関数が返すハンドルは、コンソールからの読み取りまたはコンソールへの書き込
みが必要なアプリケーションで利用できます。
(MSDNより)
ウィンドウアプリでは必要ないと思うんだけど。
0193デフォルトの名無しさん
NGNGCreatePipe()しないと駄目とか
0194193
NGNG0195デフォルトの名無しさん
NGNG使えるよ
使えないのはCreateNamedPipeのサーバ側
0196デフォルトの名無しさん
NGNGnewよりもGlobalAllocを使った方が良い場面というのは、どういう場合なんでしょうか
なんとなく、大きいメモリを確保する必要が有るときは
GlobalAllocかなぁ、などと思っているのですが。
0197デフォルトの名無しさん
NGNGAPIがGMEM_MOVEABLEとかで指定する移動可能メモリを要求してるときぐらい
クリップボード系でGMEM_SHAREを指定するときもあるかも
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG_beginthreadexの戻り値のハンドルをクローズする場所は
たいていWaitForSingleObjectなどでスレッド終了を確認した後で
行われていますが、
スレッド関数内の最後(まだスレッドは終わってない)の所で
CloseHandleして良いものなのでしょうか ?
いちおうCloseHandleは成功はしているけど・・・やばいのかな?
0200デフォルトの名無しさん
NGNGWaitForSingleObjectなどでスレッド終了を確認する必要が無い場合は
CloseHandleしてかまわない、WaitFor...使ってる場合にCloseHandleすると
どうなるかしらない。WaitFor...がハンドルの参照カウンタをインクリメント
しているなら大丈夫だが、、、普通どおり終了確認してからCloseHandleする
のが安全だろ。
0201デフォルトの名無しさん
NGNGグラフィックはLineToやPolylineで書いています。
0202デフォルトの名無しさん
NGNGInvalidRectとか?
0203デフォルトの名無しさん
NGNG即レス、ありがとうございます。
できました。
0204デフォルトの名無しさん
NGNG良く分かりました。さんくす。
0206デフォルトの名無しさん
NGNGVBでいうところのIsNumericです。
0207デフォルトの名無しさん
NGNGGetStringType, GetStringTypeEx かなぁ?
0208デフォルトの名無しさん
NGNGIsCharAlphaNumeric() && !IsCharAlpha()
ではどうか?
0209デフォルトの名無しさん
NGNGみなさんどうやっていますか?
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG自分の手を見ながら描く
0212デフォルトの名無しさん
NGNGIDC_HANDですね。ありました。2000以上だったのか。
0213190
NGNGありがとうございます。
ウィンドウアプリから子プロセスとしてコンソールアプリを起動する
時に標準出力などを一旦待避しておいて後で
また戻してるだけなので、使わないといえば使わない
ハンドルなんですけどね。
ちょっと気持ち悪かったもので。
0214デフォルトの名無しさん
NGNGとりあえず猫プロとか見ながら組んでみたけど
SetStdHandle()でエラー返さないからええんでない?
0215デフォルトの名無しさん
NGNG知るにはどうしたらいいのでしょうか?
できればキャプチャーせずに知りたいのですが。
0216デフォルトの名無しさん
NGNGキャプチャーするのが一番だと思うんだけど・・・
タイマーで監視するか
透明なウインドウを置いてそこで検出するか
キャプチャーしたくない理由ってなによ?
0217デフォルトの名無しさん
NGNG例えば、
プッシュボタンを押したとき → キャプチャー
フラットなボタンを凸表示するとき → タイマー
みたいに。
0218デフォルトの名無しさん
NGNGウインドウ上でボタン押下したならウインドウからはずれてもMOUSEMOVEが拾えなかったっけ?
0219デフォルトの名無しさん
NGNG点とか円とか線とか
0220215
NGNGありがとうございます。
カーソルが載っているときだけボタンの色を
変えるということをしたかったのです。
カーソルが外に出た瞬間別のボタンの上に
載った場合、キャプチャー解除しても直後は
WM_MOUSEMOVEを拾えないのではないか、
と思ったのですが、実験してみたら拾えました。(汗)
スマソです。
0221デフォルトの名無しさん
NGNG点とか円とか線を描くのにDIB以外の手段つーとメタファイルか?
そんなん実測したらええやん
0222デフォルトの名無しさん
NGNGGDIと混同してる?
>>219
LineToとかArcとか
0224デフォルトの名無しさん
NGNGいや気になったのは、キャプチャだとキーボードメッセージもキャプチャしているウィンドウに取られてしまい
マウスがボタンの上に乗っているときにメニューのショートカット(Alt + H でヘルプとか)が使えなくなったりしないかなぁ、と。
アクセラレータやMFCを使っていると何故か大丈夫なのかもしれないけど。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGWM_ERASEBKGNDで処理
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGはいはい面白い面白い
0230228
NGNG気に食わない事があると良くそのセリフを吐いていたっけ…。
はあ、金返せよ…。
0231yosoでやってくれ
NGNG0232デフォルトの名無しさん
NGNGにアクセスしたいんですけどどうやったらいいんでしょうか?
で、そこに表示されているテキストを読み取りたいんですが?
95系とNT系で違う処理になると思いますがXPで動けば十分です。
0233デフォルトの名無しさん
NGNG>そこに表示されているテキストを読み取りたいんですが?
煽られた・・・・
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGこのずれの量って、GetSystemMetricsか SystemParametersInfoあたりで決まってるんでしょうか?
標準では横方向1px、縦方向1pxのようですが。
0236デフォルトの名無しさん
NGNGレジストリ操作でフォルダにあたるキーはなんですか。
ファイルならわかるけどフォルダがわかりません。
0237デフォルトの名無しさん
NGNG意味不明
0238デフォルトの名無しさん
NGNG教えてください。
0239デフォルトの名無しさん
NGNGhttp://hima-doki.s13.xrea.com/x/_cgi/a-column/data/motties/1036074275.html
0240デフォルトの名無しさん
NGNGサルでもわかるWindowsプログラミング
http://life2.2ch.net/test/read.cgi/credit/1041764551/
0241デフォルトの名無しさん
NGNGバカは死ね。
0242デフォルトの名無しさん
NGNG決まってないと思われ。と言うかボタン作ったヤツが決めてるだけ。
0243yosoでやってくれ
NGNGくめい氏がここを見ていることを祈りながら、
どの説明のどこがどのようにわからないのか
その恥のかきついでに、克明に表現しろ
この世のどこかにものすごく奇特な人がいて
おまえの悩みにつきあってくれるかも知れんぞ
0244デフォルトの名無しさん
NGNG0245yosoでやってくれ
NGNG0246デフォルトの名無しさん
NGNGVirtualAllocEx
0247デフォルトの名無しさん
NGNGGetWindowText()が使えそうなら使う。(WM_GETTEXTを送るのは×)
無理ならシステムフックを使う。
http://home.att.ne.jp/yellow/hide_n/programming/tips03.html
0248デフォルトの名無しさん
NGNG>他のプロセス内のコントロールのテキストを取得するには、GetWindowText 関数を
>呼び出すのではなく、直接 WM_GETTEXT メッセージを送ります。
ってかいてあるよ?
0249デフォルトの名無しさん
NGNGメモリマップを介してプロセス間で文字列を共有できる、というようなことを
Advanced Windowsに書いてあった気がするが。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNG全部 WM_GETTEXT でいいじゃん。
0252ネタにマジレス
NGNGGetWindowText
指定されたウィンドウが持つタイトルバーのテキストを取得します。
指定されたウィンドウがコントロールのときは、コントロール内のテキストを取得します。
(中略)
解説
この関数は、指定したウィンドウ (またはコントロール) にWM_GETTEXT メッセージを送ります。
この関数で、他のアプリケーション内のエディットコントロールのテキストを取り出すことはできません。
(MSDNより抜粋)
■ このスレッドは過去ログ倉庫に格納されています