■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build35
751
名前:
デフォルトの名無しさん
:2005/10/02(日) 16:27:58
>>749
つまりは、排他フルスクリーンでないアプリケーション全てってことになるな。
752
名前:
673
:2005/10/02(日) 16:37:43
>>677
レスありがとうございます。
自前ですか・・・。頑張ってみます。
753
名前:
デフォルトの名無しさん
:2005/10/02(日) 17:17:53
>>728
何か勘違いしているようだが、GDIは元々ハードウェア支援がある。
S3全盛期の頃はビデオカードの機能といえば、GDIのアクセラレーションだった。
DDBなんて面倒な方式を使っているのは、そのためでもあるんだし。
754
名前:
デフォルトの名無しさん
:2005/10/02(日) 17:22:16
スレ違いと知りつつ言ってみるが、UNIXのX Window Systemで
ハードウェアアクセラレーションをオフにすると、2D描画も
非常に遅い。2D描画もVGAチップの恩恵を受けてる。
755
名前:
デフォルトの名無しさん
:2005/10/02(日) 18:12:08
そもそもOSが違う
帰れ
756
名前:
デフォルトの名無しさん
:2005/10/02(日) 18:43:49
んじゃディスプレイのプロパティ>設定タブ>詳細ボタン>トラブルシュートタブ>アクセラレートOFFにしてみれ
757
名前:
デフォルトの名無しさん
:2005/10/02(日) 18:46:14
こりゃ遅い
758
名前:
デフォルトの名無しさん
:2005/10/02(日) 19:34:05
>>756
m9(^д^)PGYAAAAAAAAAA
759
名前:
デフォルトの名無しさん
:2005/10/02(日) 20:52:04
>>753
S3とか懐かしい・・・初めて買ったマシンが864だったよ。
メモリなくてDOSでしか使ってなかったけど。
>>756
試してみたが、あんまり遅くならんな。
セーフモードで起動したxpはウィンドウがうねるのが見えてたが、
標準VGAドライバはアクセラレーション全部OFFなのかな?
760
名前:
デフォルトの名無しさん
:2005/10/02(日) 21:11:42
XPのセーフモードで、高解像度になるなら、それはVESA BIOSを使ってるわけで、
解像度の変更と、フラットメモリアクセスくらいしか提供されない。
761
名前:
デフォルトの名無しさん
:2005/10/03(月) 00:31:35
あるWindowの子Windowをスクロールさせる処理を作っているんだけど、SetWindowEx()に
SW_SCROLLCHILDを指定すると表示がちらつく。
メッセージを追いかけてみると、WM_ERASEBKGNDが送られている。
Windowの表示位置が変わるとシステムがWM_ERASEBKGNDを送ってしまうらしいんだが、
これを抑止する方法知ってたら教えて。
762
名前:
デフォルトの名無しさん
:2005/10/03(月) 00:33:18
>761
> あるWindowの子Windowをスクロールさせる処理を作っているんだけど、SetWindowEx()に
> SW_SCROLLCHILDを指定すると表示がちらつく。
すまん。間違えた、
ScrollWindowEx()にSW_SCROLLCHILDRENを指定すると
だった。
763
名前:
デフォルトの名無しさん
:2005/10/03(月) 00:53:31
子WindowのクラスのCS_HREDRAWとCS_VREDRAWはもちろんオフだよね?
764
名前:
デフォルトの名無しさん
:2005/10/03(月) 00:57:25
>763
CS_HREADRAW,CS_VREDRAWは指定してないです。hbrBackgroundにもNULLを入れてます。
765
名前:
デフォルトの名無しさん
:2005/10/03(月) 04:36:44
質問です。あるアプリのラッパDLL内で
親アプリのウィンドウハンドルに関連付けてAVISaveOptionsを呼んだら
http://rerere.servebeer.com/src/up20317.jpg
こんな感じにデフォルトでウィンドウが画像ベース?になってしまい
特定のコーデックの設定画面が切れてしまいます。
そこで試しにDLL内でDLLのインスタンスを使ってCreateWindowExをして
空のウィンドウAを作り、そのウィンドウハンドルに関連付けて
AVISaveOptionsを呼んでみたのですが、変わらず↑のような画面が出てきてしまいます
(ShowWindowでウィンドウAを出して見たところ、画像ベースでない普通のウィンドウでした)
おそらく親アプリが事前に何か悪さしてるのであろうと考えているのですが、
MSDN内を探したりgoogle先生に聞いてみたりしましたが、解決法を見つけることができませんでした。
↑のように作ったウィンドウを自動で画像ベースにするようなAPIは存在するのでしょうか?
766
名前:
デフォルトの名無しさん
:2005/10/03(月) 06:43:01
>>761
WM_ERASEBKGNDでぐぐれ
767
名前:
デフォルトの名無しさん
:2005/10/03(月) 06:52:54
>>765
さっぱりわからないが勘で答えてさしあげよう
それはテーマってやつでテーマをOFFにすれば解決だね。
768
名前:
デフォルトの名無しさん
:2005/10/03(月) 15:41:49
test
769
名前:
デフォルトの名無しさん
:2005/10/03(月) 16:03:58
すいません、質問です。
http://aploda.com/dl.php?mode=pass&file_id=0000034649
↑のプログラムは左を押したら vk_left が増えて
その結果を表示するものです。
しかし、作成した「意味無し」ボタンをクリックした後ふたたび左を押すと
なぜか入力を受け付けなくなってしまいます。
わかりにくい文章で申し訳ありませんが、
どなかたお願いします。
770
名前:
デフォルトの名無しさん
:2005/10/03(月) 16:51:02
フォーカスがボタンにいってるから
試しに他のウィンドウクリックして戻ってから左押してみて。
771
名前:
769
:2005/10/03(月) 17:18:50
>>770
さん、どうもありがとうございます。
一度ほかのウィンドウに行ってから戻ってくるとキー入力復活しました!
でも毎回この操作をやるわけにもいかないし、
キーボードとボタンの併用は相性悪いんでしょうか・・
フォーカスでググったら
::SetForegroundWindow(hWnd);
って関数が見つかったので色んなところで呼んでみたのですが、
どうもうまくいきませんでした。
ボタンの処理が終わった後、フォーカス?をボタンから離す方法はありませんか?
連続質問ですみませんが、どうかお願いします m(__)m
772
名前:
デフォルトの名無しさん
:2005/10/03(月) 17:25:16
フォーカス移動させるのもいいけど
ボタンのサブクラス化したら?
773
名前:
デフォルトの名無しさん
:2005/10/03(月) 17:43:22
>>617
ですが、マスク画像を半透明に描画したいのです。
どうすればいいでしょうか?
ラスタオペレーションで何とかなりませんか?
774
名前:
デフォルトの名無しさん
:2005/10/03(月) 17:43:37
なりません
775
名前:
デフォルトの名無しさん
:2005/10/03(月) 17:52:51
>>773
半透明用のマスク作って、ANDとかXORのROPをかければいいんじゃない?
776
名前:
769
:2005/10/03(月) 17:56:04
>>772
サブクラス化でググってみましたけど、
私のレベルでは難しそう (T_T
フォーカス移動は
::SetActiveWindow(hWnd);
関数でも無理でした orz
>>773
私は使ったことありませんが、
::AlphaBlend()関数で半透明になるという噂が。。
嘘情報だったらすみません。
あ、あと、DIB作って貼り付け先画像と合成すれば半透明は可能ですよ。
777
名前:
775
:2005/10/03(月) 17:56:57
ちと修正。
・半透明用のマスク→画像とは別の半透明用のビットパターン
778
名前:
デフォルトの名無しさん
:2005/10/03(月) 17:58:05
SetFocusくらい察知できるようになろーぜ
779
名前:
769
:2005/10/03(月) 18:00:51
>>778
キタ*・゜゚・*:.。..。.:*・゜(゚∀゚)゚・*:.。. .。.:*・゜゚・*!!!!!
うあ、できました! 激しく激しく感謝!!
ボタンの終わりに呼んでしまってもいいんですよね。
780
名前:
773
:2005/10/03(月) 18:53:43
>>775
BitBlt(hMem , 100 , 10 , 32 , 32 ,
hBkMem , 96 , 0 , SRCAND);
BitBlt(hMem , 100 , 10 , 32 , 32 ,
hBkMem , 64 , 0 , SRCINVERT);
SRCANDの方にはグレーの半透明用のマスクが、
SRCINVERTの方にはその画像が指定してありますが
色が反転してしまってしまいます。
どうすればいいでしょうか?
>>776
AlphaBlend()調べて使ってみましたが、
ラスタオペレーションの設定が分かりません。
半透明になってちょっと感動しましたが、
マスク画像は表示できないのでしょうか?
781
名前:
デフォルトの名無しさん
:2005/10/03(月) 19:34:52
反転させたいからSRCINVERTにしてんじゃないの?
782
名前:
デフォルトの名無しさん
:2005/10/03(月) 19:36:41
全力で間違えた。馬鹿な
>>781
に触らないであげてくださいorz
783
名前:
773
:2005/10/03(月) 19:40:49
DirectX(DirectDraw)ならマスク画像を半透明にする事もできますかね?
784
名前:
デフォルトの名無しさん
:2005/10/03(月) 19:44:11
>>773
だからBitBltでラスタオペレーションじゃ無理だって言ってるだろ
半透明=アルファブレンドしたいんなら、上で出てるAlphaBlend関数だ
んで、AlphaBlendにはラスタオペレーションは無い
DirectDrawはマスク画像など使わない
785
名前:
デフォルトの名無しさん
:2005/10/03(月) 19:50:14
>>773
>マスク画像は表示できないのでしょうか?
発想の転換というものをしてみましょう
透過処理をするのだから、マスクしたいところをアルファ0で描画すればいいだけだろ?
786
名前:
773
:2005/10/03(月) 20:03:29
>>784
分かりました。
率直な回答ありがとうございます。
>>785
つまり1ピクセルずつピクセルビットから
読み込んで表示汁という事ですか?
787
名前:
デフォルトの名無しさん
:2005/10/03(月) 20:14:24
透過色(抜き色)ではいかんの?
788
名前:
773
:2005/10/03(月) 20:21:02
>>787
具体的にどういう事ですか?
くやしく教えてください。お願いします。
789
名前:
デフォルトの名無しさん
:2005/10/03(月) 20:27:56
>>786
アナタ、32bitBITMAPデータというものを知りませんか
ていうか、アルファブレンドって何かわかってますか
790
名前:
773
:2005/10/03(月) 20:36:41
>>789
すみません。AlphaBlendは軽く調べただけで
どういう事ができるのか、どういう機能が備わってるのか
具体的には分かりません。
正直ぐぐっても、丁寧な説明が少なくてよく分からず、最後の引数に
至ってはほとんど何も分かりませんでした。
791
名前:
デフォルトの名無しさん
:2005/10/03(月) 20:49:00
あれだろ、あたらしいブレンド米の名前だろ?
792
名前:
デフォルトの名無しさん
:2005/10/03(月) 20:52:36
違う。ネスカフェ・アルファブレンド。
793
名前:
デフォルトの名無しさん
:2005/10/03(月) 21:07:13
>>790
http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%83%96%E3%83%AC%E3%83%B3%E3%83%89
794
名前:
773
:2005/10/03(月) 21:08:36
空気読めなくて悪いけど
AlphaBlendなら可能って事ですね。
お世話になりました。
795
名前:
773
:2005/10/03(月) 21:15:10
>>793
うはwwwwwすみませ。ありがとうございます
796
名前:
デフォルトの名無しさん
:2005/10/03(月) 22:06:12
>>762
WS_CLIPCHILDRENは?
797
名前:
デフォルトの名無しさん
:2005/10/04(火) 04:10:50
ああなるほど。背景ブラシがNULLなのにWM_ERASEBKGNDのせいでチラつくって
なんかおかしいと思ってた
798
名前:
762
:2005/10/04(火) 19:32:14
>796
WS_CLIPCHILDRENを指定してます。
>797
いや、背景ブラシがNULLなのは親Windowなんですよ。
子WindowにWM_ERASEBKGNDが飛んでいて、子Windowが背景を消去している。
「スクロールして新たに現れた領域」だけを再描画すればよいのに、なぜか子Window全体の
再描画指示がOSから送られてくるので、どうしたもんかと。
799
名前:
デフォルトの名無しさん
:2005/10/05(水) 00:05:18
>>798
思い出したが昔、子ウィンドウを一緒にスクロールさせるのに、
クライアントの上にもう一枚スクロールサイズと同じ大きさのウィンドウを被せて
その上に子ウィンドウを配置して、
スクロールさせるときは、クライアントに被せたウィンドウをMoveWindowなんかで動かす
と言うことをした覚えがある。
これだと子ウィンドウがちらつくことは無かった筈…なんだがもううろ覚え
800
名前:
ハーピィ
:2005/10/05(水) 01:32:14
E・∇・ヨノシ <800ゲット♫
801
名前:
デフォルトの名無しさん
:2005/10/05(水) 08:48:58
>799
なるほど。試してみます。
802
名前:
デフォルトの名無しさん
:2005/10/05(水) 19:29:23
CreateThread関数(_beginthreadex)なんですけど、
_beginthreadex(NULL,0,thread,NULL,0,&thID);
で、関数に渡すスレッドの引数のパラメータを第4引数に指定するとあるのですが、
どうやって渡せばいいのでしょうか・・
unsigned __stdcall thread(FILE *in);
main(){
FILE *in
_beginthreadex(NULL,0,thread,in,0,&thID);と指定してもエラーを吐いてしまいます('A
803
名前:
デフォルトの名無しさん
:2005/10/05(水) 19:33:45
>>802
unsigned __stdcall thread(void *in);
にしてみれ
804
名前:
デフォルトの名無しさん
:2005/10/05(水) 20:07:40
InitializeCriticalSectionAndSpinCount の使い方を教えてください。
スピンカウント?
805
名前:
デフォルトの名無しさん
:2005/10/05(水) 20:12:50
そんなもん不要
ポーリング最強
806
名前:
デフォルトの名無しさん
:2005/10/05(水) 21:08:45
>>802
キャストしてしまえばいい。
_beginthreadex(NULL, 0, (unsigned (__stdcall *)(void *))thread, in, 0, &thID);
807
名前:
デフォルトの名無しさん
:2005/10/05(水) 21:17:48
>>806
キャストを薦めるのはどうかと。
特に
>>802
のような人には悪影響与えそうだ。
808
名前:
デフォルトの名無しさん
:2005/10/05(水) 21:22:08
>>802
まぁ、あれだ。
まだマルチスレッド使うのは時期そうしょう(なぜか変換できない)ってことだ。
ちゃんとC勉強してからにしろ、な。
809
名前:
デフォルトの名無しさん
:2005/10/05(水) 22:49:35
>>808
総称、創傷 他変換できるぞ
810
名前:
デフォルトの名無しさん
:2005/10/05(水) 22:58:13
>>809
それはネタで言ってるのか?
811
名前:
デフォルトの名無しさん
:2005/10/05(水) 23:04:45
尚早
812
名前:
デフォルトの名無しさん
:2005/10/05(水) 23:15:48
ATOKなら「じきそうしょう」でも変換できるけどな。
813
名前:
664
:2005/10/05(水) 23:28:11
>>664-722
timeGetTimeが常に同じ値を返す問題ですが、 再現性がありましたので報告いたします。
timeGetTime が返す値は 0xBFE561FD で、 これは timeGetTime の開始アドレスでした。
timeGetDevCaps の TimeCaps.wPeriodMax は 0xBFE56225 で、 timeGetDevCaps の
開始アドレスでした。
再現方法ですが、 先ず、 DirectX と MMTimer を使うアプリと、
MMTimer のみ使うアプリがあるとします。
OS起動後、MMTimer のみを使うアプリを先に一度でも実行すると、
その後どちらのアプリでも timeGetTime は正常なのですが、
DirectX と MMTimer を使うアプリを先に実行すると、
どちらのアプリでも timeGetTime は自身の開始アドレスを返すようになります。
814
名前:
デフォルトの名無しさん
:2005/10/05(水) 23:42:56
正常な時のtimeGetTimeのアドレスと異常な時のtimeGetTimeのアドレスは同じ?
何かヘンなdll呼んでないかなぁ…
ちなみにdllのロードは静的?動的?
815
名前:
デフォルトの名無しさん
:2005/10/05(水) 23:47:34
>>810
そう言うのは改めて聞くものではないぞ
816
名前:
デフォルトの名無しさん
:2005/10/06(木) 01:03:18
>>813
printf("%X", timeGetTime);
じゃねーだろーな?
817
名前:
664
:2005/10/06(木) 03:16:16
>>814
アドレスは同じで、DLLは静的ロードです。
読み込んでいるDLLも動いているプロセスも、正常時と異常時で同じでした。
また色々したところ、DirectXを使わなくても異常になりました。
再起動しても異常だったり、正常だったりします。
関数の開始アドレスを返すのは確実なので、これで色々探してみます。
818
名前:
デフォルトの名無しさん
:2005/10/06(木) 04:18:06
>>803
なるほど渡す型はLPVOIDですから、受け取る側もLPVOIDにしなければならないのですね。
void* inに修正した所、無事受け取れたのですが・・
inはFILE*ですけど、関数に渡す時にはvoid*と表現されてますんで、例えばin=fopen("test.txt","r");
とする場合(FILE*)inとキャストしなければならないのです。
これはもう宿命でしょうね・・
819
名前:
デフォルトの名無しさん
:2005/10/06(木) 04:51:06
>>818
それは仕方ない。スレッドで受け取る引数は絶対使う型にキャストしないといけない。
820
名前:
デフォルトの名無しさん
:2005/10/06(木) 07:34:48
>>804
マルチプロセッサじゃないと意味ないばかりかCPUの無駄
821
名前:
デフォルトの名無しさん
:2005/10/06(木) 08:15:59
>>818
最初にFILE *の変数に代入してしまえばいい。
unsigned __stdcall thread(void *Param)
{
FILE *in = (FILE *)Param;
822
名前:
デフォルトの名無しさん
:2005/10/06(木) 08:26:01
>>817
そんな話初めて聞いたから、君のプログラムがしょうもない
間違いをしているのではないかと思うが。
823
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:02:04
先生_beginthreadexなんですが、、('A`)
MSのヘルプでは・・・
unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ),
void *arglist, unsigned initflag, unsigned *thrdaddr );
んでarglistに渡す引数のリスト(無い場合はNULL)とあるのですが、
void* arglistというのは抽象過ぎて意味がわかりません。
いろいろ調べて考えて弄ったんですが、やっぱり意味がわかりません('A`)..
これはスレッドに渡す引数は配列にしなさいよーっつーことですか?
824
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:04:13
すみません、問題も抽象過ぎました
スレッドが扱う関数に複数の引数を渡したいのです
825
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:06:23
cのmainのargvと同じだろ
826
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:10:42
構造体にでもまとめて、そのアドレス渡す。
827
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:15:39
はぁ、構造体で渡しますか..
イマイチスレッドは扱いにくいですね
828
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:42:45
構造体で渡した方が融通利くと思うが…。
扱いにくいかねえ。
829
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:56:46
構造体をスタックに置いたりして
830
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:57:00
別に配列でもいいけどな
まぁ、まとめて渡せってこった
831
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:57:36
だから引数の「リスト」なんだろ
832
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:58:23
ホイールマウスのホイールの回転の取得法を教えてください。
833
名前:
デフォルトの名無しさん
:2005/10/06(木) 14:59:33
arg = 引数
list = リスト
834
名前:
デフォルトの名無しさん
:2005/10/06(木) 15:04:47
>>832
メッセージがくるからそれを見ろ
835
名前:
デフォルトの名無しさん
:2005/10/06(木) 15:09:57
>>834
ありがとう
836
名前:
デフォルトの名無しさん
:2005/10/07(金) 01:15:46
>>820
シングルプロセッサだと無視されるから無駄にはならん。
まあ、最適な回数は、実際に試してみるしか、確実な方法がないのだけれど。
837
名前:
デフォルトの名無しさん
:2005/10/07(金) 03:20:27
マルチスレッドでVfWを扱いたいのですが
どうもAVIFileInit()が内部的にCOMを使ってるみたいでうまくいきません。
流れ的には
親プログラム開始→AVIFileInit→特定のキーが押されるとスレッドAを作成 →フラグAがOnになるまでループ
→フラグAがOnになったらスレッドAのハンドルを閉じてAVIStreamWriteでデータを書き込み→全部書き込んだらAVIFileExitして終了
スレッドA開始→AVIFileOpen&AVIFileCreateStreamで書き込む為のストリームを形成
→AVISaveOptionsで圧縮設定を受け取る→AVIMakeCompressedStreamで圧縮ストリームを作成
→フラグAをOn→終了
こんな感じなんですが(エラー処理とかは端折ってます)このままだとスレッドAのAVIFileOpenで
CoInitializeは呼び出されてませんと怒られて失敗し、次のAVIFileCreateStreamでエラー起こします。
そこで親プログラムの最初のAVIFileInitをスレッドAの最初に持っていったのですが、
今度は親プログラムのAVIStreamWriteでCoInitializeは(ryと怒られて割と八方塞がりです。
838
名前:
デフォルトの名無しさん
:2005/10/07(金) 03:37:24
>>837
あー最初俺もそれでハマッタなぁ。
複数のファイルストリームに同時に書き出すの作ってて。
結局VfW関係は専用のスレッドに全ての処理を集めて作ったよ。
全て外部からのシグナルで制御するようにしてた。
その後DirectShowでリライトしたけど、
最初からDirectShow使って置けばよかったと後悔した。
839
名前:
デフォルトの名無しさん
:2005/10/07(金) 06:26:22
for (iYPos = bmpInfo.bmiHeader.biHeight - 1 ; iYPos >= 0 ; iYPos--) {
for (iXPos = 0 ; ; iXPos++) {
if (iXPos > (bmpInfo.bmiHeader.biWidth - 1)) {
iCount = iLine * WIDTH_BYTE;
iLine++;
break;
}
if(bPixelBits[iCount + 2] == 0 &&
bPixelBits[iCount + 1] == 0 &&
bPixelBits[iCount] == 0)
iCount += 3;
else {AlphaBlend( hMem,iXPos , iYPos,1,1,hBkMem,iXPos , iYPos,1,1,bf);
iCount += 3; }
}
}
AlphaBlendを使った半透明処理なんですが、
BITMAPを1ピクセルずつ確認して黒なら無視、それ以外ならAlphaBlendで描画
というコードです。
AlphaBlendを何十回と呼び出しているので、動作も遅いと思います。
これ以上早いマスク画像の半透明描画があるなら教えてください。お願いします。
840
名前:
デフォルトの名無しさん
:2005/10/07(金) 06:59:15
>>837
CoInitializeEx?
841
名前:
デフォルトの名無しさん
:2005/10/07(金) 07:02:20
>>839
おまえそれ、1ピクセルずつ処理するんならAlphaBlendなんか使う必要無いだろ
842
名前:
デフォルトの名無しさん
:2005/10/07(金) 08:04:50
すいません、
BitBltで画面をキャプチャーするソフトを作っているのですが、
どうしてもマウスカーソルがキャプチャーされないのです。
どなたかマウスカーソルもキャプチャーする方法をご存知の方いらっしゃいませんでしょうか?
843
名前:
デフォルトの名無しさん
:2005/10/07(金) 08:48:12
キャプチャ時に現在のカーソル位置と形状取得して自分で描け。
844
名前:
デフォルトの名無しさん
:2005/10/07(金) 08:51:09
BitBltでマウスもキャプチャーは無理
845
名前:
デフォルトの名無しさん
:2005/10/07(金) 09:04:08
>>843
それだと使っているアイコンの種類によってはちがうもの書いてしまうこともあるでしょうし、
>>844
BitBltつかっちゃうと無理ってことは、
たとえば操作説明用にマウスカーソル付きで画面キャプチャー撮るソフトって
どうやってやってるのか分かりませんか?
846
名前:
デフォルトの名無しさん
:2005/10/07(金) 09:14:55
>>845
GetCursor
847
名前:
デフォルトの名無しさん
:2005/10/07(金) 09:49:14
>>846
それだとCursor関数を使って独自のマウスカーソルを表示していた場合
GetCursorはあくまでもハンドルを返すのでそれと同じものを描画できなくないですか?
848
名前:
デフォルトの名無しさん
:2005/10/07(金) 10:11:50
>>836
EnterCriticalSection による STATUS_INVALID_HANDLE 例外の
防止にも使えるんじゃない?
849
名前:
デフォルトの名無しさん
:2005/10/07(金) 10:42:26
Win32 APIのGetPrivateProfileStringについて
質問があります。
GetPrivateProfileStringを続けて2回コールした場合に
GetPrivateProfileStringの最後の引数のファイル名が
勝手に拡張子を除去して引数のファイル名を返却してくるので
2回目のGetPrivateProfileStringのコールでエラーとなってしまいます。
(引数のファイル名は変数にファイル名を格納したものを渡しています。)
GetPrivateProfileStringは引数のファイル名を勝手に拡張子をはずして返す仕様になっているのでしょうか?
Win32 APIの宣言で引数のファイル名はByValになっているのですが。
ご存知のかた解決方法をご教授願います。
850
名前:
デフォルトの名無しさん
:2005/10/07(金) 10:54:47
>>847
GetCursor()+DrawIconEx()
しのごの言わずに、まずは試してみろ。
851
名前:
デフォルトの名無しさん
:2005/10/07(金) 10:58:53
> GetPrivateProfileStringは引数のファイル名を勝手に拡張子をはずして返す仕様になっているのでしょうか?
んなわきゃない。LPCTSTRだから、変更しないのが仕様。
変数のサイズが悪いんじゃないか?プログラムを疑え
852
名前:
デフォルトの名無しさん
:2005/10/07(金) 11:35:36
>>850
DrawIconEx frmAAA.Picture1.hdc, 0, 0, GetCursor, 0, 0, vbNull, 0, 3
これでためしましたがやはりデフォルトのマウスカーソルが表示されるだけでしたね
http://ad-soft.hp.infoseek.co.jp/
ここのHPのマウスもキャプチャーというツールはしっかりキャプチャーできているようですが
APIだけではやはりむずかしいもんなんでしょうかねぇ
853
名前:
デフォルトの名無しさん
:2005/10/07(金) 12:04:13
>>839
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpgdi/html/_win32_transparentblt.asp
ここらへんにある内容を見直したらいいんじゃないか。
854
名前:
デフォルトの名無しさん
:2005/10/07(金) 12:29:46
>>852
delphiだけど
ttp://www.woodybells.com/delphi_tips/index.cgi?mode=view&no=5
855
名前:
デフォルトの名無しさん
:2005/10/07(金) 13:17:56
>>849
>GetPrivateProfileStringの最後の引数のファイル名が
>勝手に拡張子を除去して引数のファイル名を返却してくるので
しません。
>(引数のファイル名は変数にファイル名を格納したものを渡しています。)
ソース晒して味噌。
>>851
VBらしいよ。
856
名前:
デフォルトの名無しさん
:2005/10/07(金) 13:52:29
>>854
VBに書き直して使ってみたらばっちりできました!!!
助言ありがとうございました^^
857
名前:
デフォルトの名無しさん
:2005/10/07(金) 15:09:19
ちょっと重い処理中は、WM_MOUSEMOVEの発行が途切れ途切れになりますよね。
そのためWM_MOUSEMOVE時の値を使って何かしていると、
その処理がマウス座標的に「コマ落ち」になってしまい困っています。
これを何て言うかシューティングゲームで言うところの「処理落ち」にしたいのですが、
何か良い方法があったら教えて頂けないでしょうか。
今のところ思いついたのは、途切れ途切れのマウス座標をスプラインにして補間、くらいです。
が、バカなので出来れば複雑な処理は避けたいところです。
858
名前:
デフォルトの名無しさん
:2005/10/07(金) 15:21:29
重い処理はなるべく別のできれば相対的に優先度の低いスレッドに処理させましょう。
859
名前:
デフォルトの名無しさん
:2005/10/07(金) 15:23:06
なるほど、別スレッドを使えば良いんですね。早速やってみます。
シンプルかつ有効な回答ありがとうございます。
860
名前:
デフォルトの名無しさん
:2005/10/07(金) 15:39:09
>>838
うーんやっぱりそれしかないですかね。
VfWはマルチスレッドに対応してないとこでも
もう古臭い技術なのかもしれませんね…
861
名前:
デフォルトの名無しさん
:2005/10/07(金) 15:57:23
case WM_CLOSE:
id = MessageBox(hWnd,
"終了してもよろしいですか",
"確認",
MB_YESNO | MB_ICONQUESTION);
if (id == IDYES) {
if(!KillTimer(hWnd , 1))
MessageBox(hWnd , TEXT("Error") , TEXT("KillTimer Error") , MB_OK);
DestroyWindow(hWnd);
}
break;
:
:
wsprintf(str , TEXT("gametime %d") , gameTime);
TextOut(hMem , 200 , i*5 , str , lstrlen(str));
終了時のメッセージに"終了してもよろしいですか"とあるのですが
結果はメッセージボックスの本文に"ime 0"と表示されてしまいます。
なぜでしょうか? 教えてください。お願いします。
862
名前:
861
:2005/10/07(金) 16:37:34
スマソ。事故解決しますた。
mallocでメモリの確保してなかったぽいです。
863
名前:
デフォルトの名無しさん
:2005/10/07(金) 16:47:21
タイマー処理にてCreateTimerQueue()やCreateWaitableTimer()を使用したいのですがコンパイル時、リンクエラーとなってしまいます。
下記MSDNを見るとkernel32.libを使用とありますので特にリンクオプションは付けてません。
↓
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdllpro/html/_win32_CreateTimerQueue.asp
念のため「cl test.c /link kernel32.lib」としてもリンクエラーとなってしまいます。
(コンパイルはCLを直接使ってます)
因みにサーバーの開発ですが、MAX1000スレッド程度のタイマーを同時に
張っても問題ないでしょうか。
当方、Unix屋さんでWindowsは余り経験がありませんので苦労しています。
誰か詳しい方、他にいい方法などあればご教示願います。
環境はWin2000(SP4)、Visual Studio 6.0(SP6)です。
864
名前:
デフォルトの名無しさん
:2005/10/07(金) 16:50:27
>>863
kernel32.libやらの有るディレクトリにパスは通ってるのか?
865
名前:
デフォルトの名無しさん
:2005/10/07(金) 16:50:39
>>863
比較的新しいAPIだからPlatform SDKを入れないといけないんジャマイカ。
866
名前:
デフォルトの名無しさん
:2005/10/07(金) 17:05:46
Platform SDK February 2003までだよな、VC6.0対応は。
867
名前:
デフォルトの名無しさん
:2005/10/07(金) 18:18:14
少なくとも、CreateTimerQueueはWin2kからのサポートだろ。
#define WINVER 0x500 なり
#define _WIN32_WINNT 0x500 はやってあるんだろうね?
868
名前:
デフォルトの名無しさん
:2005/10/07(金) 18:20:56
追加
CreateWaitableTimerはNT4.0からのサポート(MSDNより)
こちらは最低限
#define _WIN32_WINNT 0x400 が必要なはず。
869
名前:
デフォルトの名無しさん
:2005/10/07(金) 18:34:42
キャプチャ野郎は正直な話スパイウェアを作ってんじゃないかとハラハラしている俺がいる。
870
名前:
デフォルトの名無しさん
:2005/10/07(金) 18:38:36
>867
,
>868
ありがとうございます。
CreateWaitableTimer()はリンクできましたが、CreateTimerQueue()は駄目でした。
winbase.hを見るとCreateWaitableTimer()はあるのですが、CreateTimerQueue()は
はないみたいです。
もう一度、SDK入れてやってみます。
ちなみに、CreateWaitableTimer()とCreateTimerQueue()の違いって何でしょう?
違いがないならCreateWaitableTimer()でもいいかと。
871
名前:
839
:2005/10/07(金) 19:18:04
>>841
1ピクセルずつならアルファ値を指定できる描画処理があるんですか?
872
名前:
デフォルトの名無しさん
:2005/10/07(金) 19:25:46
>>871
1ピクセルずつ処理するんなら自前で透過処理書いた方が速いだろ、ってこと。
アルファ付きビットマップ使えばAlphaBlend一発だ。
873
名前:
デフォルトの名無しさん
:2005/10/07(金) 19:37:37
誰か
>>863
のMAX1000スレッドという部分にツッコミをいれるべきじゃないのか?
874
名前:
デフォルトの名無しさん
:2005/10/07(金) 19:41:03
スレッド1000個作ろうが個人のかってだろ
875
名前:
デフォルトの名無しさん
:2005/10/07(金) 19:52:41
それ以前に、ハンドル待機関数の同時待機数が、
MAXIMUM_WAIT_OBJECTS 個に制限されている悪寒。
WaitFor〜()、MsgWaitFor〜()が該当する。
MAXIMUM_WAIT_OBJECTS の定義値は64。
876
名前:
839
:2005/10/07(金) 19:58:44
>>872
すみません。言ってることがわけわかめ。
アルファ付きビットマップなんて聞いたことないし、
自前で透過なんていったら1ピクセルずつ判別して描画するくらいしか思いつきません。
AlphaBlendにそんな機能ありました?
877
名前:
デフォルトの名無しさん
:2005/10/07(金) 19:59:30
>>876
MSDNを100回でいいから読んでくれ
878
名前:
デフォルトの名無しさん
:2005/10/07(金) 20:21:32
>873
1000スレッドと言うのは適当です。
要はサーバーですからある程度スレッドが上がることになりますが、
MAXどれくらいタイマーを同時に張れるのかが知りたいのです。
システム上制限があるのであれば、APIを使わずに自分でやるとか
他のやり方を検討する必要があるかなと。
自分で出来るのであればそれでも構わないのですが、
他にやり方あれば教えて下さい。
879
名前:
デフォルトの名無しさん
:2005/10/07(金) 20:31:00
>875
すみません。
WSAWaitForMultipleEvents()も同じく64個の制限なのでしょうか。
880
名前:
デフォルトの名無しさん
:2005/10/07(金) 20:31:22
>>878
もうMSDN百回読んだのか。早いな。
881
名前:
デフォルトの名無しさん
:2005/10/07(金) 20:33:06
>>878
>MAXどれくらいタイマーを同時に張れるのかが知りたいのです。
ドキュメントに制約は書かれていない。
したがって、君が人柱になって報告するべき。
882
名前:
デフォルトの名無しさん
:2005/10/07(金) 20:58:24
>>876
おまえさんそりゃあ、教えてもらおうという態度じゃないべ
わからんならわかるように勉強しなされ
聞いたこと無いって言っても、そりゃ「アナタが聞いたこと無い」だけ
32bitビットマップでグーグル検索してみれ
883
名前:
デフォルトの名無しさん
:2005/10/07(金) 21:00:38
>>879
今のヘッダは確か、こうなっている
#define WSA_MAXIMUM_WAIT_EVENTS MAXIMUM_WAIT_OBJECTS
884
名前:
839
:2005/10/07(金) 21:48:35
>>882
ごめんなさい。リアルで知らんかったです。
今まで苦労してBITMAPINFO構造体とか学んできただけあってか
アルファのあるビットマップが存在するとは思いませんでした。
ありがとうございます。吊ってきます。
885
名前:
デフォルトの名無しさん
:2005/10/07(金) 22:44:19
>>884
そりゃあおまいさん、疑問を抱く姿勢というものが無いな
BITMAPINFO構造体知ってるんなら、多少疑問が出てきそうなもんだがな
RGBQUADのとこで
886
名前:
デフォルトの名無しさん
:2005/10/07(金) 22:53:33
とりあえず、879は、WinsockFAQを見た方がいいな。
887
名前:
839
:2005/10/07(金) 23:30:01
>>885
え? 間違ってたらごめんなさい。
アルファ値ってRGBQUADのrgbReservedに指定するんですか?
0固定じゃ…くぁwセdrftgyふじこlp;@:「
888
名前:
デフォルトの名無しさん
:2005/10/07(金) 23:34:58
>>887
頼むからMSDN読んでくれ。
ttp://msdn.microsoft.com/library/en-us/gdi/bitmaps_00h3.asp
889
名前:
デフォルトの名無しさん
:2005/10/07(金) 23:35:41
>>887
RGBQUADの構成で考えると0固定だがな
実際のビットマップファイルのビットデータ構造見たことないのか?
BITMAPINFOではRGBQUADで書かれてるけど、
実際の構造はRGBTRIPLEで24bit構造
アルファ値加えて32bitにしたら、RGBQUADのReservedに相当する領域しか無いだろう?
890
名前:
デフォルトの名無しさん
:2005/10/08(土) 00:03:33
CreateWindowEx でつくったウインドウの×ボタンを無効にするにはどうすればよいですか?
dwExStyle や dwStyle で指定できるものなんでしょうか?
それともウインドウをつくった後に、×ボタンへDisableメッセージを送って実現したりするんでしょうか?
891
名前:
890
:2005/10/08(土) 00:04:30
ちなみに dwStyle に WS_SYSMENU を指定しないと確かに×ボタンはなくなりますが、
一緒に最大化・最小化ボタンもなくなっちゃうので、これ以外の解決策でお願いします。
892
名前:
デフォルトの名無しさん
:2005/10/08(土) 00:15:07
>>890
EnableMenuItem( GetSystemMenu( hWnd, FALSE ), SC_CLOSE , MF_BYCOMMAND | MF_GRAYED );
みたいな
893
名前:
デフォルトの名無しさん
:2005/10/08(土) 00:17:26
>>890
http://www.google.com/search?q=
閉じるボタン+無効化
みたいなあ
894
名前:
デフォルトの名無しさん
:2005/10/08(土) 00:18:37
> それともウインドウをつくった後に、×ボタンへDisableメッセージを送って実現したりするんでしょうか?
いや、システムメニューに EnableMenuItem で Disable する
895
名前:
890
:2005/10/08(土) 00:19:54
>>892-894
うほー皆様ありがとうございます。
>>893
様のおっしゃる通り、ぐぐればすぐに見つかりましたね。。。
おかげさまで実現できました。ありがとうございました!
896
名前:
デフォルトの名無しさん
:2005/10/08(土) 05:24:49
http://homepage2.nifty.com/spw/software/hideseek/
こういうツールってどういった仕組みで実現してるんでしょうか?
HideSeekでは、次のデータの表示及び削除が可能です
・OutlookExpressのアカウント情報(メール [POP3・HTTP・ IMAP]・ニュース・ディレクトリサービス)
・Outlookのアカウント情報(同上)
・ダイアルアップ接続(アカウント名・ユーザ名・パスワード・電話番号・デバイス・利用者)
・InternetExplorerの認証パスワード(アドレス・タイトル・ユーザ名・パスワード)
・InternetExplorerのフォーム入力データ(フィールド名・入力文字・アクセス日時)
・InternetExplorerのURL履歴(URL・タイトル)
・InternetExplorerの一時ファイル(ファイル名・サイズ・アクセス日時・アドレス)
・InternetExplorerのクッキー(ドメイン・アクセス日時・サイズ・ユーザ)
・最近使用したファイル及びプログラム
基本的にこういうのってあんまり簡単にゲットできてほしくないんだけど。
897
名前:
デフォルトの名無しさん
:2005/10/08(土) 05:27:48
APIフックやりたいんだが
AdvencedWindowsのサンプルプログラムXPじゃちゃんと動かねーよ。
898
名前:
デフォルトの名無しさん
:2005/10/08(土) 05:31:44
"API Hook" でためしにぐぐってみた。
スゲーいっぱい出てきた。
899
名前:
デフォルトの名無しさん
:2005/10/08(土) 05:36:23
>>こういうツールってどういった仕組みで実現してるんでしょうか?
実現方法をここに書く。そこで見た人間全てが取得方法を知る。
>>基本的にこういうのってあんまり簡単にゲットできてほしくないんだけど。
簡単にゲットされたくないんだろうから、仕組みは書かないほうがいい。
さぁどっち?
900
名前:
839
:2005/10/08(土) 07:20:38
>>888-889
ありがとうございます。
しかし、D-Pixedで編集した画像をバイナリエディタで改変したのですが
いくらReservedの値を変えても変化はありませんでした。
なんででしょう? orz。
901
名前:
デフォルトの名無しさん
:2005/10/08(土) 08:18:50
ダメだこいつ・・・
ファイルの仕様はおろか、使ってるアプリの仕様すら理解してないな
902
名前:
デフォルトの名無しさん
:2005/10/08(土) 08:31:12
>>901
馬鹿ですみません。
ttp://49uper.com:8080/html/img-s/86709.jpg
ピンクの部分がアルファ値になるという事ですか?
903
名前:
デフォルトの名無しさん
:2005/10/08(土) 08:33:50
>>902
だからダメだこいつってんだ
ファイルの構造も、アプリの仕様も理解してねぇじゃん
出直してこい
904
名前:
デフォルトの名無しさん
:2005/10/08(土) 08:34:42
ついでだ、
ビットマップ使うんなら、いくらフリーだからってD-Pixedなんか使うな
905
名前:
デフォルトの名無しさん
:2005/10/08(土) 08:38:22
鼻血吹いた
906
名前:
デフォルトの名無しさん
:2005/10/08(土) 08:52:04
まずファイル構造を勉強したほうがいいかと・・・
907
名前:
902
:2005/10/08(土) 09:04:13
すみません。お世話になりました。
自分で何とか調べてみます。
908
名前:
デフォルトの名無しさん
:2005/10/08(土) 09:04:56
>>907
そんなこと言うなよ寂しいじゃないか馬鹿。一回り大きくなって戻ってこいよ。
909
名前:
デフォルトの名無しさん
:2005/10/08(土) 09:08:37
>>896
IEやOEがやってるのと同じことをしてるだけ
910
名前:
デフォルトの名無しさん
:2005/10/08(土) 10:02:09
インターフェースを公開している時点でMSにも責任はあると思う
911
名前:
デフォルトの名無しさん
:2005/10/08(土) 10:07:26
ファイルの構造ってか、基礎だよな。
Windowsをブラックボックス扱いしすぎてるんじゃないか?
912
名前:
デフォルトの名無しさん
:2005/10/08(土) 10:41:09
>>910
しなけりゃしないで「秘密のAPI云々」と叩かれるし
913
名前:
デフォルトの名無しさん
:2005/10/08(土) 11:45:47
フォルダを開きたいんですけど、関数とかないのでしょうか?
ググっても出てきません。
WINAPIじゃないのかとも思ったのですが、あれは間違いなくWINAPIですよね。
あの、解凍ツールとかで、解凍したらフォルダのウィンドウが自動で開くじゃないですか。
あんなのをやりたいんです。
914
名前:
デフォルトの名無しさん
:2005/10/08(土) 11:47:26
>>913
2コンのマイクに向かって「フォルダ開け!!!」と大声で叫ぶとOK
915
名前:
デフォルトの名無しさん
:2005/10/08(土) 11:49:21
>>913
1.ShellExecute()を使う。
2."explorer.exe <フォルダ名>" でCreateProcess()かsystem()する。
好きな方をどうぞ
916
名前:
913
:2005/10/08(土) 12:01:54
>>914
2コンがありません。
>>915
ありがとうございます。
それを調べてやってみます。
917
名前:
デフォルトの名無しさん
:2005/10/08(土) 15:58:01
>>897
欄外の注意事項もちゃんと読もう。
たしかWin2000の注意だったが、XPも一緒。
918
名前:
デフォルトの名無しさん
:2005/10/08(土) 18:16:32
>>896
WNetEnumCachedPasswordsとかで検索してみ。
あとは芋づるにでてくる。
919
名前:
デフォルトの名無しさん
:2005/10/08(土) 19:56:54
>>918
どうもありがとうございました。
・OutlookExpressのアカウント情報(メール [POP3・HTTP・ IMAP]・ニュース・ディレクトリサービス)
・Outlookのアカウント情報(同上)
・InternetExplorerの認証パスワード(アドレス・タイトル・ユーザ名・パスワード)
・InternetExplorerのフォーム入力データ(フィールド名・入力文字・アクセス日時)
の4つは分かりました。
最近使ったファイル、履歴、一時ファイル、クッキーなどは
普通にフォルダ内のファイルを列挙しているだけなのでしょうか?
IEの履歴とかはイマイチ取得方法が分からないのですが。
920
名前:
デフォルトの名無しさん
:2005/10/08(土) 22:06:53
COM
921
名前:
デフォルトの名無しさん
:2005/10/09(日) 01:51:51
リストコントロールにエクスプローラ等からD&Dで
アイテムを追加するのをIDropTargetを使って実装してますが
リストコントロールの端の方にドラッグした時リストコントロールを自動でスクロールさせたいです。
そこでDragOverでDROPEFFECT_SCROLL捕まえてやれば出来るかと思いましたが
DROPEFFECT_SCROLLが発生しません。
何が問題なのでしょうか。
922
名前:
デフォルトの名無しさん
:2005/10/09(日) 08:53:49
しつもん
shellexecute = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
shellexecute.call(0, 'open', '
http://www.google.co.jp/',
0, 0, 1)
これはrubyからWEBブラウザーを起動して指定のURLを表示するコードですが、
「p p p p p」
とpが5つも連続している理由がわかりません
なぜでしょうか?おしえてください
923
名前:
デフォルトの名無しさん
:2005/10/09(日) 09:01:22
>>922
俺はrubyを知らないが、それはおそらく引数の型の指定じゃないかと思う。
924
名前:
922
:2005/10/09(日) 09:10:36
>>923
Rubyだからpが5つも並んでるんですか?
Win32APIの側のお約束ですか?
925
名前:
デフォルトの名無しさん
:2005/10/09(日) 09:39:04
ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Win32API
まあこれでも読んでrubyのWin32APIクラスの仕様でも勉強しる。
926
名前:
922
:2005/10/09(日) 09:56:17
そもそもクラスというのがよくわかんない。
ネームスペースみたいなもんか?
(1)皇族
(2)華族
(3)武士
(4)職人
(5)証人
(6)農奴
とかあったら、これはクラス?ネームスペース?
それよりも
(a)魔術師
(b)戦士
(c)僧侶
とかあったら、これはクラス?
927
名前:
デフォルトの名無しさん
:2005/10/09(日) 10:04:21
オブジェクト指向についてはスレ違い
928
名前:
デフォルトの名無しさん
:2005/10/09(日) 10:15:04
関数付き構造体
929
名前:
922
:2005/10/09(日) 10:28:08
>>925
いまみてきました
pはポインタのpみたいです。
ポインタを5つ使ってるということですね
930
名前:
デフォルトの名無しさん
:2005/10/09(日) 10:33:59
ちょっと聞いてくれ。
今VC、SDKで Win32_Find_dataを勉強してるんだけど、
構造体でnFileSizeLowがあるんだけど、型はDWORDなのに、2GBを超えるファイル作って
実験するとマイナスがつく。DWORDといえば、4Gまでは大丈夫と思ったんだけどどうしてかな。
解決方法、理由が分かる人いますか??教えてくれると助かる。
931
名前:
デフォルトの名無しさん
:2005/10/09(日) 10:39:24
符号付きintに変換して表示とか間抜けな事してるからじゃねーの?
932
名前:
デフォルトの名無しさん
:2005/10/09(日) 10:55:44
>>931
漏れもそれを考えたが、型指定(DWORD)にしても結果は同じ。
不思議なんだよ。
933
名前:
デフォルトの名無しさん
:2005/10/09(日) 10:56:06
>>930
志村〜、unsigned
934
名前:
デフォルトの名無しさん
:2005/10/09(日) 10:58:13
0x7FFFFFFF 2147483647
935
名前:
デフォルトの名無しさん
:2005/10/09(日) 11:07:01
>>932
変数の型がsignedだろうとunsignedだろうと、*printfで%d指定するような間抜けなことしたら一緒だぞ?
936
名前:
デフォルトの名無しさん
:2005/10/09(日) 11:09:01
>>935
さん。さすが。
もろやってました。。それが理由っぽい。。
一度文字列変換かな。。
937
名前:
デフォルトの名無しさん
:2005/10/09(日) 11:11:54
>>922
おまえにRubyは5年早い
938
名前:
デフォルトの名無しさん
:2005/10/09(日) 11:12:27
っていうかDWORDにマイナスないから
939
名前:
デフォルトの名無しさん
:2005/10/09(日) 11:28:27
>>938
うん。わかってたんですよ。。で、おかしい、おかしいって。
どこがまちがってるんだろう・・って。
ほんと、
>>935
さんTHX。これで勉強進みます。
940
名前:
デフォルトの名無しさん
:2005/10/09(日) 11:32:11
つ[%u]
941
名前:
デフォルトの名無しさん
:2005/10/09(日) 11:46:28
問題は*printfの可変引数は変数の元々の型ではなく書式指定文字列の指定によって解釈されてしまう、という点なんだな。
もうAPIとは全く関係ない話だが。
942
名前:
デフォルトの名無しさん
:2005/10/09(日) 12:24:32
「printfの可変引数は」ではなく「可変引数は」だろ。
943
名前:
デフォルトの名無しさん
:2005/10/09(日) 12:38:10
>>942
えーまじー?
944
名前:
デフォルトの名無しさん
:2005/10/09(日) 12:54:21
書式使わなくて可変個数の引数の場合があるから
>942
は大ウソ
945
名前:
デフォルトの名無しさん
:2005/10/09(日) 12:57:33
>>944
おもろいから本当のことは教えなくてよかったんじゃないかな
946
名前:
デフォルトの名無しさん
:2005/10/09(日) 13:00:10
自演乙
947
名前:
デフォルトの名無しさん
:2005/10/09(日) 13:11:21
自演(笑)
948
名前:
デフォルトの名無しさん
:2005/10/09(日) 14:29:54
>>919
> 履歴、一時ファイル、クッキーなどは
WinInet
949
名前:
デフォルトの名無しさん
:2005/10/09(日) 14:44:30
クッキー おいしいよクッキー
950
名前:
デフォルトの名無しさん
:2005/10/09(日) 20:41:31
質問です。
画像に合わせたウィンドウを作りたいと思います。(例:ドラえもんの顔の形をしたウィンドウなど
やり方としては透過色以外の部分をピクセル単位のリージョンで作り、CombineRgn->SetWindowRgnすればいいのでしょうが
他に何かスマートなやり方ありませんでしょうか?
よろしくお願いします。
951
名前:
デフォルトの名無しさん
:2005/10/09(日) 20:57:19
>>950
UpdateLayeredWindow。Windows2000以降でないと使えんが。
952
名前:
950
:2005/10/09(日) 21:17:16
>>951
レスありがとうございます。
API初心者なので気づきませんでした。
さっそくMSDNとにらめっこしつつ試してみます。
953
名前:
デフォルトの名無しさん
:2005/10/09(日) 21:22:59
エディットボックスのカーソル(マウスカーソルではなく点滅しているカーソル)を変更する関数はありますか?
http://www.uploda.org/file/uporg211475.jpg
この画像の「4」のところにあるような文字と重なっているカーソルに変更したいのですが‥‥
954
名前:
デフォルトの名無しさん
:2005/10/09(日) 21:25:33
>>953
それはカーソルじゃなくてキャレットって言うんだ
質問に対してはすまん、シラネ
955
名前:
デフォルトの名無しさん
:2005/10/09(日) 21:29:20
>>954
レスありがとうございます
初めて知りましたorz
キャレットで調べてみます
956
名前:
953
:2005/10/09(日) 22:15:38
解決しました。
エディットボックスにフォーカスが移動してきたときに
CreateCaretとShowCaretでキャレットを設定すればいいみたいです
case WM_COMMAND:
switch( HIWORD( wParam ) ) {
case EN_SETFOCUS:
w = 8; h = 15; // キャレットの幅と高さ(適当に指定するか別途GetWH( hwnd )のような関数を作成)
CreateCaret( hwnd, (HBITMAP)0, w, h ); // hwndはエディットボックスのハンドル
ShowCaret( hwnd );
break;
}
break;
>>954
さんありがとうございました
957
名前:
デフォルトの名無しさん
:2005/10/09(日) 22:18:18
頑張れよー
958
名前:
デフォルトの名無しさん
:2005/10/09(日) 22:29:06
俺も初めて知った
959
名前:
デフォルトの名無しさん
:2005/10/09(日) 22:51:57
フロッピードライブみたいなリムーバブルディスクを
ローカルドライブに見せかける技って無いんですかね?
GetDriveType()の逆のSetする関数みたいなのがあれば最高なんだけぢ
960
名前:
デフォルトの名無しさん
:2005/10/09(日) 22:55:29
ない
ていうか、そんなことできるようにする意味がない
961
名前:
デフォルトの名無しさん
:2005/10/09(日) 23:18:28
ひどいもんだ
962
名前:
デフォルトの名無しさん
:2005/10/09(日) 23:22:11
意味が無いどころかむしろ非常に危険
963
名前:
デフォルトの名無しさん
:2005/10/09(日) 23:25:47
だが、それがいい
964
名前:
デフォルトの名無しさん
:2005/10/09(日) 23:28:55
いいわけないだろ
965
名前:
デフォルトの名無しさん
:2005/10/09(日) 23:30:42
ローカルではないが似たようなことは出来た。
966
名前:
デフォルトの名無しさん
:2005/10/09(日) 23:41:56
substでいけるかと思ったらそうでもないんだな
967
名前:
デフォルトの名無しさん
:2005/10/10(月) 00:58:49
ものすごく初歩的な質問なんですが、GUIプログラムでボタンを押すと処理をするとき、
処理中に固まらないようにCreateThreadでスレッドを生成して処理をするのって
あまり良くないのですか?
どんどんメモリの消費量が増えていくんですが・・・
968
名前:
デフォルトの名無しさん
:2005/10/10(月) 01:11:43
>>967
作成したスレッドをCloseHandleしてないとか。
969
名前:
967
:2005/10/10(月) 01:39:14
>>968
CloseHandleは一応してるんですが、やり方が悪いのかも・・・。
一応タスクマネージャで見る限りではスレッドは終了しています。
970
名前:
967
:2005/10/10(月) 01:52:54
case WM_COMMAND:
switch( LOWORD(wParam) ){
case IDOK1://ボタンが押されたときの処理
if((mainThread = CreateThread(NULL, 0,
test_Thread, hDlg, 0, NULL)) == NULL){
MessageBox(hDlg,"スレッドを生成できません","エラー", MB_OK);
break;
}
CloseHandle(mainThread);
}
break;
これじゃ駄目?
971
名前:
デフォルトの名無しさん
:2005/10/10(月) 02:36:16
>>970
一応言ってみる。
VCでは、_beginthreadexを使わないと、メモリリークが起きる。
Cのライブラリがスレッドごとに、一部のC標準ライブラリに必要なメモリを確保しているから。
CreateThread()を使うと、このメモリを開放するタイミングがわからず、リークする。
他のコンパイラを使っているなら、実装依存だから何ともいえない。
972
名前:
デフォルトの名無しさん
:2005/10/10(月) 02:47:39
メモリリークするのは使用頻度の低い関数ばかりだけどな
973
名前:
デフォルトの名無しさん
:2005/10/10(月) 03:50:18
ちなみにVCの場合とMFCの場合ではスレッドの生成方法を変えたほうが良い
974
名前:
デフォルトの名無しさん
:2005/10/10(月) 05:35:01
>>967
スレッドは使わないほうがいい
975
名前:
デフォルトの名無しさん
:2005/10/10(月) 05:41:08
PeekMessageでアイドル処理するとか書いといてやれよ
976
名前:
デフォルトの名無しさん
:2005/10/10(月) 07:53:00
つーかゲームじゃないんだし、
ボタンに対応した処理で固まるってどういう処理だよ
ボタン押して一瞬orしばらく応答無いのは普通だぞ・・・
977
名前:
デフォルトの名無しさん
:2005/10/10(月) 08:45:42
円周率を一億桁計算でもしてるんじゃないの?
>>967
に聞かなきゃ分からないけど
978
名前:
デフォルトの名無しさん
:2005/10/10(月) 09:39:02
スレッド内でMFCを使う場合は、AfxBeginThread
スレッド内でCランタイムを使う場合は、_beginthread、_beginthreadex又はAfxBeginThread
スレッド内でAPIのみなら、CreateThread、_beginthread、_beginthreadex又はAfxBeginThread
>>967
固まるように感じる程の場合のみスレッドを考えればいい
979
名前:
デフォルトの名無しさん
:2005/10/10(月) 11:20:50
とりあえずAfxBeginThreadを使っとけば間違いないの?
980
名前:
デフォルトの名無しさん
:2005/10/10(月) 11:28:19
>>979
このスレ的にはそこまでは要らん。
AfxBeginThreadを使うならMFCスレに行け。
981
名前:
デフォルトの名無しさん
:2005/10/10(月) 11:36:37
Afx〜って関数はMFCのなのか
982
名前:
デフォルトの名無しさん
:2005/10/10(月) 11:45:50
タスクマネージャーについての質問です。
当方、Ctl + Alt + del が押されてタスクマネージャーを表示させる前に簡単なユーザ認証を行うダイアログを
表示させるようにしようとしています。
また、そのダイアログを普通のデスクトップにモーダレスで表示させたいのです。
現在、MSgina.dllを使用してdllをつくり、WlxLoggedOnSAS()内でダイアログを表示させています。
その結果、普通のデスクトップでダイアログが表示されず、logonデスクトップで表示されます。
WlxSasNotify()という関数がSASを受信して画面を切り替えているのかと思うのですが・・・。
画面の切り替わる前にダイアログを表示させたいのですが、どなたかこの辺の知識のある方はいますでしょうか。
ご教授ください。
よろしくお願いします。
983
名前:
デフォルトの名無しさん
:2005/10/10(月) 12:00:54
>>981
かつてのMFCの開発コードがApplicationFrameworkXだから
984
名前:
デフォルトの名無しさん
:2005/10/10(月) 13:41:34
ボタン1を持つ画面1とボタン2を持つ画面2があって、
それぞれのボタンを押すことで画面1と画面2を切り替える処理は
毎回ボタンを作成・破棄せずに全てのボタンを最初に作成し
必要に応じて表示・非表示とした方が良いのでしょうか?
ここでは画面2つの場合を例にしてますが、実際にはもっとたくさんの画面とボタンがあります。
985
名前:
デフォルトの名無しさん
:2005/10/10(月) 13:44:32
「たくさん」の程度にもよるけど、10画面くらいなら、表示・非表示でいいと思うけど。
986
名前:
デフォルトの名無しさん
:2005/10/10(月) 13:51:51
>>985
即レスありがとうございます。それでしたら表示・非表示で行こうと思います。
ありがとうございました。
987
名前:
967
:2005/10/10(月) 14:34:31
>>976
>>977
ネットワーク関係のプログラムです。
皆さん助言ありがとうございました。とても参考になりました。
988
名前:
デフォルトの名無しさん
:2005/10/10(月) 16:09:19
>>982
デスクトップを切り替えてるのはWlxLoggedOnSASじゃないの?
「ようこそ」画面が有効だと画面切り替えなしでタスクマネージャが起動するから
少なくとも方法はあるはず
> モーダレス
モーダルかモードレスのどっちかにしなさい
989
名前:
デフォルトの名無しさん
:2005/10/10(月) 20:55:17
>>982
ttp://forums.belution.com/ja/vc/000/332/17s.shtml
990
名前:
デフォルトの名無しさん
:2005/10/10(月) 20:59:54
>>982
http://www.tt.rim.or.jp/~rudyard/torii009.html
991
名前:
デフォルトの名無しさん
:2005/10/10(月) 21:27:53
>>990
その意見はいちゃもんに近いな。
ニュアンス的にそぐわないとだけ指摘すればいいのに。
思慮が浅いだの背伸びしてるだの、いらんこと言う。
992
名前:
デフォルトの名無しさん
:2005/10/10(月) 21:29:57
今回の場合は思慮が浅いせいでマルチしたんだろうがな
993
名前:
デフォルトの名無しさん
:2005/10/10(月) 21:33:08
ご教授願いますって間違いだったのか。普通に使ってたorz
994
名前:
デフォルトの名無しさん
:2005/10/10(月) 22:15:17
つーか別に意味が通じるならいいだろうが
そもそも語彙なんて変化していく物なんだから
確信犯だって今じゃ誤用したのが普通に使われるだろうに
995
名前:
デフォルトの名無しさん
:2005/10/10(月) 22:20:36
>>990
ゲーム理論確立者にノーベル賞まで読んだ
996
名前:
デフォルトの名無しさん
:2005/10/10(月) 22:30:45
1000get-
997
名前:
デフォルトの名無しさん
:2005/10/10(月) 22:36:51
Win32API質問箱 Build36
http://pc8.2ch.net/test/read.cgi/tech/1128951330/l50
998
名前:
デフォルトの名無しさん
:2005/10/10(月) 22:37:52
また1がOmoti風味か
>>990
> 本来「教授」とは、学問や技芸などをきっちりと体系立てて教える場面に使われる言葉です
変化云々の前に、ここが恣意的なせいで、説得力がないな
999
名前:
デフォルトの名無しさん
:2005/10/10(月) 22:38:42
そろそろ1000か
1000
名前:
デフォルトの名無しさん
:2005/10/10(月) 22:39:38
Win32API質問箱 Build36
http://pc8.2ch.net/test/read.cgi/tech/1128951330/l50
現在中国のウイグル自治区(本来は東トルキスタン)の人々は中国共産党の
圧政下に苦しんでいます。トルキスタンの人々は中国からの圧政への抵抗
と独立を主張していますが中国共産党からテロと一方的に断定され現在も
なお苦しんでいます。
具体的には
・強制中絶によって850万人もの赤ちゃんの虐殺
・核実験によって75万人が放射能で死亡
・50万人を政治犯として処刑・虐殺
・エネルギー資源を一方的に搾取
といった信じられないことをしています。しかしあまり世界では知られていません。
おなじアジアの一員としてそして人間として中国共産党の蛮行に抗議し、
世界の人々に知ってもらい、中国共産党に対する非難世論を呼びかけましょう!!
中国のこの様な政策は近隣諸国の日本や台湾にとっても他人事ではありません。
詳しくはこちらで↓↓↓↓↓
【ウイグル弾圧】VIPPERvs中国 東トルキスタンを救え7
http://ex11.2ch.net/test/read.cgi/news4vip/1128777843/l50
http://www.geocities.jp/saveeastturk/
かつて勇敢な日本兵は戦後インドネシアの独立を助けました。
いまは東トルキスタンの番です!!
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.