Win32API質問箱 Build115
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN■過去スレ
Win32API質問箱 Build114
http://toro.2ch.net/test/read.cgi/tech/1363042502/
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
0110デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN何で>>1の注意書すら読めない奴がプログラミングなんかやってんの?
0111デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANわかります。
0112デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANゴミレスは無視して、少し待ってれば、回答もらえる
0113デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANウィンドウの座標を調べるAPIを使うだけじゃん。
こんなことも思いつかないならWin32APIやめた方がいいよ。
0114デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN俺がユーザーならそれだけで不満爆発
0115デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANマウスカーソルの位置を勝手に変えることについてはガイドラインもあったはず
0116デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0117デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0118デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN発想を変えてフルスクリーン起動にするんだ
0119デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0120デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANお前世の中に必要のない人間だって自覚ある?
0121デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0122デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0123デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANするとマウスカーソルがそう移動する
0124デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0125片山博文MZパンク ◆0lBZNi.Q7evd
2013/08/04(日) NY:AN:NY.ANRECT rc;
INT cx = GetSystemMetrics(SM_CXSCREEN), cy = GetSystemMetrics(SM_CYSCREEN);
GetWindowRect(hwnd, &rc);
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE,
(rc.left + rc.right) / 2 * 65535 / cx,
(rc.top + rc.bottom) / 2 * 65535 / cy,
0, 0);
>>122
マウスドライバ作るしかない。
0126デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANはどうして画面縦からタスクバー高さ引いたより小さい値が返るの?
0127デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN◆0lBZNi.Q7evd
0128デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0129デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0130デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0131片山博文MZパンク ◆0lBZNi.Q7evd
2013/08/04(日) NY:AN:NY.ANレイヤードウィンドウにして透明度を設定する
WS_EX_LAYERED
SetLayeredWindowAttributes
0132デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANありがとうございます
ベストアンサーにさせていただきます
0133デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0134デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANそんなに知恵遅れの文化が好きなら知恵遅れに行けばいいのに
0135デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0137デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANそんなことも分からないようなクズの使うのがWin32API、
ってネガキャンするのが質問を装った>>108の目的。
それに即興で合わせて一緒にスレの質を下げようとしてるのが片山。
0138デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0139デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0140デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0141デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0142デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0143デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0144デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0145デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0146デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0147片山博文MZパンク ◆0lBZNi.Q7evd
2013/08/05(月) NY:AN:NY.AN0148デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0149デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANGetWindowRect(hwnd, &rc);
SetCursorPos((rc.left + rc.right) / 2, (rc.top + rc.bottom) / 2);
0150デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANそしてMSDNを調べろと>>1に書いてある。
>>1を無視して荒らそうとしてる>>108に
自己顕示欲を満たしたいためだけにコードを書く池沼の>>149。
0151デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0152デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANそんなんも知らない雑魚がWin32APIをやるわけナイジェリア
0153デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0154デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANじゃあもうそれはWin32APIではない
スレ違い
0155デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN何で面と向かって言わないかって、そりゃあ生きてる価値のない>>149のために自殺教唆で捕まりたくないからだよw
0156デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0157デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANありがとうございます
ベストアンサーにさせていただきます
0158デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANありがとうございます
ベストアンサーにさせていただきます
0159デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN知恵遅れのノリをここに持ち込むんじゃねーよゴミカス
0160デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANじゃあここは何をするスレかな
0161デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANその周りをブンブン飛び回る生き物を
隔離するスレ
0162デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANありがとうございます
ベストアンサーにさせていただきます
0163デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANありがとうございます
バッドアンサーにさせていただきます
0164デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANもちろベストの対義語がワーストだと知っててあえてバッドを選んだんだよな?
0165デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN何釣られてるんだよ
0166デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0167デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANその後も Wine あたりは残るんじゃないかな
0168デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0169デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0170デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN圏外で名前すら入らないマイナーな糞言語Win32APwwwww
0171デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0172デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0173デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANスムーズに切り替わらない。 ウインドウを画面外に持っていって無効領域を
無理やり発生させるとちゃんと切り替わってるのが一応確認出来るんだけど、
そのままだと全然画面が更新されない。
描画用のスレッド作って、そこで1フレーム完成したらInvalidateRectで無効領域
を発生させて、WM_PAINTのとこでバッファに作った画面をディスプレイに描画って
感じなんだけど、何が問題かわかりますか?
ちなみに、Win7 64bit使ってます。
0174デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANウィンドウスタイルは何ですか?
ウィンドウは透明ですか?
WM_PAINTの処理方法を詳しく教えて下さい。
0175デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANCS_HREDRAW | CS_VREDRAW を代入しています。
背景は白です。
BeginPaintでデバイスコンテキストを取得して、BitBltで画面をバッファから転送
しています。
ウインドウの端を掴んで大きさを変えていると、チラつきはあるもののスムーズに画面は
入れ替わります。
0176デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0177デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0178デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN情報の後出しはさっさと消えろゴミクズ
0179デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANどっちも使ってないですね。
参考にしてる資料が古くて、XPを対象にしている物なので、
互換性の問題ってのは考えられます?
0180デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0181デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANPAINTSTRUCT ps;
DWORD dwID;
static HBITMAP hBitmap;
static BuffWindow buffWnd;
/****省略****/
case WM_PAINT
hdc = BeginPaint(hWnd, &ps);//hdcはメイン画面のデバイスコンテキストハンドル
/*buffWndはバッファ用のウインドウの構造体です。hbuffDCはそのデバイスコンテキストハンドルです。*/
BitBlt(hdc, 0, 0, 640, 480, buffWnd.hbuffDC, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps);
return 0;
文字制限で省略しますが、プロシージャの中はこんな感じです。
別でスレッドを起動しています。
0182デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANcase WM_CREATE:
buffWnd.hWnd = hWnd;
buffWnd.size.cx = 640;
buffWnd.size.cy = 480;
buffWnd.dwFps = 60;
hdc = GetDC(hWnd);
hBitmap = CreateCompatibleBitmap(hdc, buff.size.cx, buff.size.cy);
buffWnd.hbuffDC = CreateCompatibleDC(hdc);
SelectObject(buffWnd.hbuffDC, hBitmap);
/**省略**/
ReleaseDC(hWnd, hdc);
CreateThread(NULL, 0, ThreadF, &buffWnd, 0, &dwID);//ThreadFは画面を作るスレッド
return 0;
0183デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANバッファのためにサーフェスが表示されているのかどうか分からないウィンドウを使うのが間違い。互換DCでビットマップ選択するだけでよい。
0184デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0185デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0186デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN一番の問題はお前の頭の悪さ。
0187デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0188デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANマルチスレッドの場合は、処理が並列に起こる。こっちでビット転送しているときに、
こっちで描画している、なんてことが自然に起こる。それなのに排他制御しないで、
ダブルバッファリングもしないで、渡すなんてことはありえない。それに
背景描画(WM_ERASEBKGND)を無効にしないと表示がちらつくという当たり前のことが
分かっていない。普通は、ダブルバッファリングだろうね。その本の名前なんていうの?
0189デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN>>188さんの排他制御という言葉を聞いて、試しに、先のプログラムに
ミューテックスを実装してみた所、期待通りの動作をしてくれました。
やはり、BitBltの転送と、転送元画像を同時に書き換えていたのが問題だった
ように思います。
それと、WM_ERASEBKGNDは本に記載さていなかったので、助かりました。
使っている本は、赤坂玲音(あかさかれおん)著のWindowsゲームプログラミングという
やつです。
また、今回の質問は7.6.6ダブルバッファリングの項から引用しました。
ありがとうございました。
0190デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN!!!悪本決定!!!
0191デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0192デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANその本のコードをコピペして>>173になるのか?
0193デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0194デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN付属のCDにサンプルプログラムの実行ファイルが入っているのですが、
それを起動しても上記の症状が出ていた為、ここで質問しました。
本が2004年の物で、XPを対象に書いてるので、色々仕様が違うのかも
しれないですね。
今回の場合だけでも、LoadImageをキャストしない、timeGetTimeを使うのに
mmsystem.hをインクルードせず、その必要性の記述も無かったりしているので、
やはり、技術本は時代に即したものを買うべきですかね
0195デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANそういう横着がしたいならJavaでも使っとけ。あれなら何年前のコードだろうと基本的に動くから
0196デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0197デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0198デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANあんなところで static 変数を使うあたりから、かなり眉唾と踏んでいるが
0199デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0200デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN回答者を完全に舐めくさってるからできること。
0201デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN対象読者がゲーム作りたい素人趣味マだから、いい加減本で良いや
って感じだろう。
0202デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0203デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN「馬 鹿 に は 無 理」
を身をもって示しに来たのか?
0204デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0205デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0206デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANそれのどこがWin32APIの質問なのか意味不明
頭の悪さもここまでくると同情するレベル
0207デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0208デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANこんなところで回答してるような
人間なんだろ。
ここで一句。
今回も
解決できぬ
役立たず
@>>188を端的に表す句
0209デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANなんてほとんどない。
0210デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANほとんど一人で書いてるんじゃないのか
■ このスレッドは過去ログ倉庫に格納されています