Win32API質問箱 Build35
レス数が1000を超えています。これ以上書き込みはできません。
0001Omoti@世界一の大金持ち ◆rzOmotimAo
2005/09/05(月) 01:08:16やさしいお兄さんたちが答えてくれるかも。
∧_∧
( ´∀`) < 0x22
過去スレ、関連リンクは>>2-5くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com)の利用推奨
・APIフックなど高度な事をしたい場合はできるだけAdvencedWindowsを読みましょう
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
-前スレ
Build34:http://pc8.2ch.net/test/read.cgi/tech/1122723009/
0002Omoti@世界一の大金持ち ◆rzOmotimAo
2005/09/05(月) 01:08:56Build33:http://pc8.2ch.net/test/read.cgi/tech/1120153520/
Build32:http://pc8.2ch.net/test/read.cgi/tech/1117271829/
Build31:http://pc8.2ch.net/test/read.cgi/tech/1114762194/
Build30:ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/
Build29:ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/
Build28:ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/
Build27:ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/
Build26:ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/
Build25:ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
Build24:ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
Build23:ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
Build22:ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
Build21:ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
Build20:ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
Build19:ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
Build18:ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/
Build17:ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/
Build16:ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/★
Build15:ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/★
0003Omoti@世界一の大金持ち ◆rzOmotimAo
2005/09/05(月) 01:09:50Build13:ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
Build12:ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
Build11:ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
Build10:ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
Build9:ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
Build8:ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
Build7:ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
Build6:ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
Build5:ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
Build4:ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
Build3:ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
Build2:ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Build1:ttp://pc.2ch.net/tech/kako/991/991576947.html
0004Omoti@世界一の大金持ち ◆rzOmotimAo
2005/09/05(月) 01:10:39http://www.microsoft.com/japan/msdn/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
http://www.google.com/
- WindowsR Server 2003 SP1 Platform SDK Full Download
http://www.microsoft.com/downloads/details.aspx?familyid=EBA0128F-A770-45F1-86F3-7AB010B398A3&displaylang=en
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
Win32 プログラミング入門
http://www7.plala.or.jp/keny01/windows/win32/
Win32 SDK Programming
http://usr_vogel.at.infoseek.co.jp/Win32SDK/
■書籍
Advanced Windows
http://www.amazon.co.jp/exec/obidos/ASIN/4756138055
0005デフォルトの名無しさん
2005/09/05(月) 01:10:540006デフォルトの名無しさん
2005/09/05(月) 01:12:200007デフォルトの名無しさん
2005/09/05(月) 01:14:2134...
0008デフォルトの名無しさん
2005/09/05(月) 01:14:53dat落ちしている過去スレが見れるかも。Part19が見たい人、余裕のある人は●でも買ってやってくれ。
http://makimo.to/cgi-bin/search/search.cgi?q=Win32API&andor=AND&sf=2&H=&view=table&shw=&D=tech
0009デフォルトの名無しさん
2005/09/05(月) 01:24:250010デフォルトの名無しさん
2005/09/05(月) 01:31:35当時、W3CとかGNUとかの翻訳をやったり
ウルティマオンラインの外国サーバーで遊んだりとか
IRCでアメリカ人としゃべったりDiabloで外人と遊んだりとか
インターネット時間の95%を外人と過ごしていたので、彼らにも
覚えやすく、タイプしやすく、短めの名前で日本風のもの、ということで
つけました 昔はあんまりネットに日本人はいなかった 外人向けの名前ということです
0011デフォルトの名無しさん
2005/09/05(月) 01:46:520012デフォルトの名無しさん
2005/09/05(月) 02:04:290013デフォルトの名無しさん
2005/09/05(月) 02:05:350014デフォルトの名無しさん
2005/09/05(月) 02:42:54誰かMSDN専用検索サイト立ち上げてよ
0015デフォルトの名無しさん
2005/09/05(月) 02:50:42下手に誤訳が有る上に更新の遅い資料読むぐらいなら、大元の資料読んだ方がいい
0016デフォルトの名無しさん
2005/09/05(月) 02:57:07たどりつくのが大抵googleからとか、喪前らほんとにそれでいいのかと小一時間(ry
0017デフォルトの名無しさん
2005/09/05(月) 03:12:30今みてみたら見当たらないが、この間は日本語版は検索できなくなってて
直してるから待てと告知されてたが
英語版は正常に機能してるし、問題ないだろ
0018デフォルトの名無しさん
2005/09/05(月) 03:26:59英語版だと日本の単語で検索できないのが問題
英語が得意でも和英は答えが一つじゃない
対訳表もなしにやってられるか
0019デフォルトの名無しさん
2005/09/05(月) 03:39:492、3年前からひっかかってない気がするんだが、まだ直らないのか・・・・。
まあ本気で読みたければローカル版読めばいいから俺個人は別にいいんだが。
0020デフォルトの名無しさん
2005/09/05(月) 03:52:430021デフォルトの名無しさん
2005/09/05(月) 04:12:19Win95で実装されたAPIのドキュメントで英語版しか
無い物があるなんて…
「VisualStudio ver x.xx "日本語版"」って
もう何年前のドキュメントだよ?
Microsoft Japanは仕事する気あるのかなぁ??
0022デフォルトの名無しさん
2005/09/05(月) 05:38:41>1000 :デフォルトの名無しさん [sage] :2005/09/05(月) 02:21:24
>0x3E8だったら秀丸超えるテキストエディタ作る
0023デフォルトの名無しさん
2005/09/05(月) 06:29:11Win32APIのカテゴリがごっそり抜け落ちてたり、メジャーなAPI関数
ですらサイトの検索でヒットしないところを見ると、これは日本法人の
意図が働いていると見るのが妥当だろう。
で、その意図が何かと読み解くと、日本の場合、Win32APIの日本語
ヘルプが充実してしまうと、Borland製品の売れ行きが良くなってしまう
のでは?という仮説に行き着く。
かつて、その圧倒的な生産性の高さから、口コミなどもあって日本では
Delphiの旋風が吹き荒れていた。その名残は数多くのフリーソフトが
Delphi製という形で残ってはいるのだが、そのDelphiも2.0までだったかは
Win32APIの日本語ヘルプが付いていた。
0024デフォルトの名無しさん
2005/09/05(月) 07:08:49あれが出たら書いとこうな。
適当な英語でもきっと通じるから。
I want more documents translated into Japanese.
とか。
0025デフォルトの名無しさん
2005/09/05(月) 08:50:27ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_create.asp
>Return Value
>If an application processes this message, it should return zero to continue creation of the window. If the application returns A?A?1, the window is destroyed and the CreateWindowEx or CreateWindow function returns a NULL handle.
WM_CREATEが飛んできたときにゼロを返すと、ウインドウが生成されないのですが。
で、0以外(-1も含む)を返すと生成されます。
0026デフォルトの名無しさん
2005/09/05(月) 08:56:09コード出せや。エスパーに答えてもらいたいんか?
0027デフォルトの名無しさん
2005/09/05(月) 09:21:37間違ってません。
return 0;でちゃんと作成されます
return -1;でちゃんと破棄されます
おかしいのはアンタのコード
0028デフォルトの名無しさん
2005/09/05(月) 09:22:28あなたのプログラムがおかしい可能性が非常に高いです。
CreateWindowに渡す引数等を見直してみてください。
コールバック関数はちゃんと__stdcallになってますか?
002925
2005/09/05(月) 09:49:02なぜかメッセージクラッカーを使った場合だけ失敗する。
やはりどこかおかしかったみたいです。
0030デフォルトの名無しさん
2005/09/05(月) 09:49:09メモリ上でビットマップを重ね合わせるような
ことが可能なのですか?
0031デフォルトの名無しさん
2005/09/05(月) 09:51:49おかしいのは藻前
メッセージクラッカーの定義を読め
0032デフォルトの名無しさん
2005/09/05(月) 09:59:19BCB6でも付いてるぞ > Win32API日本語ヘルプ
0034デフォルトの名無しさん
2005/09/05(月) 10:05:52はい
0035デフォルトの名無しさん
2005/09/05(月) 10:19:44ていうか、メモリ上で処理できんかったら画像処理がなんもできん
0036デフォルトの名無しさん
2005/09/05(月) 10:31:260037デフォルトの名無しさん
2005/09/05(月) 10:36:41003830
2005/09/05(月) 11:29:05読み込んだビットマップをメモリDC上に
座標を指定して貼り付けることはできますか?
003930
2005/09/05(月) 11:30:33あるなら、その方法を教えてください。
0040デフォルトの名無しさん
2005/09/05(月) 11:31:33004130
2005/09/05(月) 12:16:01ありがとうございます。そうなんですが…。
BitBltの前にSelectObjectでビットマップを当てはめるDCを指定しなくちゃならないので
hBuf2 = CreateCompatibleDC(hdc);
SelectObject(hBuf2 , hBitmap);
BitBlt(hBuf , 0 , 0 , 400 , 200 , hBuf2 , 0 , 0 , SRCCOPY);
の様にhdcに互換するメモリDCを二種類用意しなくてはいけないと思うのですが、
これっていいんですか?
0042デフォルトの名無しさん
2005/09/05(月) 12:17:180044デフォルトの名無しさん
2005/09/05(月) 15:50:070045デフォルトの名無しさん
2005/09/05(月) 15:55:550046デフォルトの名無しさん
2005/09/05(月) 17:28:38HCBT_CREATEWNDを調べてCreateWindow関数や
DialogBoxParam関数で設定したアプリケーションデータを
取得したいのですが、ダイアログボックスの時だけ取得出来ません。
アプリケーションデータは
CBT_CREATEWND→CREATESTRUCT→lpCreateParams
に入ってる筈なのですが。
ちなみにウィンドウの時は取得できましたが、ダイアログボックスの時はNULLが入ってました。
0047デフォルトの名無しさん
2005/09/05(月) 17:31:30DialogBoxParamのパラメータはWM_INITDIALOGで受け取るからそれでは無理なのでは?
004846
2005/09/05(月) 17:49:03DialogBoxParam関数のヘルプを見るとCreateWindowEx関数を使って
ダイアログボックスを作ってると書いてあるんですよね。
つまり、ウィンドウで出来るなら、ダイアログボックスでも出来るんじゃないかと
思ってるんですが…。
0049デフォルトの名無しさん
2005/09/05(月) 18:05:020050デフォルトの名無しさん
2005/09/05(月) 18:05:47WH_MSGFILTERでは駄目なのか?
0051デフォルトの名無しさん
2005/09/05(月) 18:07:29> HCBT_CREATEWND
> 1 個のウィンドウが作成されようとしています。
> システムは、このウィンドウへ WM_CREATE または
> WM_NCCREATE メッセージを送信する前に、
> このフックプロシージャを呼び出します。
「DialogBoxParamはCreateWindowExを使ってるし、それならウィンドウでできるんだからダイアログでもできるハズ」
なんて身勝手な妄想する前にヘルプをちゃんと読め
HCBT_CREATEWNDでフックできるのはWM_CREATE or WM_NCCREATE
これらは普通のウィンドウへ送られるメッセージ
DialogBoxParamに限らず、ダイアログが作られるときに送られるのはWM_INITDIALOG
そもそもメッセージが違うのにフックできるわけが無い
005246
2005/09/05(月) 19:07:01でも、HCBT_CREATEWNDでダイアログボックスが作成されたのを知る事ができ、
そのダイアログボックスのハンドルも取得できるんですよ。
それに、CREATESTRUCT構造体のlpCreateParams以外の値はちゃんと
入っていました。lpCreateParamsだけNULLなのが何故なのかなぁと思いまして。
0053デフォルトの名無しさん
2005/09/05(月) 19:36:12ブラウザに貼り付けた時にMOUSEWHEELを感知できません。
どうやら、ブラウザ本体の方にメッセージが取られて
OCXのプロシージャに到達していないようです。
ちなみに、ACCESSのフォームに貼ったら感知しました。
で、フックを使おうと思い、WH_MOUSEで待ってみると
0x20Aを探知できて、ホイールイベント自体は行えるようになったのですが
ホイールの移動方向の情報が来ません。
しょうがないので、WH_GETMESSAGEで待ってみると0x20A自体が来ませんでした。
WH_MOUSE_LLを使うとDLLを作らないといけないらしいので躊躇しています。
ご存知の方いましたら、解決方法を教えてください。
0054デフォルトの名無しさん
2005/09/05(月) 19:38:29ダイアログボックスはウィンドウクラス(WNDCLASS)がシステム定義のものってだけで
通常のウィンドウと何ら変わりない。
>>52
lpCreateParamsを使わずにパラメータ渡してるんだろ。
0055デフォルトの名無しさん
2005/09/05(月) 19:47:290x3E8だったら秀丸超えるテキストエディタ作る
よろ
0056Mathiz@前スレ1000 ◆Ho9erQuSOQ
2005/09/05(月) 19:56:52必ず作ってこのハンドルで公開宣言します。
0057デフォルトの名無しさん
2005/09/05(月) 19:58:33ガンガレw
005846
2005/09/05(月) 20:01:41> >>52
> lpCreateParamsを使わずにパラメータ渡してるんだろ。
やっぱりそういう結論になりますよね。何でlpCreateParams使ってくれないんですかねぇ。
まぁそれはそれとして、どうも回答有難うございました。
005999
2005/09/05(月) 20:14:11どうですか・・・。
0060デフォルトの名無しさん
2005/09/05(月) 20:15:15おまいらはWM_INITDIALOGをMSDNで調べたりしてないのか?
0061デフォルトの名無しさん
2005/09/05(月) 20:17:58取得できてんのは内部的に呼び出されたCreateWindowExがダイアログを作成した時の
WM_INITDIALOGとDialogBoxParamに伴うlParamのデータはその後でDialogBoxParamから送られる
CREATESTRUCTの中に入ってるわけが無い
>>54
おいおい・・・
0062デフォルトの名無しさん
2005/09/05(月) 20:44:13だから何?
0063デフォルトの名無しさん
2005/09/05(月) 20:58:29ちゃんと調べてたら、DialogBoxParamを使ってるのにCREATESTRUCTだの、
その中のlpCreateParamsだの見ても必要なデータが取得できないと分かるはずだからだろ
006446
2005/09/05(月) 20:58:35つまり、DialogBoxParam関数に伴うlParamのデータは
WM_INITDIALOGメッセージの時に取得できるもの。
↓
HCBT_CREATEWNDではWM_CREATEやWM_NCCREATEをフックする。
↓
DialogBoxParamに伴うlParamのデータはWM_INITDIALOG時に取得
出来るものだから、WM_CREATEやWM_NCCREATEフック時には取得できない。
と、いうことですか?
0065デフォルトの名無しさん
2005/09/05(月) 21:00:15そういうこと、あと渡される構造体データもまったく違う
0067デフォルトの名無しさん
2005/09/05(月) 21:52:35どんな点で秀丸を超えるつもりなんだ?
値段か? アイコンのセンスか?
アイコンのセンスなら結構簡単そうだぞ。
ユーザー数とかなら不可能だ。
0068デフォルトの名無しさん
2005/09/05(月) 22:06:050069デフォルトの名無しさん
2005/09/05(月) 22:21:51いっそフリーにしてしまえばいいし
0070デフォルトの名無しさん
2005/09/05(月) 22:22:460071デフォルトの名無しさん
2005/09/05(月) 22:26:07言うだけならタダだからナ
0072Mathiz ◆Ho9erQuSOQ
2005/09/05(月) 22:26:540073デフォルトの名無しさん
2005/09/05(月) 22:29:530074デフォルトの名無しさん
2005/09/05(月) 22:33:05伏せれてねぇー
0075デフォルトの名無しさん
2005/09/05(月) 22:34:030076デフォルトの名無しさん
2005/09/05(月) 23:11:430077デフォルトの名無しさん
2005/09/05(月) 23:21:070078デフォルトの名無しさん
2005/09/05(月) 23:35:090079デフォルトの名無しさん
2005/09/05(月) 23:43:12しかもわかりやすーw
0080デフォルトの名無しさん
2005/09/06(火) 00:06:320081デフォルトの名無しさん
2005/09/06(火) 01:07:07一応此処。
0082デフォルトの名無しさん
2005/09/06(火) 02:07:11検索のためのキーワードとなる単語や関数名など教えて頂けませんか。
0083デフォルトの名無しさん
2005/09/06(火) 02:19:390084デフォルトの名無しさん
2005/09/06(火) 02:29:560085デフォルトの名無しさん
2005/09/06(火) 11:08:41最小化ボタンなどを持つメインウィンドウが1つ、
残り2つはボタンを一切持たないタイトルバーだけのサブウィンドウという位置付けです。
メインとなるウィンドウ以外から終了させたくないので、
メインとなるウィンドウだけをタスクマネージャの
アプリケーションタブに表示させるにはどうしたら良いのでしょうか?
よろしければ、教えて下さい。
0086デフォルトの名無しさん
2005/09/06(火) 11:26:42サブウィンドウをメインウィンドウの被所有ウィンドウにすればいいんでね?
0087デフォルトの名無しさん
2005/09/06(火) 11:27:56http://www.asahi-net.or.jp/~HA3T-NKMR/vcl3-2.htm
0088デフォルトの名無しさん
2005/09/06(火) 11:35:04被所有ウィンドウとは、サブウィンドウをメインウィンドウの
子ウィンドウとするという事でしょうか?
0089デフォルトの名無しさん
2005/09/06(火) 11:52:54ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowfeatures.asp?frame=true#owned_windows
Owned Windowsのとこ嫁
0090デフォルトの名無しさん
2005/09/06(火) 13:19:510091デフォルトの名無しさん
2005/09/06(火) 13:48:09「オーナーウィンドウ」と「親ウィンドウ」って同じような感じだし
親からみたら子は所有してるわけだし
0092デフォルトの名無しさん
2005/09/06(火) 13:51:040093デフォルトの名無しさん
2005/09/06(火) 13:55:17所有者が親である可能性(複雑な家庭事情)もあるとか
0094デフォルトの名無しさん
2005/09/06(火) 14:02:170095デフォルトの名無しさん
2005/09/06(火) 14:10:49>>85はDelphiかC++Builder使いなさい。
0096デフォルトの名無しさん
2005/09/06(火) 14:46:00解決しました。
メインウィンドウを親にしてみたら、
サブウィンドウのZオーダーが上に来てしまったので、
ダミーの透明親ウィンドウを作って回避しました。
助言、どうもありがとうございました。
0097デフォルトの名無しさん
2005/09/06(火) 14:47:270098デフォルトの名無しさん
2005/09/06(火) 15:15:480099デフォルトの名無しさん
2005/09/06(火) 15:20:24自動バックアップを取るアプリを考えています。
が、MSDNによるとOnIdleはの第一引数lCountは
アイドル状態になって呼ばれるごとに増えるカウンタですよね?
このOnIdleが呼ばれる時間間隔はどのように取得できるのでしょうか?
それとも他の方法を考える必要があるのでしょうか?
ご助言頂けると幸いです。
0100デフォルトの名無しさん
2005/09/06(火) 15:21:120101デフォルトの名無しさん
2005/09/06(火) 15:22:20010299
2005/09/06(火) 15:28:46逝ってきます。
0103デフォルトの名無しさん
2005/09/06(火) 23:01:29メインとなるウインドウ(文字などが表示されるウインドウ)と
チャットを打つためのウインドウで構成されているんですが
チャットのほうがアクティブになるとメインウインドウのほうがアクティブではなくなってしまい
こまっています。チャットウインドウがアクティブの時でもメインウインドウがアクティブになっていてほしいのです。
なんかわかりづらい文章ですいませんが、よろしければ教えてください。
0104デフォルトの名無しさん
2005/09/06(火) 23:43:56常に前面に出すのじゃだめ?
あと質問
AddIPAddressってのあるけどSetしたいときはどうすんの?
0105デフォルトの名無しさん
2005/09/06(火) 23:51:05プログラムが落ちてしまいます。
落ちるのは、リッチエディットを使った時なのですが、
Releaseするときは、使用しているライブラリriched32.dllなどは
用意しないといけないのでしょうか。
0106デフォルトの名無しさん
2005/09/06(火) 23:59:04そんなことないから安心してデバッグしろ。
0107デフォルトの名無しさん
2005/09/07(水) 00:36:06そのメインウィンドウが非アクティブで困る事って何?
0108デフォルトの名無しさん
2005/09/07(水) 06:02:52その出力結果などを自前のウインドウ内で表示(Visual Studioの下の方に出るみたいな形)
させるには、どういうアプローチで取り組めば良いのでしょうか?
検索をするにも何がキーワードとなるのかが分かりません。
0109デフォルトの名無しさん
2005/09/07(水) 06:20:38子プロセスの標準出力を横取りしたい場合
パイプ:CreatePipe()
子プロセスのコンソールアプリを、コンソールなしで実行したい。
CreateProcess()について調べる。
STARTUP構造体のwShowWindowあたりかな。
9x系サポートしないならdwCreationFlagsもありかと思うけど。
0110デフォルトの名無しさん
2005/09/07(水) 06:29:07どんどんリソースが減ってく危険がある
0111109
2005/09/07(水) 06:34:55あと訂正
×STARTUP構造体
○STARTUPINFO構造体
0112デフォルトの名無しさん
2005/09/07(水) 07:24:252k以上ならCREATE_NO_WINDOWもあるけどな。
0114デフォルトの名無しさん
2005/09/07(水) 12:00:540115デフォルトの名無しさん
2005/09/07(水) 12:03:18ハンドルがあったとしたら、逆に「どのウィンドウの」という結びつきはありません。
0116114
2005/09/07(水) 12:10:38なるほどそうなのですか。
やりたいことは、マウスカーソルの下にあるウィンドウのスクロールバーを動かしたいということだったのですが、
こういうケースではどのようにするものなのでしょうか?
0117デフォルトの名無しさん
2005/09/07(水) 12:17:48ttp://forums.belution.com/ja/vc/000/324/98.shtml
0118114
2005/09/07(水) 12:31:11ウィンドウハンドルさえ取れればメッセージを送ってなんとかなるだろうと思っていたのですが、甘いようですね。
とても参考になります。ありがとうございます。
ただ大変恐縮なのですが、それ以前に「マウスカーソルの下にあるウィンドウを取得」する方法がわからないのです・・・
0119デフォルトの名無しさん
2005/09/07(水) 12:38:33ChildWindowFromPoint
WindowFromPoint
0121デフォルトの名無しさん
2005/09/07(水) 16:19:58自分のコンピューターが参加している
ワークグループ名またはドメイン名を
取得したいのですが、そのような情報を
取得するAPIはありますか?
0122デフォルトの名無しさん
2005/09/07(水) 16:42:14ttp://www.google.com/search?num=50&hl=ja&q=%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E5%90%8D+%E5%8F%96%E5%BE%97+API&lr=lang_ja
0123デフォルトの名無しさん
2005/09/07(水) 20:16:22ListView を2つwindow に引っ付けているのですが、
どちらのListViewが、選択されているかを知りたいのですが、
どうすれば分かるのでしょうか・
ListView_GetItemState(HWND,item,LVIS_FOCUSED)
でしらべても、両方のリストから、選択されてしまうのです。
0124デフォルトの名無しさん
2005/09/07(水) 20:22:240125デフォルトの名無しさん
2005/09/07(水) 20:23:59Form1.ActiveControl
0126デフォルトの名無しさん
2005/09/07(水) 20:25:13>>123 どっちも選択されてない場合もあるかもよ
0127デフォルトの名無しさん
2005/09/07(水) 20:51:01>>124-126さんありがとうございます。
GetFocus()でできました。
他は、試してないのですが。
0128デフォルトの名無しさん
2005/09/07(水) 20:53:20GetFocusで十分
>>125なんぞVB.NETじゃし
0129デフォルトの名無しさん
2005/09/07(水) 21:20:15Form1って名前から察するにVCLのTCustomForm.ActiveControlじゃね?
0130デフォルトの名無しさん
2005/09/07(水) 21:36:45Delphiスレに引きこもってろ。こっちにまで出てくんな
0131デフォルトの名無しさん
2005/09/07(水) 21:38:14Form1って言われたら真っ先にVBが出てくら
あの糞VB、新規プロジェクト作ったら問答無用でForm1とかダサい名前付けやがんの
0132デフォルトの名無しさん
2005/09/07(水) 21:41:53http://www.g.dendai.ac.jp/lecture/vbasic/img/vb02/fig07.gif
0133デフォルトの名無しさん
2005/09/07(水) 21:43:110134デフォルトの名無しさん
2005/09/07(水) 22:04:14LineToで線をメモリDCに書き込んで表示しようと思ったんですが、
表示できないみたいなんです。仕様ですか?
0135デフォルトの名無しさん
2005/09/07(水) 22:15:290136デフォルトの名無しさん
2005/09/07(水) 22:29:06メモリDCに書くだけじゃ表示しない
0137134
2005/09/07(水) 22:43:15hBitmap = CreateCompatibleBitmap(hdc , 400 , 500);
hBuf = CreateCompatibleDC(hdc);
SelectObject(hBuf , hBitmap);
こんな感じでビットマップに描画してます。
なぜ描画されないんでしょうか?
0138デフォルトの名無しさん
2005/09/07(水) 22:46:53/ :::\
. | (○), 、(○)、 .:|
| |_, .:::|
. | r―-、 .:::::::| ・・・
\ `ニニ´ .:::::/
/`ー‐--‐‐―´\
0139134
2005/09/07(水) 22:52:19自分でもよく分からん様なってきた。
逝ってきます。
0140デフォルトの名無しさん
2005/09/07(水) 22:59:220141デフォルトの名無しさん
2005/09/07(水) 23:00:580142デフォルトの名無しさん
2005/09/07(水) 23:02:239xでDOSプロセスを走らせたコンソール窓は
中のDOSプロセスが終了しててもキーを押すまで閉じなかったような。
もちろん隠してたら閉じられない
0143デフォルトの名無しさん
2005/09/07(水) 23:05:34DOS窓上でEXEを指定して実行したならそうだが、
EXEをダブルクリックで開いたDOS窓なら勝手に消える
0144デフォルトの名無しさん
2005/09/07(水) 23:32:23コモンコントロール(リストビュー等)を作成する方法がありましたら教えてください。
一般的には RegisterClassExA() と RegisterClassExW() のどちらで
ウィンドウクラスを登録したかで決定されるということですが、システムが
用意しているウィンドウクラスについてはどのような扱いになっているのでしょう。
UNICODE が #define されていたら、自動的に CreateWindowExA() が呼ばれて、その結果
ANSI 版のコントロールが作成されると思っていたのですが、どうやらそうではないようで…。
0145デフォルトの名無しさん
2005/09/07(水) 23:45:41いや、コマンドプロンプトに戻るのを言ってるんじゃなくて
「この窓を閉じるには何かキーを押してください…」とか何とか出て
止まった記憶があるんだが。
.pifファイルの設定によるんだっけ
0146デフォルトの名無しさん
2005/09/08(木) 00:04:24無理なんじゃない?
NT系では全てUNICODEとして作られてると思うよ。
0147146
2005/09/08(木) 00:07:54comctl32.dllのインポートテーブル見てみたけどRegisterClassExA自体無かった。
0149デフォルトの名無しさん
2005/09/08(木) 03:11:08WM_PAINT で呼ばれたウインドウに対して、BeginPaint() を始めたとき
その HDC に、作っておいたビットマップの絵を移せばイイのでは。
BeginPaint() の度に LineTo() とかするのは鬱陶しいので、動画でない
なら予め絵を作っておいて、ウインドウの GWL_USERDATA に持たせておいて
WM_PAINT のときはその絵を取り出して移すと、作った絵であろうと読み込んだ
絵であろうと WM_PAINT の処理が簡単になる。
0150デフォルトの名無しさん
2005/09/08(木) 10:59:42バカ?
RegisterClassExはuser32だ・・・
そんでもってWもAも両方とも有るわ・・・
>>148
UNICODEのCreateWindowやら使ってやればIsWindowUnicodeはTRUEを返す
ANSIの関数使って作ればIsWindowUnicodeはFalseを返す
0151デフォルトの名無しさん
2005/09/08(木) 11:16:14すごく勘違いしてるぞ。
0152デフォルトの名無しさん
2005/09/08(木) 11:17:45ボーランドとすれば、ボーランドがカネをだして
日本語訳をすすめればいいんだ
それくらいのカネはあるだろう
0153デフォルトの名無しさん
2005/09/08(木) 11:50:19GetTextExtentPoint32を使って座標を調整しながら色ごとに分けた文を
順番に表示していくしかないですかね…?
例えば、"あいうえお"の"あい"を青、"う"を赤、"えお"を黒で表示したい時です。
0154デフォルトの名無しさん
2005/09/08(木) 11:53:540155デフォルトの名無しさん
2005/09/08(木) 11:57:060156デフォルトの名無しさん
2005/09/08(木) 13:00:520157デフォルトの名無しさん
2005/09/08(木) 16:20:17http://msdn.microsoft.com/library/default.asp?url=/library/en-us/apippc/html/ppc_urlmon3_cnxd.asp
コードは、次のような感じで実装しています。
URLDownloadToFileW( NULL , L"data.dat" , L"http://SAVE_URL" , 0 , NULL ) ;
一応これで機能は果たすんですが、エラーや回線の状況などを考慮してコールバックして状況を取得したいんですが、
その方法がわかりません。
サンプルなど、参考になりそうな情報がありましたら、教えてください。
よろしくお願いします。
0158デフォルトの名無しさん
2005/09/08(木) 16:22:25自分でもよく分からん様なってきた。
逝ってきます。
0159デフォルトの名無しさん
2005/09/08(木) 16:41:47COMインタフェイスの実装の仕方はわかる?
0160デフォルトの名無しさん
2005/09/08(木) 16:46:00・IBindStatusCallbackを実装する
・そいつのインスタンスをURLDownloadToFileの最後に引数に渡す
・ダウンロード経過に応じてIBindStatusCallback::OnProgressが呼ばれるので、そこで好きにする
0161157
2005/09/08(木) 17:14:13160さん
レスありがとうございます。
>160
>・IBindStatusCallbackを実装する
>・そいつのインスタンスをURLDownloadToFileの最後に引数に渡す
>・ダウンロード経過に応じてIBindStatusCallback::OnProgressが呼ばれるので、そこで好きにする
「IBindStatusCallback」インスタンス化する方法がわかっていません。
とりあえず次のような感じで書いてみましたが・・・
#include <atlfile.h>
class CURLDownloadCB : public CBindStatusCallback<CURLDownloadCB>
{
}
compileしますと、次のようなエラー出てしまい先に進めずにいます。
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlctl.h(3403) : error C2039: '_ThreadModel' : 'CURLDownloadCB' のメンバではありません。
c:\prj\test.h(121) : 'CURLDownloadCB' の宣言を確認してください。
c:\prj\test.h(122) : コンパイルされたクラスのテンプレートのインスタンス化 'ATL::CBindStatusCallback<T>' の参照を確認してください
with
[
T=CURLDownloadCB
]
(このあとエラーが続きます)
恥ずかしながら、C++のテンプレートの理解が乏しく解決できずにいます。
参考になりそうなサンプルコードなどがどこかにありましたら紹介いただけないでしょうか。
よろしくお願いします。
0162デフォルトの名無しさん
2005/09/08(木) 23:47:04マジックナンバー的な定数とかありますか?
もし無い場合、取得する方法はありますか?
よろしくお願いしますえろいお兄さん。
0163160
2005/09/09(金) 19:07:28私はATLを使わずに自前でIBindStatusCallbackを実装したクラスを作りました。
class CBindStatusCallbackImpl : public IBindStatusCallback {.…}
使うときはnewしたオブジェクトをAPIに渡すだけです。
ATLのCBindStatusCallbackを使ったサンプルであればMSDNにあるようです。
私は使ったことがありませんが、一度見てみてはどうでしょうか。
ASYNC サンプル : データの非同期ダウンロード
ttp://www.microsoft.com/japan/msdn/library/ja/vcsample/html/_sample_atl_ASYNC.asp?frame=true
0164デフォルトの名無しさん
2005/09/09(金) 21:29:41http://home.inreach.com/mdunn/code/URLDownload/URLDownload.html
0165デフォルトの名無しさん
2005/09/10(土) 13:23:34注意点とかあれば教えてください。
0166デフォルトの名無しさん
2005/09/10(土) 13:28:080167名無しさん@そうだ選挙に行こう
2005/09/10(土) 17:35:28たしかスレッド単位でフックしたと思ったから理論上はコンソールアプリにでもフックできる…はずだが
キーボードとかマウスメッセージなんてのをフックしようとしてないだろうな
そもそも単なるコンソールアプリだけであればメッセージそのものが無関係というか…
あと、SetWindowsHookExするのはDLLですよってのは大丈夫だな、きっと。
0168名無しさん@そうだ選挙に行こう
2005/09/10(土) 18:48:11もちろんDLLを作ってる。
コンソールアプリでなければフックできてる。
0169名無しさん@そうだ選挙に行こう
2005/09/10(土) 19:28:09ドラッグ中だったらそれを解除することがやりたいのですが
なにかいい方法はありませんか。
0170165
2005/09/10(土) 19:57:26http://with2ch.net/up/data/1126349655.zip
GetProcAddressをAPIフックします。
GetProcAddressが呼ばれたときにOutputDebugStringで出力するだけのものです。
実行すると、タスクトレイに入り、左クリックでメニューを出して終了するまで常駐し続けます。
しかし、コンソールアプリには効果がありません。
どうにかできませんかね。
0171名無しさん@そうだ選挙に行こう
2005/09/10(土) 23:27:29user32.dllを使わないプロセスはSetWindowsHookExやAppInit_DLLsでは
フックできません。CreateRemoteThreadでどうぞ
0172名無しさん@そうだ選挙に行こう
2005/09/10(土) 23:29:24ドラッグ開始時にSetCaptureすればその後のマウスメッセージはすべて
キャプチャしたウィンドウに来るのでWM_MOUSEMOVEでウィンドウ外に出たかどうか
判定できます。
0173165
2005/09/11(日) 00:29:37WindowsMEで使う予定です。
CreateRemoteThreadが使えません。
WriteProcessMemoryでターゲットを書き換えて、
LoadLibraryでuser32.dllをロードさせた後ならSetWindowsHookEx
でフックできるでしょうか。
0174名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:46:23> WindowsMEで使う予定です。
じゃああとはDebugActiveProcessくらいしかないなあ。
デバッガを切り離せないからDebugActiveProcessはダメなら
コンソールプログラムをフックできる移植性のある公開された方法はないと思う。
> LoadLibraryでuser32.dllをロードさせた後なら
どうやるつもりなのか知らんけどuser32.dllをロードさせられるんだったら
そこで直接ターゲットのDLLをロードしたほうが早いんじゃない?
0175デフォルトの名無しさん
2005/09/11(日) 06:24:46wavを鳴らそうと思ったのですが、再生した瞬間だけがくっと処理落ち(?)します。
mciSendCommand, WaveOut〜, PlaySoundをそれぞれ試してみたのですが、同じように処理落ちしました。
またマルチスレッドも使ってみましたが、やはり処理落ちしました。
試しにHSPで似たようなことをすると、ちゃんと処理落ちせずに再生できるようなので環境の問題ではないかと思うのですが、
具体的にどうしたら処理落ち回避できるのか見当もつかず途方にくれているしだいです。
処理落ちを回避するにはどうしたらいいでしょうか? よろしくお願いします。
0176名無しさん@そうだ選挙に行こう
2005/09/11(日) 06:56:45>WM_MOUSEMOVEでウィンドウ外に出たかどうか 判定
SetCapture()の後、WM_MOUSEMOVE中にPtInRect()を使ったらできました。
ありがとうございます。
WM_MOUSEMOVEに色々処理を書くと動作が重くなったり
CPUの使用率が上がってしまうと思うんですが
これはしょうがないんでしょうか。
0177名無しさん@そうだ選挙に行こう
2005/09/11(日) 07:59:050178名無しさん@そうだ選挙に行こう
2005/09/11(日) 09:29:51SND_MEMORYフラグ立ててやれば処理落ちせんと思うが‥‥
0179178
2005/09/11(日) 09:32:59void __fastcall TForm1::PlayResourceSound(const AnsiString& name)
{
//TODO: この下にコードを追加してください
TResourceStream* resource = new TResourceStream(reinterpret_cast<int>(HInstance), name.c_str(), "WAVE");
sndPlaySound(reinterpret_cast<char*>(resource->Memory), SND_MEMORY | SND_SYNC);
delete resource;
}
0180名無しさん@そうだ選挙に行こう
2005/09/11(日) 09:48:08あらかじめTMemoryStreamに読み込んでおいたらどうなるの?
0181名無しさん@そうだ選挙に行こう
2005/09/11(日) 10:00:45文字列を受け取らずに、文字の長さだけ受け取りたい場合のapiはありますか?
0182名無しさん@そうだ選挙に行こう
2005/09/11(日) 10:08:44MSDNでその1つ2つ下にあるAPIが見えませんか?
0183名無しさん@そうだ選挙に行こう
2005/09/11(日) 11:35:06TResourceStreamもTMemoryStreamもTCustomMemoryStreamの派生クラスだろうが。
MemoryプロパティはTCustomMemoryStreamのメンバだし。
0184175
2005/09/11(日) 12:55:32SND_MEMORY | SND_SYNC
SND_MEMORY | SND_ASYNC | SND_NOSTOP
SND_MEMORY | SND_SYNC | SND_NOSTOP
とか多少いじくってみましたが変化なしでした。
ただSND_MEMORY | SND_ASYNC | SND_LOOPで最初に一回だけ再生してやると
でれれれれれれれって感じでスムーズに連続再生されます。
もしかしてPlaySoundの連続使用は拙かったでしょうか?
0185175
2005/09/11(日) 13:30:26ctrl+F5で普通に実行するとがくがくすることもなく綺麗に再生されました。
うーん。
大変お手数をかけて申し訳ありませんでしたorz
ちなみにdebugモードで実行すると処理落ちどころか目も当てられな
0186名無しさん@そうだ選挙に行こう
2005/09/11(日) 13:32:17( ゚ Д゚) ガシャ
( つ O. __
と_)_) (__()、;.o:。
゚*・:.。
0187名無しさん@そうだ選挙に行こう
2005/09/11(日) 15:34:34/つ_,∧ 〈( ゚д゚)
|( ゚д゚) ヽ ⊂ニ) こりゃひどい
ヽ__と/ ̄ ̄ ̄/ |
 ̄\/___/ ̄ ̄
0188名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:59:51コントロールパネルのサウンドで設定している「メッセージ(警告)」とかのアレです。
0189名無しさん@そうだ選挙に行こう
2005/09/11(日) 17:02:210191名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:15:00IDR_IMAGE1 IMAGE "p1.pic"
で組み込んだリソースにアクセスしようと思い
FindResource(hInstance, TEXT("IDR_IMAGE1"), TEXT("IMAGE"));
と書いたのですが NULL が返って来てしまいました
その後、試行錯誤で
第1引数を hInstance -> NULL に
第2引数を TEXT("IDR_IMAGE1") -> MAKEINTRESOURCE(IDR_IMAGE1)
第3引数を TEXT("IMAGE") -> RT_RCDATA
としたのですが、未だ有効なリソースハンドルを取得できないでいます
実行ファイルのサイズからは、p1.pic は組み込まれているとは思うのですが、何か他に必要な事柄があるのでしょうか?
あと VS.NET2003 は jpg をリソースの中に入れようとすると強制的に 256 色 BMP に変換するのがウザイです
0192名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:43:570193191
2005/09/11(日) 19:55:080194名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:01:070195191
2005/09/11(日) 20:05:50文字列直接入れてる解説サイトもあったんで、これが直接の原因ではないとは思うんですが……
……ソース UP した方が良いですか?
0196名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:17:290197名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:21:11どちらも定義無し _MBCS _UNICODE
_TCHAR char char wchar_t
_TINT int int wint_t
_TSCHAR signed char signed char wchar_t
_TUCHAR unsigned char unsigned char wchar_t
_TXCHAR char unsigned char wchar_t
_T または _TEXT 影響なし 影響なし L(次の文字または文字列を対応する Unicode に変換する)
OK?
0198名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:25:13これじゃね?
拡張子変えてもファイルの内容が変わるわけじゃないのはわかってるよね?
0199191
2005/09/11(日) 20:28:44ttp://66.102.7.104/search?q=cache:j-h9rzifXsUJ:www2.ocn.ne.jp/~cbmaho/homepage/vc/Help/WINDOWSH.htm+%22%23define+TEXT(quote)%22&hl=ja&inlang=ja
大丈夫。だとおもう。
>>198
だから .jpg でリソースのインポートをすると bmp に変換されちゃうんだって
任意のファイル形式を入れられるんだから、ファイル名を変えても動作しなくちゃおかしい筈
0201名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:43:34FindResource(hInstance, TEXT("IDR_IMAGE1"), TEXT("IMAGE"));
これを
FindResource(hInstance, TEXT("IDR_IMAGE1"), RT_RCDATA);
でやって見てくれる?
0202名無しさん@そうだ選挙に行こう
2005/09/11(日) 21:17:160203名無しさん@そうだ選挙に行こう
2005/09/11(日) 21:18:37ReadDirectoryChangesW, FindFirstChangeNotification + WaitForMultipleObjects など見てみましたが、どうも複数ディレクトリに指定したファイルを・・・には向かないような感じです。
FindFirstFile, FindNextFile をぐるんぐるんまわすのが楽そうなんですが、これだと処理的に無駄が増えてしまうんでしょうか?
この場合、検索にワイルドカードは使用しません。
0204191
2005/09/11(日) 21:18:50ソース上げてみます
ttp://www2.ranobe.com/test/src/up2724.zip.html
0205名無しさん@そうだ選挙に行こう
2005/09/11(日) 21:25:01>どうも複数ディレクトリに指定したファイルを・・・には向かないような感じです。
そう感じた理由は?
0206名無しさん@そうだ選挙に行こう
2005/09/11(日) 21:33:24ReadDirectoryChangesW の場合片方のディレクトリしか監視できず、
FindFirstChangeNotification の場合ファイルが見つかった後また別のファイルを監視したい時に間が生じるのではないかと。
できればスレッド一つで済ましたいんですが、スレッド増やしたほうが現実的でしょうか。
0207名無しさん@そうだ選挙に行こう
2005/09/11(日) 21:40:25見る限りでは、スレッド1つでも平気なような気がするけど
0208名無しさん@そうだ選挙に行こう
2005/09/11(日) 22:55:00HRSRC hImgRc = FindResource(NULL, MAKEINTRESOURCE(IDR_IMAGE1), "IMAGE");
でやってみな?
0209名無しさん@そうだ選挙に行こう
2005/09/11(日) 23:03:01thx。やっと有効なハンドルが取得できました m(_ _)m
"IDR_IMAGE1" じゃ駄目だったのか……
ちなみに "IMAGE" を RT_RCDATA や RT_BITMAP に変えたらアウトでした
相変わらず挙動が不明ですな orz
0210デフォルトの名無しさん
2005/09/12(月) 02:10:59VB6でメモリ上にテキストを描画してそれをフォーム上にコピーしてるんですが
ビットマップ作成時のサイズを設定するためにGetTextExtentPoint32を行うと
フォーム上に表示されたテキストにアンチエイリアスがかかりません。
GetTextExtentPoint32を行わないとアンチエイリアスがかかります。
なぜなんでしょうか?
hMemDC = CreateCompatibleDC(Form1.hdc)
SetBkMode hMemDC, OPAQUE
SetBkColor hMemDC, RGB(255, 0, 0)
SetTextColor hMemDC, RGB(255, 255, 0)
hFont = CreateFont(48, 0, 0, 0, _
FW_NORMAL, 0, 0, 0, _
DEFAULT_CHARSET, _
OUT_DEFAULT_PRECIS, _
CLIP_DEFAULT_PRECIS, _
ANTIALIASED_QUALITY, _
DEFAULT_PITCH Or FF_DONTCARE, _
"MS Pゴシック")
SelectObject hMemDC, hFont
GetTextExtentPoint32 hMemDC, txt, LenB(txt), udtSIZE
hBitmap = CreateCompatibleBitmap(Form1.hdc, udtSIZE.cz, udtSIZE.cy)
SelectObject hMemDC, hBitmap
TextOut hMemDC, 0, 0, txt, LenB(StrConv(txt, vbFromUnicode))
BitBlt Form1.hdc, 0, 0, udtSIZE.cx, udtSIZE.cy, hMemDC, 0, 0, SRCCOPY
0211デフォルトの名無しさん
2005/09/12(月) 02:56:050212デフォルトの名無しさん
2005/09/12(月) 03:45:120213デフォルトの名無しさん
2005/09/12(月) 06:51:43不明じゃないだろ
TYPE IMAGEのリソースとして取り込んでるんだから、
RCDATAやらBITMAPやら他のタイプ指定してもダメなんは当たり前だよ
ちゃんとIDR_IMAGE1で登録してるのに、名前指定で取れないのが不思議だが
まぁ、文字列での指定より整数識別子での指定を推奨してるし、いいんじゃね?
0214デフォルトの名無しさん
2005/09/12(月) 20:41:38RichTextで行間変えるにはどーすればいいんですかね
0215デフォルトの名無しさん
2005/09/12(月) 20:58:570216デフォルトの名無しさん
2005/09/12(月) 21:17:59よくわからないが、GetTextExtentPoint32を無効にしたときの
コードを出せ、といいたい。
0217デフォルトの名無しさん
2005/09/12(月) 22:06:10無効にしたときのコードは、
GetTextExtentPoint32をコメントにして
CreateCompatibleBitmapの第2、3引数に
数値を直接入れてやりました。
0218デフォルトの名無しさん
2005/09/13(火) 02:18:080219デフォルトの名無しさん
2005/09/13(火) 04:44:06・メモリ使用量デルタ
・最大メモリ使用量
・ページフォルト
・ページフォルトデルタ
・仮想メモリサイズ
・ページプール
・非ページプール
タスクマネージャにて見られる、これらの項目について解説してる文書などはありますか?
0220デフォルトの名無しさん
2005/09/13(火) 08:15:360221デフォルトの名無しさん
2005/09/13(火) 08:54:59SHGetFileInfo
0222デフォルトの名無しさん
2005/09/13(火) 15:46:418割方エラーになり、最悪ハング(フリーズ)します。
ハブ接続故にCOMポートからのレスポンスに遅れがある為?ではないかと
思うのですが、何か好い解決策はありませんか?
ちなみに、ハブ無しでPCに直接接続した場合はエラーしません。
(あたりまえですが。。。)
0223デフォルトの名無しさん
2005/09/13(火) 16:16:21ハブかそのデバイスがなんかおかしいのかね・・・
ハブを変えてみるとか、
バスパワーハブなら、セルフパワーにしてみるとかで、様子は変わらない?
0224218
2005/09/13(火) 16:22:15SHGetFileInfo('C:\Hoge.txt', 0, sfi, SizeOf(sfi), SHGFI_ICONLOCATION);
としても、sfi.szDisplayName は空(szDisplayName[0] が NULL) でした。
与えるパスがフォルダの場合は成功するのですが・・・
0225デフォルトの名無しさん
2005/09/13(火) 16:27:45そのハブが悪い。別ので試してみ?
0226デフォルトの名無しさん
2005/09/13(火) 16:49:18>>225さん
レス、ありがとうございますm(__)m
使っているハブはELECOM社のU2H-G4SSVと、LOAS社のUH-284Wで、
ELECOMの方が若干エラーする確率が低いような気がしますが、
どちらも基本的には同じ状況です。
また、どちらともセルフパワーで使用しており電流容量的には
問題無しです。
何か他に試してみることありますか?
0227デフォルトの名無しさん
2005/09/13(火) 17:15:51メーカーのサイトに、新しいドライバないかとか
テキトーなことしか言えないなー、スマソ
0228デフォルトの名無しさん
2005/09/13(火) 18:47:07ListView_SetExtendedListViewStyleで
拡張スタイルにLVS_EX_GRIDLINESです
0229デフォルトの名無しさん
2005/09/13(火) 18:48:22JPGを読み込むにはどうすればよいでしょうか?
0230デフォルトの名無しさん
2005/09/13(火) 18:50:31ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/922.txt
上の本に載っていたソースを忠実に打ったのですが、WM_PAINTメッセージの処理を無限に行ってしまいます。
何度も見ながらチェックしていますがどこを打ち間違えたのかさっぱりわかりません....。
どなたかどこが異なっているか指摘をお願いします。
0231デフォルトの名無しさん
2005/09/13(火) 18:54:47コピーしろ。
0232デフォルトの名無しさん
2005/09/13(火) 18:59:200233デフォルトの名無しさん
2005/09/13(火) 19:09:52OleLoadPictureとかGDI+とか
0234デフォルトの名無しさん
2005/09/13(火) 19:13:02オリジナルとかなり違ってるな
メッセージループの間違いが致命的
0235デフォルトの名無しさん
2005/09/13(火) 19:31:54TResourceStream* res = new TResourceStream(HInstance, "JpegImg1", "RT_RCDATA");
TJpegImage::LoadFromStream(res);
0236230
2005/09/13(火) 19:36:09DispatchMessageが抜けていました。
ありがとうございました。
0237デフォルトの名無しさん
2005/09/13(火) 22:43:07最初にひらがながわらわら出てきて、
スペースを押して、変換を確定しますよね。
私が知りたいのは、その変換を確定したこ
とを知らせるWM_XXXです。
MSDNで調べているのですが、なかなか知
りたい情報にたどり着けません。
なにか検索のヒントとなる単語を教えていただけませんか?
0238デフォルトの名無しさん
2005/09/13(火) 22:46:120239デフォルトの名無しさん
2005/09/13(火) 22:47:390240デフォルトの名無しさん
2005/09/13(火) 23:07:46WM_IME_NOTIFY
WM_IME_ENDCOMPOSITION
WM_IME_SETCONTEXT
とりあえず、こんだけ見つけてきました。
これから調べてきます。
ヒントありがとうございました。
0241デフォルトの名無しさん
2005/09/13(火) 23:22:34移動する、という理解でいいんだよね?(実際、やってみると、そうなっているようだし)
いや、MSDNには
>Note You can use SetFilePointer to determine the length of a file. To do this,
>use FILE_END for dwMoveMethod and seek to location zero.
とあって、「seek to location zero」(←先頭に移動???)ってのが気になって...
0242デフォルトの名無しさん
2005/09/13(火) 23:35:350243デフォルトの名無しさん
2005/09/13(火) 23:40:410244デフォルトの名無しさん
2005/09/13(火) 23:44:26MSDNの日本語訳
>SetFilePointer 関数を使って、ファイルの長さを判断することもできます。
>この場合、dwMoveMethod パラメータで FILE_END を指定し、
>位置 0(ファイルの先頭)への移動を行います。
FILE_ENDの0位置だから、ファイルの最後が正しいと思われ。
0245デフォルトの名無しさん
2005/09/13(火) 23:45:020246デフォルトの名無しさん
2005/09/13(火) 23:56:39dwMoveMethodにFILE_ENDを指定、そしたら位置0へシークするですぅ
キモイ訳を考えてるうちに先を越されるは、MSDN日本語版に掲載されてるわで散々ですわ
http://www.microsoft.com/japan/msdn/library/ja/jpfileio/html/_win32_setfilepointer.asp
0247デフォルトの名無しさん
2005/09/13(火) 23:59:230248デフォルトの名無しさん
2005/09/14(水) 00:00:240249デフォルトの名無しさん
2005/09/14(水) 00:03:08訳した人が>>241と同レベルだったんじゃね?
0250デフォルトの名無しさん
2005/09/14(水) 00:04:58何を訳しているのか知らない人に外注出してんだろーねー
0251デフォルトの名無しさん
2005/09/14(水) 00:29:100252デフォルトの名無しさん
2005/09/14(水) 01:22:54根本的な解決になっていないらしい。
0253デフォルトの名無しさん
2005/09/14(水) 02:21:53新入社員にやらせることじゃないだろ…
本国はMSDNを新人に書かせてたり社外に丸投げしてるのか? そんなわけないだろうに
0254デフォルトの名無しさん
2005/09/14(水) 04:19:06ごちゃごちゃごちゃっ............................................。
0255デフォルトの名無しさん
2005/09/14(水) 05:09:100256デフォルトの名無しさん
2005/09/14(水) 05:20:56| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0257デフォルトの名無しさん
2005/09/14(水) 05:28:530258デフォルトの名無しさん
2005/09/14(水) 05:31:070259デフォルトの名無しさん
2005/09/14(水) 07:40:440260デフォルトの名無しさん
2005/09/14(水) 08:30:030261デフォルトの名無しさん
2005/09/14(水) 09:01:070262デフォルトの名無しさん
2005/09/14(水) 09:21:120263デフォルトの名無しさん
2005/09/14(水) 09:50:38すべてあります。
0264デフォルトの名無しさん
2005/09/14(水) 10:04:28標準では付いていません。
>>262
相性問題が多発しているのでサポート外です。
0265デフォルトの名無しさん
2005/09/14(水) 11:10:120266デフォルトの名無しさん
2005/09/14(水) 11:11:260267デフォルトの名無しさん
2005/09/14(水) 12:14:210268デフォルトの名無しさん
2005/09/14(水) 12:21:58今日からあなたもLUNAスタイル!! 月に代わっ(ry
0269237 == 240
2005/09/14(水) 14:13:29ここから見つけてきました。
>IME関連のメッセージで
>開始と終了を示すのは以下のふたつです。
>WM_IME_STARTCOMPOSITION
>変換を開始した時のみこのメッセージが送られます。
>WM_IME_ENDCOMPOSITION
>変換を終了した時のみこのメッセージが送られます。
変換終了メッセージは
WM_IME_ENDCOMPOSITION
なんですね。
ためになりました。
0270デフォルトの名無しさん
2005/09/14(水) 14:19:54整数を取得するには GetDlgItemInt を使用すればいいのですが
浮動小数がわからなくて
0271デフォルトの名無しさん
2005/09/14(水) 14:24:29APIは用意されてない
GetDlgItemTextで文字列として取得して変換
0272270
2005/09/14(水) 15:25:58答えてくれてありがとうございました。
>GetDlgItemTextで文字列として取得して変換
とあるのですが、C言語の atof のようなAPIはあるのでしょうか?
答えてもらって今までずっとググっていたんですが 見つけられなくて
0273デフォルトの名無しさん
2005/09/14(水) 15:27:20ExtractAssociatedIcon()ってのがある。
バグ持ちなのか、期待通りの動作をしてくれないんで使えないけどな。
結局、同等の関数を自作して実装してるよ。
0274デフォルトの名無しさん
2005/09/14(水) 15:44:24atof使えば良いかと・・・
0275デフォルトの名無しさん
2005/09/14(水) 16:05:040277デフォルトの名無しさん
2005/09/14(水) 16:27:41アドレス帳も.wabファイルを読み込んで、アドレスだけテキストに変換したいのです。
こういうプログラムを作りたいのですが、どうやって良いのかさっぱり分かりません。
手動で出来るのは分かるのですが、プログラムだとどうやるのでしょう?
0278デフォルトの名無しさん
2005/09/14(水) 16:28:32相当するAPIなぞ無いのだから、
どのみちatofのような各言語に用意された型変換関数を使うしかあるまい
0279デフォルトの名無しさん
2005/09/14(水) 16:29:220280270
2005/09/14(水) 17:18:33API には atof のようなものはないんですね・・・
0281デフォルトの名無しさん
2005/09/14(水) 17:29:360282デフォルトの名無しさん
2005/09/14(水) 18:31:55for(i=0;i<1000;i++){
ReadProcessMemory(hProcess, (LPVOID)dwPtr, &dwMl, 0x4, NULL);
printf("%x\",dwMl);
dwPtr = dwPtr + 0x4;
}
こんな感じにするとめちゃめちゃメモリにアクセスする回数増えるので
ReadProcessMemory(hProcess, (LPVOID)dwPtr, &dwMl, 0xFA0, NULL);
って感じに一気に読み込んでから4byteずつ見た方がいいかなーって思ってるんですが、
どうやって4byteずつ読み込んでいくかわかりません。
なんかうまいやり方ありませんか?
0283デフォルトの名無しさん
2005/09/14(水) 18:35:28ポインタ使ってるじゃないか
0284デフォルトの名無しさん
2005/09/14(水) 18:58:10char[4000]とかにして4文字ずつとってatoiすればいいのかな・・・
0285デフォルトの名無しさん
2005/09/14(水) 19:02:020286デフォルトの名無しさん
2005/09/14(水) 19:05:290287デフォルトの名無しさん
2005/09/14(水) 20:07:300288デフォルトの名無しさん
2005/09/14(水) 20:14:540289デフォルトの名無しさん
2005/09/14(水) 20:16:490290デフォルトの名無しさん
2005/09/14(水) 22:15:030292273
2005/09/15(木) 03:25:15おまいさんはMSDNに目を通したのかと小一時間(ry
If the icon is extracted from an associated executable file,
the function stores the full path and file name of the executable file in the string pointed to by lpIconPath,
and stores the icon's identifier in the WORD pointed to by lpiIcon.
って書いてあるだろ。
・・・まぁ、>>273の通りなんで、結局は役に立たないけどな。
0293287
2005/09/15(木) 07:02:210294デフォルトの名無しさん
2005/09/15(木) 09:34:28たとえばMAPI?
見てないけど。
FILE: Windows Address Book (WAB) Documentation
http://support.microsoft.com/default.aspx?scid=kb;en-us;266347
0295デフォルトの名無しさん
2005/09/15(木) 12:35:09それで何をしたいのか?
もし、CPUの温度を表示する様なツールを作りたい、と言う事なら、
電子温度計のセンサ部分を直接CPUに付けた方が便利だと(以下略
0296デフォルトの名無しさん
2005/09/15(木) 14:17:520297デフォルトの名無しさん
2005/09/15(木) 14:46:29縮めようとすると失敗する。(winXP ではOK)
拡大ではバグの資料が MSDN に見つかったが、縮小では見つからない。
どれくらいの比率の縮小で失敗するか、ご存知の方どうか教えて下さい。
(失敗したら自分で SetPixel() で間引いて HDC に移しているが遅い。
尚、縮小はサムネイルを作るため。写真の枚数でサイズを決めて縮小して
いるが、たまたま写真の枚数が多くて、不具合がばれた。)
0298デフォルトの名無しさん
2005/09/15(木) 15:06:55そんなことしなくても、たいていのCPUには
温度センサーついてるだろw
0299デフォルトの名無しさん
2005/09/15(木) 15:11:580300デフォルトの名無しさん
2005/09/15(木) 16:09:41知らんがドライバ次第だったりするんじゃないか?
つか、せめて自分で画像いじるときはDIBSectionぐらい使おうぜ。
0302デフォルトの名無しさん
2005/09/15(木) 18:03:100303デフォルトの名無しさん
2005/09/15(木) 18:07:03あれだよあれ、名前が出てこない・・・もう歳か・・・・
0304デフォルトの名無しさん
2005/09/15(木) 18:42:51MotherBoardMonitorでぐぐれ。その方が早い。
0305デフォルトの名無しさん
2005/09/15(木) 18:51:23親ウィンドウと子ウィンドウを作って、それぞれのWM_CREATEに入った回数を数えてみたのですが、
親のWM_CREATEにはなぜか二回も入るのに、子のやつには一回も入りません orz
両方とも一回ずつ入るようにしたいのですが、
これは子ウィンドウの作り方が決定的に間違っているのでしょうか?
すみませんが、どなたかお願いします m(__)m
http://aploda.com/dl.php?mode=pass&file_id=0000028955
0306デフォルトの名無しさん
2005/09/15(木) 19:07:080307306
2005/09/15(木) 19:09:140308デフォルトの名無しさん
2005/09/15(木) 19:09:55同じWinProcを参照してるから。
子のWinProcを使いたいなら、フックするのではなく、
子のWinProcを登録したウィンドウクラスを作成し、それでCreateしてみれ。
0309305
2005/09/15(木) 19:12:51色々ぶち込むんですかね?
さっそくやってみまっす!!
0310306
2005/09/15(木) 19:12:590311デフォルトの名無しさん
2005/09/15(木) 19:13:130312デフォルトの名無しさん
2005/09/15(木) 19:14:00最近APIの勉強を始めて練習がてらにウィンドウをスクリーンの端などに持っていった時に
自動に端に引っ付かせる(例:WINAMPなど)方法を考えているのですがうまくいきません。
WM_WINDOWPOSCHANGEDやWM_MOVEで特定座標に来たらSetWindowPos()で端に
移動させてみたのですが、それではそれらのメッセージ前に一度マウスで指定した座標のところに
一瞬ウィンドウを描写してから端に描写するので困っています。
ウィンドウを移動不可にする関数もしくはスタイル(?)など探しているのですが小生の力では探せず・・・
どなたかヒントだけでも教えていただけないでしょうか?
お願いします。
0313デフォルトの名無しさん
2005/09/15(木) 19:14:21ソースでは親のWinProcを登録したWNDCLASSを作成し、
そのWNDCLASSでもって両方のウィンドウをCreateしてる。
その後子のWinProcをSetWindowLongで設定しているが、
CreateWindowが完了して時点で、対象のウィンドウには
WM_CREATEは既に送信されている。
このため、親のWinProc上でWM_CREATEが2回呼ばれている。
なので、>>308のようにしなさいということ。
0314デフォルトの名無しさん
2005/09/15(木) 19:20:31キー入力について教えていただきたいんですが、
ハードウェア的に直接キーボードを入力したのとまったく変わらない状態を作り出せる
そんなAPIはありませんでしょうか?
0316デフォルトの名無しさん
2005/09/15(木) 19:26:50SendInput
0317デフォルトの名無しさん
2005/09/15(木) 19:29:24MFCのCControlBarのソースを参考に
0318デフォルトの名無しさん
2005/09/15(木) 19:31:38WM_WINDOWPOSCHANGING
0319デフォルトの名無しさん
2005/09/15(木) 19:44:09静的なら CopyMemory
動的なら RtlMoveMemory
0320305
2005/09/15(木) 19:49:47http://aploda.com/dl.php?mode=pass&file_id=0000028985
>>310 >>313
大変大変参考になりました。
どうもありがとー m(__)m
InitWndClass()という関数でWNDCLASS構造体を作るようにしました。
子は親と違うクラスネームですが、これはいいんですかね?
あと、子のプロシージャの戻り値は親と同じようにDefWindowProc()関数にしてるんですが、
これで親と同じようにWM_TIMERとか使えば
子が消滅するまで無限ループ?すると考えていいんでしょか?
0321312
2005/09/15(木) 20:13:50>>318
なるほど、このメッセージで送られるWINDOWPOSポインタの座標を変更すればできました。
すっかり見落としてました。
スレ汚しすみません。
>>317
MPCですか・・・今度時間があれば参考程度に見てみます。
0322321
2005/09/15(木) 20:16:35>WINDOWPOSポインタの座標
WINDOWPOSポインタ先に格納されてるXY座標
0324デフォルトの名無しさん
2005/09/15(木) 21:44:29CopyMemoryは最終的にはmemcpyが呼び出される。
MoveMemoryも結局はmemmoveの呼び出しになる。(が、一応kernel32.dllにエントリもある)
少なくともVCでは/Oiを指定するとmemcpyはインライン展開されCランタイムライブラリは不要になるはず。
0325デフォルトの名無しさん
2005/09/15(木) 21:53:380326デフォルトの名無しさん
2005/09/15(木) 22:30:46ダイアログ上のエディットが操作された事を
WM_COMMANDを取得することで知っているのですが、
エディットボタンに送られてくるWM_メッセージを全て盗みたいと思っています。
何かいい方法はないでしょうか?
0327デフォルトの名無しさん
2005/09/15(木) 22:31:59サブクラス化
0328デフォルトの名無しさん
2005/09/15(木) 22:37:17一応貼っとく。
[SDK32] C ランタイム関数の Win32 で対応する関数一覧
ttp://support.microsoft.com/default.aspx?scid=kb;ja;99456
0329デフォルトの名無しさん
2005/09/15(木) 22:38:47ありがとうございます!!!
0330デフォルトの名無しさん
2005/09/15(木) 22:42:10たとえばCPUに応じて最速のコピー命令を使えるとか。
関数呼び出しのオーバーヘッドが誤差の範囲になる程度のまとまった量の
コピーじゃないと意味ないけど
0331デフォルトの名無しさん
2005/09/15(木) 22:43:20おぉ、テンプレに入れてもいい気がする。
0332デフォルトの名無しさん
2005/09/15(木) 23:16:15ちょっと感動した
0333デフォルトの名無しさん
2005/09/16(金) 00:42:420334デフォルトの名無しさん
2005/09/16(金) 01:55:55てか、APIコールのオーバーヘッドのほうがでかいから。
本当に高速なコピーができることが重要な場面では、とりあえずスタートアップ時に
cpuidで判定して、movdqaなりmovqなりを使うルーチンに関数ポインタをセットする。
Intel C++だとわざわざ自作しなくとも専用のmemcpyが自動的にリンクされたような。
0335デフォルトの名無しさん
2005/09/16(金) 09:27:04久しぶりに感動した
0336デフォルトの名無しさん
2005/09/16(金) 13:44:56マウスカーソルをウインドウの中に閉じ込めることってできますか?
0337デフォルトの名無しさん
2005/09/16(金) 14:06:440338デフォルトの名無しさん
2005/09/16(金) 14:08:05デスクトップもウインドウ
0339デフォルトの名無しさん
2005/09/16(金) 14:17:29出来ないことは無いが、そのプログラムを終わらせないとタスク切り替えもままならなくなる。
そんな糞プログラムにするくらいなら設計し直せ。
0340デフォルトの名無しさん
2005/09/16(金) 14:19:21マウスの移動をチェックしてウインドウの外に出たらウインドウの中に強制的に移動じゃちょっと違うのかな。
0341デフォルトの名無しさん
2005/09/16(金) 14:36:190342デフォルトの名無しさん
2005/09/16(金) 16:10:51質問なのですが、現在ヘッダーコントロールを勉強しているのですが、
指定した位置にヘッダーコントロール表示はできたのですが、ヘッダーを指定した位置から
動かさないで中身のみスクロールさせたいのですが、有効なAPI御存じないでしょうか?
MoveWindowでスクロールさせると指定位置から動いてしまうので困っています。
0343デフォルトの名無しさん
2005/09/16(金) 16:17:550344342
2005/09/16(金) 16:30:24指定した位置にヘッダーコントロールの表示はできました。
しかし、ヘッダーを指定した位置から動かさないで中身のみ
スクロールさせたいのですが、よくわかりません。
MoveWindowでスクロールさせると指定位置から動いてしまうので
困っています。上記の目的に有効なAPIありますか?
環境は VC.net sdk です。
…で、答えは↓の辺りかな?
ttp://www.kumei.ne.jp/c_lang/sdk3/sdk_294.htm
0345デフォルトの名無しさん
2005/09/16(金) 16:54:00キーボードフォーカスを持つウィンドウのハンドルを取得したいのですが、
WindowFromPoint
ChildWindowFromPoint
を使うのが普通で簡単なのでしょうか?
0346デフォルトの名無しさん
2005/09/16(金) 16:59:38返事ありがとうございます。
kumeiさんのHPは、よく勉強させていただいてます。
でも、指定位置からのヘッダースクロールの解決方法はありませんでした。。
0347デフォルトの名無しさん
2005/09/16(金) 17:09:05「RGSS+Win32API」のスッドレをしたらばに立てました。
RGSSとWin32APIの両方に興味のある方は
どうぞごりようください
0348デフォルトの名無しさん
2005/09/16(金) 18:20:010349デフォルトの名無しさん
2005/09/16(金) 18:22:250350デフォルトの名無しさん
2005/09/16(金) 18:41:13ブラクラ踏んじまったじゃないか
0351デフォルトの名無しさん
2005/09/16(金) 18:52:240352デフォルトの名無しさん
2005/09/16(金) 20:29:30普通のウィンドウ(MDIではない子ウィンドウ)を作りたいのですが、可能でしょうか?
もし、そうならばその方法を教えてください。
0353デフォルトの名無しさん
2005/09/16(金) 20:49:15Alt+Tab、知ってますか?
0355デフォルトの名無しさん
2005/09/16(金) 21:06:300356デフォルトの名無しさん
2005/09/16(金) 21:14:380357デフォルトの名無しさん
2005/09/16(金) 21:15:17知りませんでした…この機能
が、意図するものが見えません。スマソ。教えてください。
>>354
誰だか知らないけどありがとう?
0358デフォルトの名無しさん
2005/09/16(金) 21:24:40>>399を読めばなにを意図しているか分かるよ
0361デフォルトの名無しさん
2005/09/16(金) 21:45:500362357
2005/09/16(金) 22:25:400363デフォルトの名無しさん
2005/09/16(金) 22:34:12Alt+TabやAlt+Escで出来ても、見えてるのにマウスカーソルが動かないClipCursorとか
マウスのボタンを押してもないのに続くSetCaptureとかは、使う側はストレス溜まるだろう。
0364354
2005/09/16(金) 22:34:320365デフォルトの名無しさん
2005/09/16(金) 22:36:49座標とフォーカスに何の関係があるんだ?
0366デフォルトの名無しさん
2005/09/16(金) 22:39:30オプションにしてもいいし。
0367デフォルトの名無しさん
2005/09/16(金) 22:44:26ClipCursorとか使う位ならフルスクリーンで動いた方がいい
0368デフォルトの名無しさん
2005/09/16(金) 22:50:32Alt+Tabやらでアプリを切り替えれば普通に全体にマウスを持っていけるゲームなぞ掃いて捨てるほどありますがね
0369デフォルトの名無しさん
2005/09/16(金) 22:52:320370デフォルトの名無しさん
2005/09/16(金) 22:53:170371デフォルトの名無しさん
2005/09/16(金) 22:56:16個人的な好みじゃねぇかw
俺も個人的な好み言うなら、別にゲーム中にクリップされても全然構わんし、ゲーム内容によってはそのほうがいいだろうし。
フルスクリーンもそれはそれで希望してる人がいれば取り込めばいいわけだ。
0372デフォルトの名無しさん
2005/09/16(金) 23:11:59ダイアログ2上でユーザーに文字列を入力してもらい、
その文字列のエラーチェックをし、エラーでなければ
ダイアログ1に入力された文字列を渡したいと思っています。
今はexternを使い、char *ポインタを共用することで
問題を解決していますが、ダイアログ上でバイナリ
データのやり取り、または引数としてポインタを渡す
ことは可能でしょうか?
もし可能でしたらその方法を教えてください。
0373デフォルトの名無しさん
2005/09/16(金) 23:21:310374デフォルトの名無しさん
2005/09/16(金) 23:21:38個人の趣味で「側」を語らないでくださいね^^
0375デフォルトの名無しさん
2005/09/17(土) 00:01:01お断りしますね^^
0376デフォルトの名無しさん
2005/09/17(土) 01:52:530377デフォルトの名無しさん
2005/09/17(土) 02:03:45http://pc8.2ch.net/gamedev/
0378デフォルトの名無しさん
2005/09/17(土) 08:14:46断るとか関係ありませんよ^^
0379デフォルトの名無しさん
2005/09/17(土) 18:54:06そんなことありませんよ^^
0380デフォルトの名無しさん
2005/09/17(土) 22:25:050381デフォルトの名無しさん
2005/09/17(土) 22:27:110382デフォルトの名無しさん
2005/09/17(土) 22:28:010383デフォルトの名無しさん
2005/09/17(土) 22:28:170384デフォルトの名無しさん
2005/09/17(土) 22:28:360385デフォルトの名無しさん
2005/09/17(土) 22:30:050386デフォルトの名無しさん
2005/09/17(土) 22:31:200387デフォルトの名無しさん
2005/09/17(土) 22:31:40advanced じゃなくて?
0388デフォルトの名無しさん
2005/09/17(土) 22:32:54それですよ〜ww
0389デフォルトの名無しさん
2005/09/17(土) 22:35:51どうなんかな?
0390デフォルトの名無しさん
2005/09/17(土) 22:40:580391デフォルトの名無しさん
2005/09/17(土) 22:45:390392デフォルトの名無しさん
2005/09/18(日) 00:51:210393デフォルトの名無しさん
2005/09/18(日) 06:10:130394デフォルトの名無しさん
2005/09/18(日) 16:33:58散々探したけど、全然見つかりません・・・
0395デフォルトの名無しさん
2005/09/18(日) 16:59:54C#に移行したほうがいいのかな
0396デフォルトの名無しさん
2005/09/18(日) 17:01:230397デフォルトの名無しさん
2005/09/18(日) 17:02:09>>395御好きにどうぞ。
0398デフォルトの名無しさん
2005/09/18(日) 17:08:38VS2005だとdllimportだらけになるなあ。
ま作るものによるんだけど
0399394
2005/09/18(日) 17:46:41�dクス。
0400デフォルトの名無しさん
2005/09/18(日) 18:38:180401デフォルトの名無しさん
2005/09/18(日) 20:54:20char path[MAX_PATH + 1];
Win32Api(path, MAX_PATH)
とやっている人と
char path[MAX_PATH];
Win32Api(path, MAX_PATH)
とやっている人がいますが、
どちらが正しいのですか?
Win32ApiはGetModuleFileNameやらGetFullPathNameやらその他もろもろです。
0402デフォルトの名無しさん
2005/09/18(日) 20:55:280403デフォルトの名無しさん
2005/09/18(日) 21:05:070404デフォルトの名無しさん
2005/09/18(日) 21:53:010405デフォルトの名無しさん
2005/09/18(日) 21:57:580406デフォルトの名無しさん
2005/09/18(日) 21:59:130407デフォルトの名無しさん
2005/09/18(日) 22:33:490408デフォルトの名無しさん
2005/09/18(日) 22:35:04は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?
は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?
は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?
は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?
は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?は?
0409デフォルトの名無しさん
2005/09/18(日) 23:01:300410デフォルトの名無しさん
2005/09/18(日) 23:02:540411デフォルトの名無しさん
2005/09/18(日) 23:34:410412デフォルトの名無しさん
2005/09/18(日) 23:35:470413デフォルトの名無しさん
2005/09/18(日) 23:43:36設定できるやつ)によって起動されたことを検出する方法があれば教えてください。
もしくは、互換モードの設定情報が保存されている場所を教えてください。
0414デフォルトの名無しさん
2005/09/19(月) 01:14:30その作成されたダイアログボックスのハンドルを取得したいのですが
何かいい方法はありませんでしょうか?
現在はWPARAMに子のハンドルを格納して子から親へメッセージを送り
親側ではWPARAMを基に子にメッセージを送信するということにしています。
WM_DIALOGINIT時に親に自分のハンドルを教えているのですが、
上のような方法はあまり賢くないような気がします。
0415デフォルトの名無しさん
2005/09/19(月) 07:09:13CreateDialogの戻り値がそうだろ。
まさか、モーダルでハンドル取ろうなんて考えてる訳じゃないだろ?
0416デフォルトの名無しさん
2005/09/19(月) 09:55:35GDI+用のラッパーどっかにいいの落ちてないか?
面倒臭くて面倒臭くて・・・
0417デフォルトの名無しさん
2005/09/19(月) 11:45:230418デフォルトの名無しさん
2005/09/19(月) 13:06:390419デフォルトの名無しさん
2005/09/19(月) 13:16:460420デフォルトの名無しさん
2005/09/19(月) 16:12:240421デフォルトの名無しさん
2005/09/19(月) 16:32:10InsertMenu()で状況に応じたメニューを表示したいのですが、
選択したメニューの処理は、あらかじめID等を決めておいて
前もって作っておくしかないのでしょうか。
0422not 416
2005/09/19(月) 16:44:12多分DC->Gdiplus::Graphics変換とかRECT→Gdiplus::Rect変換とかが
しょっちゅう必要で一段余計に手間が増えてウザイ、とかじゃまいか
0423デフォルトの名無しさん
2005/09/19(月) 17:25:40当然だろ
実行中にプログラムを作って動かすことなどできんのだから
それに、状況に応じたっていっても、無限じゃないだろ?
もし無限ならそんなのできません
0424デフォルトの名無しさん
2005/09/19(月) 17:42:48「IEのお気に入り」や「最近使ったファイル」なんかは
複数のメニューをまとめて1つの処理でやってる
0425デフォルトの名無しさん
2005/09/19(月) 18:52:03あれをWin32APIだけ使って真似するのは大変だと思うが
0426デフォルトの名無しさん
2005/09/19(月) 19:22:02ありゃあどんなリンクだろうとやる処理が同一だからだろ
0427421
2005/09/19(月) 20:11:34ありがとうございます。
右クリックしたとき関数呼んででCreatePopupMenu()、
しているのですが関数終了時にDestroyMunu()は、したほうが
いいんでしょうか。
0428デフォルトの名無しさん
2005/09/19(月) 21:05:480429デフォルトの名無しさん
2005/09/19(月) 21:07:17ね
0430デフォルトの名無しさん
2005/09/19(月) 23:11:25あたりまえだろ
0431デフォルトの名無しさん
2005/09/19(月) 23:15:470433デフォルトの名無しさん
2005/09/20(火) 08:36:09どういう状況かわからんが、
スクリプト処理系でも作ればいいんじゃないか?
処理内容を機械に作らせたい、となればまた別の話だけど。
予めIDを決めなければいけない、ってことはない。
WM_MENUSELECTとGetMenuStringとかでなんとかなるんじゃないか?
同じメニューストリングのメニューが無限にあるとかなら知らんが。
といっても普通はIDで事足りるかと。
さすがに「お気に入り」なんかでも6万もないだろ。
0434デフォルトの名無しさん
2005/09/20(火) 11:15:48Managed C++ または C++/CLI
他にも色々まとめてラップしてくれるぜ
0435デフォルトの名無しさん
2005/09/20(火) 11:26:300436デフォルトの名無しさん
2005/09/20(火) 17:06:38(キーを押すとシステムの警告音が鳴ってしまう「カン、カン・・・」って感じの)
何とか回避する方法ご存じな方いらっしゃいませんでしょうか。
よろしくお願いします。
0437デフォルトの名無しさん
2005/09/20(火) 17:09:19バグを直す。
0438421
2005/09/20(火) 20:06:36メニュー項目で選択した文字列を関数の引数にしたかったんです。
TrackPopupMenu()のnFlagにTPM_RETURNCMDオプションを設定して
返り値の番号からどの文字列が選択されたか判断することで解決しました。
0439デフォルトの名無しさん
2005/09/21(水) 00:25:22プリンタへ印字するためのメタファイル作成で詰まっています。
現在CreateEnhMetaFileでメタファイルを作成しているのですが、
第一引数がNULLの状態からDPIを変更することは出来るのでしょうか?
SetWindowExやらSetViewportExやらでいじっても何も変わらなかったり、
真っ白になったりします。
第一引数がNULLでは出来ない場合、プリンタのDCを
取得せずにする方法はあるんでしょうか?
0440436
2005/09/21(水) 12:02:41レスありがとうございます。
>バグを直す。
これは、WS_EX_LAYEREDを立ててウインドウを作る事とキーイベントが取得出来なくなる事に関係は無いという事でしょうか?
0441デフォルトの名無しさん
2005/09/21(水) 16:50:410442439
2005/09/21(水) 18:22:18プロパティのDPIは変わりませんが…
0443デフォルトの名無しさん
2005/09/21(水) 21:21:17ダイアログボックスに、ウィンドウを引っ付けて、
文字を書き込んでいますが、そのフォントサイズを変えたいのです。
そんなことできるのでしょうか。
0444デフォルトの名無しさん
2005/09/21(水) 21:25:470445デフォルトの名無しさん
2005/09/21(水) 21:47:260446初心者
2005/09/22(木) 13:56:45現在、ボーランドでプログラムを作っているのですが、
TransparentBlt()関数が読み込めないらしく、
Error: 外部シンボル 'TransparentBlt' が未解決
と出てしまいます。
何かをインクルードし忘れているからでしょうか?
windows.hだけをインクルードしているのですが。
0447デフォルトの名無しさん
2005/09/22(木) 13:57:08Msimg32.libをリンク
0448初心者
2005/09/22(木) 14:02:25ありがとうございます。
すいませんが、リンクはどのようにするのでしょうか?
0449デフォルトの名無しさん
2005/09/22(木) 14:12:170450デフォルトの名無しさん
2005/09/22(木) 14:12:30コマンドプロンプトからコンパイルしているのなら、
たぶんbcc32の引数にソースファイルと共にmsimg32.libを並べればいいはず。
0451デフォルトの名無しさん
2005/09/22(木) 14:12:38/ -‐' 'ー- \
. | (●),(、_,)、(●) ::|
| /,.ー-‐、i :::::|
| //⌒ヽヽ .::|
| ヽー-‐ノ :::::|
\  ̄ ...::/
/`ー‐--‐‐―´\
0452デフォルトの名無しさん
2005/09/22(木) 14:15:48BCC5.5.1の事を言っているんなら、コマンドラインに単に msimg32.lib を
付け加えるだけでは?
0453デフォルトの名無しさん
2005/09/22(木) 14:23:43返れ
0454初心者
2005/09/22(木) 14:25:390455デフォルトの名無しさん
2005/09/22(木) 14:25:44日本語わかりまちぇんか??
0456デフォルトの名無しさん
2005/09/22(木) 14:26:39荒れてるようだからこっち言って聞いた方がいいかも。
タダで使えるBorland C++ Part4
http://pc8.2ch.net/test/read.cgi/tech/1091066805/
0457初心者
2005/09/22(木) 14:29:10どうもです。行ってきます。
0458デフォルトの名無しさん
2005/09/22(木) 14:30:480459デフォルトの名無しさん
2005/09/22(木) 14:32:40bccは必要ない。ヘッダとインポートライブラリすべて同梱
0460初心者
2005/09/22(木) 14:39:35ぜひインストールしたいものです。
0461デフォルトの名無しさん
2005/09/22(木) 14:51:05PlatformSDKは最新のWindows.hなどが入っている。
プログラムの実行が早くなったりするわけじゃないから、
インストールするのは必要に迫られてからでいい。
0462デフォルトの名無しさん
2005/09/22(木) 14:52:31なったりするんだな、これが。
0463デフォルトの名無しさん
2005/09/22(木) 14:56:12恐ろしい世の中じゃのう
0464デフォルトの名無しさん
2005/09/22(木) 15:19:53返れ
0465デフォルトの名無しさん
2005/09/22(木) 15:42:28普通のメッセージボックスではなく、
「はい」「いいえ」だけでなく、「すべて」「中止」のボタンを付けなければなりません。
それで、Win32APIのメッセージボックスじゃ出来ないと思い、メッセージボックスを自作したのですが、
メッセージボックスのように、処理を中断させるのをどうすればいいかわかりません。
そういうことできる関数ありませんか?
0466デフォルトの名無しさん
2005/09/22(木) 15:54:280467デフォルトの名無しさん
2005/09/22(木) 15:54:55で検索してみれ
0468デフォルトの名無しさん
2005/09/22(木) 15:57:300469デフォルトの名無しさん
2005/09/22(木) 16:09:320470デフォルトの名無しさん
2005/09/22(木) 16:10:05関数でなきゃ「厭ねっ」なのかっ!
あぁん!
0471デフォルトの名無しさん
2005/09/22(木) 16:11:480472デフォルトの名無しさん
2005/09/22(木) 18:49:26CodeProjectにこんなのがあった。
ttp://www.codeproject.com/dialog/xmessagebox.asp
0474デフォルトの名無しさん
2005/09/22(木) 22:58:58本書において DrawBezier (hdc, apt) ;というコードがありますが、ビルドするとエラーが発生してしまいます。
PSDKのドキュメントを探してもこんな引数を取る GDIファンクション は見当たりませんでした。
しかしながら、付属CDのプロジェクトをビルドした場合、エラーなくビルドすることが出来ました。これは何かをリンクする必要があるのでしょうか?
0475デフォルトの名無しさん
2005/09/22(木) 23:40:01へえーそういうのがあるんかとぐぐって見たら、こういうのがあったが、
この引数の関数型はユーザ定義じゃないの? 引数の数が多いのも同名の関数で
出てくる。はずしていたらごめん。
ttp://www.cmlab.csie.ntu.edu.tw/~yichin/WindowsProgramming/aslin/222324.htm
0476デフォルトの名無しさん
2005/09/22(木) 23:57:30おまいさんが持ってるのが第五版ならP.191に載ってるコードをちゃんと上から下まで見ろ。
0477Mathiz ◆Ho9erQuSOQ
2005/09/22(木) 23:57:57わざわざ調べていただいてありがとうございます。
よくソースを見直したら定義していた関数をまるっきり見落としていました....。
これもGDIファンクションかと勝手な思い込みをしてコーディングしていました。ご迷惑をかけてごめんなさいです..。
0478477
2005/09/22(木) 23:59:250479デフォルトの名無しさん
2005/09/23(金) 07:33:16こういうことか?
Win32API質問箱 Build28
http://pc8.2ch.net/test/read.cgi/tech/1108199304/
271 名前: デフォルトの名無しさん Mail: sage 投稿日: 05/02/20(日) 15:43:18
>>267
こんなもんでどう?検証で書いたからそのまま載せる。
HWND hWnd = NULL;
hWnd = ::FindWindow( "Progman", "Program Manager" );
hWnd = ::GetTopWindow( hWnd );
hWnd = ::GetTopWindow( hWnd );
::ShowWindow( hWnd, SW_HIDE ); // to hide
// ::ShowWindow( hWnd, SW_SHOW ); // to show
あとは、SPYで該当ウィンドウの意味を調べて自分なりにアレンジしてくらさい。
276 名前: デフォルトの名無しさん Mail: sage 投稿日: 05/02/20(日) 16:06:10
とりあえず場所はここのようです
HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Explorer
Advanced
HideIcons
0480デフォルトの名無しさん
2005/09/23(金) 17:00:14VC7でプロジェクトを新規に作成する際に使われている
ディレクトリを選択するためのダイアログと同じものを出したいのですが
よくわかりません。
ttp://with2ch.net/cgi-bin/pict/image-box/img20050923165516.png
OPENFILENAMEとGetOpenFileNameあたりを使うのではないかとあたりをつけて
いろいろ試してみましたが通常のファイルを保存するダイアログにしかなりません。
(ファイル名、ファイルの種類を指定するものあがあるやつです)
何か情報がありましたら、よろしくお願いします。
0481デフォルトの名無しさん
2005/09/23(金) 17:35:580482デフォルトの名無しさん
2005/09/23(金) 18:24:33を出した状態で、それらのウィンドウの内、特定のウィンドウだけをスクリーンショットとして取りたいの
ですが、どうすればよいのですか?
0483デフォルトの名無しさん
2005/09/23(金) 18:34:000484デフォルトの名無しさん
2005/09/23(金) 18:35:57それだといかんのです。
バックグラウンドにあるウィンドウとかをフォアグラウンドにもってきて
撮影するとかそういう感じでやりたいのですが、どうすりゃいいのかさっぱり・・・・
0485デフォルトの名無しさん
2005/09/23(金) 18:45:02クリックしたら最前面にくるんだから最前面にあるウィンドウを撮影するのが
楽に決まってると思うんだが何をやりたいのかさっぱり
0486デフォルトの名無しさん
2005/09/23(金) 18:47:321:バックグラウンドにある特定のウィンドウを見つける
2:フォアグラウンドに持ってくる
3:撮影
撮影はデスクトップの DC 持ってきて BitBlt で平気だったような気がする
ちなみにタイマー撮影を使うと1〜2が省略できて良いよ
0487デフォルトの名無しさん
2005/09/23(金) 18:50:30タイマー撮影というのを詳しく教えてください。
とりあえずBitblt関数を使ってキャプチャ作ってみます
0488デフォルトの名無しさん
2005/09/23(金) 18:55:40ちょうどカメラのセルフタイマーみたいな機能
これがあると、撮影ボタンを押した後に撮影したいウィンドウを最前面にもってこさせる操作ができる
0489デフォルトの名無しさん
2005/09/23(金) 19:08:42押すのではあかんの? プログラムを作ること自体が目的化してない?
0490471
2005/09/23(金) 19:49:16レスありがとうございます。
いろいろテストしてみたら、以下のコードで出来ました。
Public Declare Function ShowWindow Lib "user32" (ByVal hwindow As Long, ByVal cmdshow As Long) As Long
Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hwndParent As Long, ByVal hwndChildAfter As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
hWndProgman = FindWindow("Progman", "Program Manager")
hWndProgman = FindWindowEx(hWndProgman, 0, "SHELLDLL_DefView", vbNullString)
hWndProgman = FindWindowEx(hWndProgman, 0, "SysListView32", vbNullString)
ShowWindow hWndProgman, SW_HIDE
ありがとうございました。
0491デフォルトの名無しさん
2005/09/24(土) 01:52:34IEから、<a>タグで指定されてるリンクをドラッグして、
自分のプログラムにドロップしたいのですが受け付けてくれません。
どうやったらいいんでしょうか?
0492デフォルトの名無しさん
2005/09/24(土) 03:06:42OLE D&D
0493デフォルトの名無しさん
2005/09/24(土) 06:20:33IDropTarget
0494461
2005/09/24(土) 07:09:500495デフォルトの名無しさん
2005/09/24(土) 12:44:38|
J
0496デフォルトの名無しさん
2005/09/24(土) 15:00:39以下のように記述したのですが何も表示されません。
何がまずいのでしょうか…。
HDC hdc, cdc;
PAINTSTRUCT ps;
RECT rect;
GetClientRect(hwnd, &rect);
hdc = BeginPaint(hwnd, &ps);
cdc = CreateCompatibleDC(hdc);
DrawText(cdc, "Hello,", -1, &rect, DT_LEFT);
DrawText(cdc, "2ch.", -1, &rect, DT_CENTER);
BitBlt(hdc, 0, 0, rect.right, rect.bottom, cdc, 0, 0, SRCCOPY);
DeleteDC(cdc);
EndPaint(hwnd, &ps);
0497デフォルトの名無しさん
2005/09/24(土) 15:03:21ttp://techtips.belution.com/ja/vc/0012/
この方法をやってみたのですが、
元のフォアグラウンドがタスクマネージャーで見ると「応答なし」のウインドウだと、上手くいきません。
ALT+TABなら目的のウィンドウに切り替えることはできるので、
この状態でもフォアグラウンドを変更する方法はあると思うのですが、
どのあたりのAPIを使えば良いでしょうか?
0498デフォルトの名無しさん
2005/09/24(土) 15:22:16RECTは使った事が無いから違うかもしれないけど、
HBITMAPと同じように関連付けを行わないとダメかも。
RECT rectOld;
***
cdc = CreateCompatibleDC(hdc);
rectOld = SelectObject(cdc, rect); //関連付け
BitBlt(hdc, 0, 0, rect.right, rect.bottom, cdc, 0, 0, SRCCOPY);
SelectObject(cdc, rectOld); //元に戻す
DeleteDC(cdc);
***
0499デフォルトの名無しさん
2005/09/24(土) 15:28:44RECT を関連付けしてどうする
0500デフォルトの名無しさん
2005/09/24(土) 15:29:11SelectObjectの第二引数にRECTは指定できないとエラーが出てしまいます。
&rectにすると一応実行は出来ますがやはり何も表示されないようです。
この場合何を関連付けたらいいのかを調べてみます。
レスありがとうございました。
0501デフォルトの名無しさん
2005/09/24(土) 15:31:45CreateCompatibleBitmapつかってビットマップ作って
SelectObjectで関連づけないと色データ持ってないから
BitBltできんだろ
BitBlt
ビットブロック転送を行います。
コピー元からコピー先のデバイスコンテキストに、
指定された長方形内の各ピクセルの色データをコピーします
0502デフォルトの名無しさん
2005/09/24(土) 15:32:110503デフォルトの名無しさん
2005/09/24(土) 15:33:50あー、なるほど。そういうことなんですか。
勉強不足でした。ありがとうございます。
0504デフォルトの名無しさん
2005/09/24(土) 15:58:19キミはシャーペンを渡されただけで、紙も無く絵が書けるかな?
0505デフォルトの名無しさん
2005/09/24(土) 15:59:160506デフォルトの名無しさん
2005/09/24(土) 16:01:440507デフォルトの名無しさん
2005/09/24(土) 16:02:09相手にしちゃいけません!
0508デフォルトの名無しさん
2005/09/24(土) 16:09:210509デフォルトの名無しさん
2005/09/24(土) 17:01:070510デフォルトの名無しさん
2005/09/24(土) 17:03:370511デフォルトの名無しさん
2005/09/24(土) 17:14:010512デフォルトの名無しさん
2005/09/24(土) 17:14:500513デフォルトの名無しさん
2005/09/24(土) 17:15:410514デフォルトの名無しさん
2005/09/24(土) 17:16:42まあ向こうは文具の使い方間違ってる香具師も多いがw
0515デフォルトの名無しさん
2005/09/24(土) 17:24:36詳しく
0516デフォルトの名無しさん
2005/09/24(土) 17:27:110517デフォルトの名無しさん
2005/09/24(土) 17:27:24kwsk
0518デフォルトの名無しさん
2005/09/24(土) 17:28:500519デフォルトの名無しさん
2005/09/24(土) 17:56:23もっと太いもので穿たなくては
0520デフォルトの名無しさん
2005/09/24(土) 18:01:51ところが再び同じIShellFolderオブジェクトからアイテムIDリストを列挙しようとすると、
そのフォルダの内容に変化はない筈なのに、前回と異なるアイテムIDリストが返ってくる場合があります。
これらのメソッドで取得したアイテムIDリストは一時的なもので保存しておくべきではないのでしょうか?
0521デフォルトの名無しさん
2005/09/24(土) 18:09:390522デフォルトの名無しさん
2005/09/24(土) 18:24:48前回と異なるアイテムIDリスト、とは?
IEnumIDListインターフェースのポインタ値が違うということ?
0523デフォルトの名無しさん
2005/09/24(土) 18:44:24IEnumIDList::Next から返って来たアイテムIDリストのアドレスが違う、と解釈。
IEnumIDList::Next は動的にメモリを確保して、アイテムIDリストをコピーし、そのポインタを第2引数に返す、と言う動作。
取得するたびにポインタの値が変わるのは当然。
保存しておいても構わないが、ちゃんと開放を忘れずに。
0524520
2005/09/24(土) 19:05:23違うのはIEnumIDList::Nextメソッドから取得したITEMIDLIST構造体の中身です。
具体的には↓のような感じです。
�@IShellFolder::EnumObjects、IEnumIDList::NextからITEMIDLIST構造体を列挙。
�A取得したITEMIDLISTを新たなIShellFolderオブジェクトにバインドさせてIShellFolder::EnumObjects。
�B再び�@でITEMIDLISTを列挙すると�Aの操作を行ったITEMIDLISTは異なる内容になっている場合がある。(必ずではない)
ITEMIDLISTの比較は以下のように行っています。
BOOL IsEqualItemID(LPCITEMIDLIST pID1, LPCITEMIDLIST pID2)
{
if(pID1->mkid.cb != pID2->mkid.cb)
return FALSE;
return !memcmp(pID1, pID2, pID1->mkid.cb) ? TRUE : FALSE;
}
0525デフォルトの名無しさん
2005/09/24(土) 20:28:13それってどうやって受け取ればよいでしょうか?
普通のBOOLとかのレジスタに収まる戻り値はEAXで受け取ると思いますが、
構造体を返す(__stdcallみたいな)規約ってあるんでしょうか?
それとも戻り型が構造体のWin32APIはない?
0526デフォルトの名無しさん
2005/09/24(土) 20:30:40DWORDLONG Int64ShrlMod32(Value, ShiftCount);
というのがありますね。
これは64bit値で、構造体とはまた違いますが、
これはどうやって返してるんでしょうか?
EDXとEAXでしょうか。
では64bit以上の値はどうなるんでしょう?
0527デフォルトの名無しさん
2005/09/24(土) 20:31:26あるとしたら、構造体へのポインタじゃね?
0528デフォルトの名無しさん
2005/09/24(土) 20:34:53戻り値が構造体の関数はWin32APIにはおそらくない。
ほとんどは操作が成功したかどうかを表すためにBOOLを返す。
構造体は戻り値にする代わりに引数にポインタを受け取るようになっている。
ただ、__cdeclや__stdcallでは戻り値が構造体型の関数を作ってアセンブリを出力させてみると、
同じように戻り値を格納するポインタを指定する引数が密かに追加されるようになっていた。
0529デフォルトの名無しさん
2005/09/24(土) 20:38:39そいつはDLLにはなくヘッダに直接マクロとインラインアセンブラを使ったインライン関数が両方書いてある。
インライン関数版を見るとやはりeax/edxを使っているようだ。
0530デフォルトの名無しさん
2005/09/24(土) 21:02:45>>529さんがおっしゃる通り、
64bitまでの構造体戻り型の受け渡しはEDX, EAXを使っている様です。
ただし、それ以上のサイズの構造体について、不可解なことをしていました。
呼び出し側で、戻り値用の一時的な変数へのアドレスを
最後にpushしているようなのです。
したがって、関数は実際の引数よりも1つ多く受け取っているようです。
呼ばれ側は、そのアドレスに対して値を格納していました。
そしてそのアドレスをEAXにセットしてret。
そして呼び出し側に戻ったとき、EAXのアドレス(一時変数)から
呼び出し側で受け取る変数へコピーするということみたいです。
EDX使ったり、一時変数使ったりなんか統一してほしいですね。
自作言語作ってる側としては困ります。
0531デフォルトの名無しさん
2005/09/24(土) 21:06:05構造体を返す関数をDLL公開すると、どういうことになるんだろう・・
0533デフォルトの名無しさん
2005/09/24(土) 21:11:50DLL公開しても呼び出しシーケンスは変わりませんでした。
構造体を返す関数は互換性がないか、
この(EDXもしくは一時変数渡し)プロトコル?を使うみたいです。
0534デフォルトの名無しさん
2005/09/24(土) 21:13:38そのようですね。
最適化をすると、そういうコードになるみたいです。
0535デフォルトの名無しさん
2005/09/24(土) 21:15:470536デフォルトの名無しさん
2005/09/24(土) 21:18:17お付き合いくださった皆さんありがとうございました。
0537デフォルトの名無しさん
2005/09/24(土) 21:28:460538デフォルトの名無しさん
2005/09/25(日) 14:38:271分くらいかかる初期化処理も終わらせることが前提です。
サービスで作ってみたんですが、ログオンできてしまって、
ステータスは「開始中」になってしまいました。
0539デフォルトの名無しさん
2005/09/25(日) 14:46:38フェイクのログオン画面を表示しt(ry
0540デフォルトの名無しさん
2005/09/25(日) 14:56:49NT系にはログオンスクリプトってのが無かったか?
あれなら、認証が終わった時点で処理されるはず
0541デフォルトの名無しさん
2005/09/25(日) 14:59:480542デフォルトの名無しさん
2005/09/25(日) 15:21:44ログオン直後じゃないです。
0543デフォルトの名無しさん
2005/09/25(日) 15:33:50APIじゃなくてアセンブラを使うしかないんじゃあるまいか?
APIって暗黙の了解でログオン後の処理となってないかい?
0544デフォルトの名無しさん
2005/09/25(日) 15:39:36ただ>>538で言ったように、長い初期化処理を入れると
ログオン画面が先に出てきてしまうのです。
0545デフォルトの名無しさん
2005/09/25(日) 15:50:530546デフォルトの名無しさん
2005/09/25(日) 16:02:480547デフォルトの名無しさん
2005/09/25(日) 16:16:430548デフォルトの名無しさん
2005/09/25(日) 16:34:00に
"保存、閲覧、移動などを行うと、デスクトップ検索のインデックスはすぐに更新されます"
とかいてあるのですが、CreateFileとかWriteFileとかにフック?のようなものを
仕掛けて監視しているのでしょうか.どうすればそのようなことができるのか教えてください
0549デフォルトの名無しさん
2005/09/25(日) 16:42:16538.exe
win.com
[EOF]
0550デフォルトの名無しさん
2005/09/25(日) 17:41:32HMODULE hModule = GetModuleHandle(_T("user32.dll")) ;
なぜかNULLが返ってきます。
これをする前に、MessageBoxなどを呼び出しておくと、うまくいくのですが。
実際に使うまで、モジュールは読み込まれないのでしょうか?
0551デフォルトの名無しさん
2005/09/25(日) 17:48:110552デフォルトの名無しさん
2005/09/25(日) 17:48:25(わざわざdelayloadを使っていなければ)
0553デフォルトの名無しさん
2005/09/25(日) 17:53:02本当だ。
ありがとうございます。
0554デフォルトの名無しさん
2005/09/25(日) 17:58:330555デフォルトの名無しさん
2005/09/25(日) 18:00:26WinMain 直後に GetModuleHandle してもハンドル取れたけど。
0556555
2005/09/25(日) 18:01:05すまん。
0557デフォルトの名無しさん
2005/09/25(日) 18:27:30厳密にログオン前ということならGINAが妥当だろう。
ログオン〜シェル起動の微妙な間なら、USERINITかシェルを
すげかえるとか。
0558デフォルトの名無しさん
2005/09/25(日) 18:33:16ショック
0559デフォルトの名無しさん
2005/09/25(日) 18:35:04リストボックス上やスタティック上のキーの入力を捕まえるのにはどうしたらいいでしょうか?
0560デフォルトの名無しさん
2005/09/25(日) 18:38:580561559
2005/09/25(日) 18:53:07リストボックスのスタイルにLBS_WANKEYBOARDINPUTを指定してWM_KEYTOITEMでキーの入力ができました
>>560
書き忘れましたが WM_KEYDOWNもきませんでした、すみません
0562デフォルトの名無しさん
2005/09/25(日) 19:26:48キー入力をトラップするんだろ?
プログラム上から入力するのか?
0563557
2005/09/25(日) 20:03:46ちょっと調べてみたがグループポリシーに
(コンピュータ)スタートアップスクリプトとかいうのがあるな。
同期実行らしいから使えるかもな?
まあ他にも何かしら方法はあるかもよ。ネットワークのサービスは
先に起動してるんじゃないかとか。
0564デフォルトの名無しさん
2005/09/26(月) 09:24:300565デフォルトの名無しさん
2005/09/26(月) 09:26:370566デフォルトの名無しさん
2005/09/26(月) 09:34:380567デフォルトの名無しさん
2005/09/26(月) 12:41:38API は何でしょうか。system() で可能なのですが、途中で dos 窓が出てちょっと
いやらしいもので。
0568CreateProcess
2005/09/26(月) 12:48:35思い出せないってのは嘘だろ。素直にげろしろよ。
それから、system()はdos固有の関数ではないぞ。
0569デフォルトの名無しさん
2005/09/26(月) 12:48:40CreateProcess()
プロンプト表示させたくなかったら引数指定な。
0570デフォルトの名無しさん
2005/09/26(月) 13:18:45使用言語はC++言語で、コンパイラにはBCC5.5を使用しています。
1.ソケットを作成する(socket関数)
2.サーバに接続を確立する(connect関数)
3.コマンドを送信する(send関数)
4.送ったコマンドに対しての応答を読み込む(recv関数)
この手順で
3に
"GET パス名 HTTP/1.0"
""
を送れば任意のページが応答として返されるとか何とかあるのですが、recvで読み込むときに
そのままプログラムがビジー状態になってしまいます。
文字のコードはASCIIなはずですし、無論send関数で指定する文字列バッファはchar型です。
もしかして送信する文字列もリトルエンディアンからビッグエンディアンに変換する必要があるのでしょうか・・
なんでビジー状態になるのか、その原因そのものも分からないので何卒お願いします。。
ソースコードはこちらとなっております。
ttp://nijibox.ohflip.com/futabafiles/001/src/sa31147.zip
0571デフォルトの名無しさん
2005/09/26(月) 13:24:43ShellExecuteだと関連付け起動もできる。
0572デフォルトの名無しさん
2005/09/26(月) 13:31:05改行(\r\n)が無いようだが?
0573デフォルトの名無しさん
2005/09/26(月) 13:37:36おお、送信するべき文字列に\r\nを加えたらHTMLを読んでくれました!!
いやはや一応RFCやら各種書籍を読んだツモリだったのでしたがお騒がせしました(´・ω・`;)
0574デフォルトの名無しさん
2005/09/26(月) 13:39:20本当の事を言うと英語読めないからRFCは途中で投げ出して、書籍もまだ読み途中です(っд`:)
0575デフォルトの名無しさん
2005/09/26(月) 14:09:490576デフォルトの名無しさん
2005/09/26(月) 14:24:45ファイバーでがまんしろ。
0577デフォルトの名無しさん
2005/09/26(月) 14:28:53cygwinでも使え
0578567
2005/09/26(月) 14:39:12ありがとうございます。
571 さんへ、ShellExecute() も使っていますが、関連付けでなく、アプリケーションを
指定したかったもので。(関連付けると元に戻すとか出てくるし)
0579デフォルトの名無しさん
2005/09/26(月) 14:48:06>>568
0580デフォルトの名無しさん
2005/09/26(月) 14:49:33関数プロトタイプがなかったり、ウィンドウプロシージャの引数部分を WndProc (HWND, UINT, WPARAM, LPARAM) ;
といった書き方をするソースを見ることがあるのですが、
WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ;
上記のように明示的に関数プロトタイプを示してはならないのでしょうか?
0581デフォルトの名無しさん
2005/09/26(月) 15:04:01(それに戻り値の型をつければ)全然問題ない。
C/C++では名前を使うより前にその名前の宣言がなければならない。
で、WndProcの定義をファイルの先頭に書けば、それが宣言にもなってプロトタイプを書かなくてすむ。
WndProcの定義をファイルの後ろのほうで書くのなら、
WinMainなんかで使うより前に宣言を書いてWndProcの存在を知らせておく必要がある。
0583デフォルトの名無しさん
2005/09/26(月) 16:59:41↑こんな感じのツールを作っているんですが、
タスクバーには表示されないけど Alt + Tab のリストには表示される、
というウィンドウを作る方法はありますか?
CreateWindowEx で WS_EX_TOOLWINDOW を指定すると、
タスクバー表示は無くなりますが Alt + Tab でフォーカスを移せなくなってしまいます。
他のオプションもいろいろ試してみたんですが、どうもうまくいきません。
0584デフォルトの名無しさん
2005/09/26(月) 18:07:33ウィンドウサイズを変える関数ってありませんか?
0585デフォルトの名無しさん
2005/09/26(月) 18:17:530586デフォルトの名無しさん
2005/09/26(月) 18:18:34SetWindowPos
0587デフォルトの名無しさん
2005/09/26(月) 18:26:56MoveWindow or SetWindowPos
>>583
ファイルやフォルダのプロパティウィンドウがそれっぽいから
Spyとかでウィンドウスタイルを調べてみてはどうだろうか
0588デフォルトの名無しさん
2005/09/26(月) 18:28:30スマソ。事故解決しますた・・・orz
MoveWindow
0590デフォルトの名無しさん
2005/09/26(月) 18:36:50WS_EX_APPWINDOWはダメだった?
1. GetWindowLongで拡張スタイル取得
2. (SWP_NOACTIVATE | SWP_HIDEWINDOW) でSetWindowPos
3. 拡張スタイルから WS_EX_APPWINDOW を外してSetWindowLong
4. (SWP_NOACTIVATE | SWP_SHOWWINDOW) でSetWindowPos
ってな感じで。
Alt+Tabの方も出なくなるかもしれないけど・・・
0591デフォルトの名無しさん
2005/09/26(月) 21:12:000592デフォルトの名無しさん
2005/09/26(月) 23:22:33ココの一番最後のプログラムなんですけど
実行してアプリケーションを動かしてみると、メモリ使用量がどんどん増えていきます。
原因はなんでしょうか・・
0593デフォルトの名無しさん
2005/09/27(火) 00:49:31malloc()
SetWindowText
↓
WndProc (EN_UPDATE)
malloc()
SetWindowText
↓
(略)
0594デフォルトの名無しさん
2005/09/27(火) 01:02:220595デフォルトの名無しさん
2005/09/27(火) 06:16:07やってみましたが、やっぱりタスクバーと Alt + Tab 表示が連動してしまっているようです。
>>587
ウィンドウエクスプローラで調べて CreateWindowEx してみましたが駄目でした。
どうもウィンドウスタイルの問題じゃ無いみたいです。
で、
「〜のプロパティ」ダイアログは StubWindow32 という不可視ウィンドウが親らしいので、
まさかと思っていろいろ試してみたら、
どうやら DialogBox() や PropertySheet() を呼び出すときに、
不可視ウィンドウを親に指定すれば Alt + Tab のリストに表示されることがわかりました。
何なんだこの仕様…。
ということで無事解決できました。
助言してくださった方々、ありがとうございました。
0596デフォルトの名無しさん
2005/09/27(火) 06:49:18前々から、タスクバーに表示されないウィンドウを出す方法として言われてますけどね
0597デフォルトの名無しさん
2005/09/27(火) 06:55:27だがそのあたりしかありえん
もう一度自分の書いたプログラム確認してみれ
0598デフォルトの名無しさん
2005/09/27(火) 07:42:39増えていくのはあたりまえ
メモ帳で1Gのテキスト開いたのと
空っぽの状態のメモ帳のメモリ使用量を考えるといい
0599デフォルトの名無しさん
2005/09/27(火) 08:23:29malloc()だけがメモリ使用量を増やすわけではない。つまり、>598。
>>597
自信満満に乙。
0600デフォルトの名無しさん
2005/09/27(火) 08:30:34全部コピペしてビルドして確認してみても
メモリがどんどん増えていく現象は起きないな
もし問題あるようならウイルス、トロイ、キーロガーとか他のソフトが原因かも
0601デフォルトの名無しさん
2005/09/27(火) 09:13:44文字を書いていくと増えていく
0602デフォルトの名無しさん
2005/09/27(火) 09:36:09増えるっていってもせいぜい64kぐらいじゃないですか?
その他にコピーしたりでいろいろ浪費したとしても知れてると思うけど
Allocating a Text Buffer
When the system creates an edit control,
it automatically creates a text buffer,
sets its initial size, and increases the size as necessary.
The size can be up to a predefined limit of approximately 32 kilobytes
for single-line edit controls.
0603デフォルトの名無しさん
2005/09/27(火) 11:40:210604デフォルトの名無しさん
2005/09/27(火) 12:01:23最初はコントロールが消費するだろうとは踏んでたのですが、文字を全て消してもメモリの使用量が減らないままで・・
0605デフォルトの名無しさん
2005/09/27(火) 12:03:11つか、最小化して戻したりすると、減ってない?
0606デフォルトの名無しさん
2005/09/27(火) 12:34:25入力終り 2616KB(キーボード押しっぱなしで15分ぐらいで打ち止め)
最小化 132KB
元に戻す 980KB
秀丸へコピペしてテキストファイルへ保存、サイズ確認
29.2 KB (30,000 バイト)
0607デフォルトの名無しさん
2005/09/27(火) 12:37:57そもそも、freeしたからと言って、
すぐにメモリ使用量が減るわけではない事くらい、
プログラマなら覚えておけよ。
0608デフォルトの名無しさん
2005/09/27(火) 14:27:22なのか、ちょっと悩んでしまった。
0609セェンロン ◆89nOjCFiLI
2005/09/27(火) 15:38:43http://kuroneko-upload.no-ip.info/uploader/upbd/updir/aaa.jpg
この真中のリストビューみたいなのを作りたいんですが、どうやったらいいんでしょうか?
リストビューのフラグいじったら出来ると思ってたんだけど、出来ずに困ってます。
教えてクダサイ。お願いしますです。
0610デフォルトの名無しさん
2005/09/27(火) 15:40:370611デフォルトの名無しさん
2005/09/27(火) 15:53:24ここ置いときますね
http://www.g.dendai.ac.jp/lecture/vbasic/vb10.html
0612デフォルトの名無しさん
2005/09/27(火) 15:55:18w2kでSetProcessWorkingSetSizeをPowerUserで実行しようと
以下のように書いてみたんですが
ProsHandle = OpenProcess(PROCESS_SET_QUOTA, TRUE, GetCurrentProcessId());//�@
if(ProsHandle == NULL) return -1;
if(FALSE == OpenProcessToken(ProsHandle,TOKEN_QUERY|TOKEN_ADJUST_PRIVILEGES, &TknHandle)) return -2;//�A
if(FALSE == LookupPrivilegeValue(NULL, SE_INCREASE_QUOTA_NAME, &Luid)) return -3;//�B
NewState.PrivilegeCount = ANYSIZE_ARRAY;
NewState.Privileges[0].Luid = Luid;
NewState.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(TRUE != AdjustTokenPrivileges(TknHandle, FALSE,&NewState, sizeof(OrgState), &OrgState, &Length)) return -4;
Result= SetProcessWorkingSetSize( hProcess, processMinSize, processMaxSize );
if( !Result ){ asdf=GetLastError();}
�@行 PROCESS_SET_QUOTAをPROCESS_ALL_ACCESSにしないと
�AのOpenProcessTokenでerrorになります。
�BのSE_INCREASE_QUOTA_NAMEもあっているのかどうかわかりません。
助けてください。
0613セェンロン ◆89nOjCFiLI
2005/09/27(火) 16:05:19このツールはVBで作られていたのかw
もっさり感といい、うっすらとそんな予感はしてましたが、本当にそうだったとは。。
ありがとうです。
違う方法で同じようなのを作ってみます。
0614デフォルトの名無しさん
2005/09/27(火) 16:12:35コントロールはActiveXコントロールだろ?
>>611のページがVBでの使い方を書いてるだけじゃん
そのツールとやらは知らんので、
それがVBで作ってあるかどうかは何ともいえんが
0615デフォルトの名無しさん
2005/09/27(火) 16:22:480616デフォルトの名無しさん
2005/09/27(火) 18:04:460617デフォルトの名無しさん
2005/09/27(火) 18:21:38猫でもに見当たらないんですが、誰か教えてください。
0618デフォルトの名無しさん
2005/09/27(火) 18:29:210619デフォルトの名無しさん
2005/09/27(火) 18:52:03ActiveXコントロール貼り付けでいけそう
その後でクラスウィザード起動したらCMSFlexGridというクラスが追加された
0620デフォルトの名無しさん
2005/09/27(火) 18:53:56�dクス!
0621デフォルトの名無しさん
2005/09/27(火) 20:20:510Win32API を利用してフォントの情報を取得するにはどうすればよいでしょうか。
ウインドウや HDC が存在すれば LOGFONT を利用して取得できますが、
それらを使わずに取得したいと思います。
具体的にはフォントファミリーを指定することで、フォントが等幅かどうか知りたいのですが。
0622デフォルトの名無しさん
2005/09/27(火) 20:29:3100624セェンロン ◆89nOjCFiLI
2005/09/27(火) 21:31:37ID:0おおおお。ホントだ。試しにやってみます。
検索したら、少ないけど登録の仕方が出て来ました。
サンクッス。
0625デフォルトの名無しさん
2005/09/27(火) 21:37:25ID:0まずは落ち着いてMSDNちゃんと読め。
0626548
2005/09/27(火) 22:00:58ID:00627デフォルトの名無しさん
2005/09/27(火) 22:30:48ID:0FlexGridはVisualStudio6には標準でサブセット版がつくけど、VC7.1にはつかないので要注意。
その場合、FlexGridProを買うか、MSOfficeをインストールしていればExcel由来のGridControlを使うことになると思う。
0628デフォルトの名無しさん
2005/09/27(火) 23:12:44FindFirstChangeNotification
とかじゃないか?
0629548
2005/09/27(火) 23:25:31628さん ありがとうございます
0630デフォルトの名無しさん
2005/09/28(水) 01:36:56最後まできちんと探せよw
0631デフォルトの名無しさん
2005/09/28(水) 01:49:28オリジナルのデザインのウインドウというのはどうやって作っているのでしょうか?
ポップアップウインドウにして
ポインタの座標を取って地道に処理の追加をやっていくのでしょうか?
0632デフォルトの名無しさん
2005/09/28(水) 01:51:140634デフォルトの名無しさん
2005/09/28(水) 03:58:51タイトルバーは WM_NC* をごにょごにょするんだと思うお。
メニューは知らん。
0635デフォルトの名無しさん
2005/09/28(水) 13:22:31メニューもある程度ならオーナードローできる。
メニューウィンドウを非矩形にしたいとかなら、自分で
メニューエミュレートだと思う。
0636デフォルトの名無しさん
2005/09/28(水) 14:59:000637デフォルトの名無しさん
2005/09/28(水) 15:07:130638デフォルトの名無しさん
2005/09/28(水) 16:43:33非表示時のビットマップデータを取得する簡単な方法はありますか?
目的はリアルタイムにビットマップを取得してその都度加工して表示することです
現在考えている方法はSetWindowPos-SWP_HIDEWINDOWとして
デスクトップのDCを取得し、BitBltでメモリDCに保存してウィンドウ復元>加工>描画と言うものですが
ウィンドウをSetWindowPosの度に再描画されてあまりスムーズに見えなそうな気がしています
0639デフォルトの名無しさん
2005/09/28(水) 17:34:36どうやったらいいのでしょうか?教えて下さい。
0640デフォルトの名無しさん
2005/09/28(水) 18:20:490641デフォルトの名無しさん
2005/09/28(水) 18:45:07デバッグする
0642デフォルトの名無しさん
2005/09/28(水) 18:56:55カウントダウンされていくのがありますが、普通のメッセージボックスでもできるのですか?
0643デフォルトの名無しさん
2005/09/28(水) 19:08:17諦めろカス!
0644デフォルトの名無しさん
2005/09/28(水) 19:13:27クライアントエリアのビットマップを取るのになぜデスクトップのDCと思うのがすっげー不思議
>>639
リストビューを作ったけどなにもデータ入れてないとかじゃねーの?
0645デフォルトの名無しさん
2005/09/28(水) 19:42:32> 自分のウィンドウのが表示されているときのクライアントエリアに相当する部分の
> 非表示時のビットマップデータを取得する簡単な方法はありますか?
0646デフォルトの名無しさん
2005/09/28(水) 19:47:47取得したいのは背景にあたる部分です
↓はめ込み合成によるイメージ
ttp://vista.x0.com/img/vi04827.png
0647デフォルトの名無しさん
2005/09/28(水) 19:47:53(゚д゚)?
0648デフォルトの名無しさん
2005/09/28(水) 19:49:27それはあれ?
ただ背景をクライアント領域に表示するのが目的?
それとも、DCとか使ってクライアント領域が隠してる背景を取得するのが目的?
0649デフォルトの名無しさん
2005/09/28(水) 19:52:18後者ですね、フィルタをかけて表示するつもりです
0650639
2005/09/28(水) 19:53:14データは入っています。
それと、操作を受け付けない原因が分かりました。
タブコントロールの上に乗っていたのが問題だったようです。
どうやったら解決するかはまだですが、やっと前に進んだ・・・・・
0651デフォルトの名無しさん
2005/09/28(水) 20:44:03プログラムですが、子供のウィンドウ(タスクバーに表示されない方)を削除すると
なぜかオーナーウィンドウが最小化されてしまいます。
ttp://chise.s25.xrea.com/cgi-bin/up/source3/No_1385.txt
コードが長いのでうpしました(ほとんど猫でものコピペです。スマソ)
なぜでしょうか。教えてください。
0652デフォルトの名無しさん
2005/09/28(水) 20:48:18それはレイヤードウインドウでは解決できない?
0653デフォルトの名無しさん
2005/09/28(水) 21:30:410654デフォルトの名無しさん
2005/09/29(木) 04:48:35よくわからんのだが、削除ってのはどのタイミング?
WM_CLOSEの処理?それともDestroyWindow(hChdWnd)呼んだとき?
ウチのWin2kSP4だと再現しないなあ。
バックグラウンドにはなるけど、これは自力で処理しない限りどうしようもないはず。
ChildProcのWM_CLOSEの処理の表示メッセージと処理内容が
一致してないけどいいのかな?
少なくとも最小化はしない。
現象をもう一度確認して、デバッガで追っかけてみては?
0655デフォルトの名無しさん
2005/09/29(木) 16:10:270656655
2005/09/29(木) 16:24:44ググったら、出来ないって出てきました。
リストビューを編集したい分だけ並べて、見た目は1つに見えるようにします。
0657デフォルトの名無しさん
2005/09/29(木) 17:31:42メッセージをうまくトラップして任意のカラムを編集できるように見せかける応用はCodeGuruを探すと出てきますよ。
私も作ったし。
#但しMFC。
0658デフォルトの名無しさん
2005/09/29(木) 17:34:58頭いいなお前
0659651
2005/09/29(木) 18:16:37スマソ。早とちりでした。
最小化ではなく非アクティブになって他のウィンドウに
隠れてしまうという現象でしたが、
SetActiveWindowでなんとかなりました。
原因はよく分かりませんが、ありがとうございました。
0660デフォルトの名無しさん
2005/09/30(金) 04:44:19*.def ファイルを書いて *.dll から *.lib ファイルを作りたいのですが、
複数の *.dll ファイルを指定する方法はありますでしょうか?
LIBRARY の行を複数書いたり、複数の dll を指定したりするとエラーを吐いてしまいます。
0661デフォルトの名無しさん
2005/09/30(金) 05:01:26それなら出来ないんじゃないの。
複数DLL>複数LIBならやりようはいくらでもあるだろうけど。
0662デフォルトの名無しさん
2005/09/30(金) 05:18:17某所で入手した lib ファイルを覗いてみると複数の dll の関数名が書いてあるようなので
できるとは思うんですが。
0663デフォルトの名無しさん
2005/09/30(金) 06:08:330664デフォルトの名無しさん
2005/09/30(金) 07:22:46どういった原因が考えられますか?
0665660
2005/09/30(金) 07:46:43http://hp.vector.co.jp/authors/VA028375/d/windows.h.html
の windows.h for D のアーカイブの中にある win32.lib です。
0666デフォルトの名無しさん
2005/09/30(金) 10:44:02timeGetTimeの戻り値を確認するのに文字列っておかしくないか?
どんな確認方法よ。
0667デフォルトの名無しさん
2005/09/30(金) 12:43:55それって、正しいDWORD値のダンプを見ているだけジャマイカ。
戻り値はmsec単位だから下のほうはすぐ変わっても上のほうはそうそう変わらんわけだし。
0668デフォルトの名無しさん
2005/09/30(金) 14:54:130669デフォルトの名無しさん
2005/09/30(金) 19:16:50今、デュアルディスプレイで、スクリーンショットを取るプログラムを
作ろうと思っているのですが、どうもプライマリディスプレイだけしか
スクリーンショットがとれないのです。
セカンダリディスプレイとプライマリディスプレイ両方の画面情報を
一つの画像としてとる方法ないですか?
0670デフォルトの名無しさん
2005/09/30(金) 21:27:42その場合どうするつもりだね?
0671デフォルトの名無しさん
2005/09/30(金) 22:08:57それはD言語のライブラリアンが作る独自形式。
拡張子は同じでも互換性はまったくない。
0672デフォルトの名無しさん
2005/09/30(金) 22:14:11基本的には同じ解像度でやりたいと思ってます。
できれば違った解像度に設定された場合についても教えてもらえたらうれしいのですが
0673デフォルトの名無しさん
2005/09/30(金) 23:53:37RichEdit では出来るようなのですが、自前の View でやりたいのです
0674デフォルトの名無しさん
2005/09/30(金) 23:57:12GetDC(NULL)で全仮想スクリーンのDCが取れる
0675664
2005/10/01(土) 00:07:12えっと、戻り値を16進数の文字列でデバッグしたのです。
>>667
$B??????? msほど長時間使ってませんし、 いつ呼び出しても常に同じ値が返ってきたのです。
再コンパイルしても同じでした。
ゲームでこれでフレームレートの管理をしていて、無限ループに陥りました。
でも、次にPCを起動したら直っていて、再現できません。
あと、色々やってた中で、 GetTickCount の方は正しい値を返してたと記憶してます。
0676660
2005/10/01(土) 01:53:05そうですか・・・
どちらも def ファイルに書くので互換性があるかもと思ったのですが。
面倒にはなりますが複数 lib をつくれば済む話なのでそうしようと思います。
どうもありがとうございました。
0677デフォルトの名無しさん
2005/10/01(土) 04:33:25IME周りのメッセージをDefWindowProcに渡さずに自前描画。
>>675
ってことは再現してないのか…
timeBeginPeriod/timeEndPeriodは?
0678デフォルトの名無しさん
2005/10/01(土) 06:05:20ところがポップアップウインドウを表示すると、フォーカスを奪ってしまうため親ウインドウが非アクティブ状態になってしまいます。
このような挙動をしないウインドウを作成するためにはどうすればよいでしょうか。
WS_POPUP、 WS_EX_TOOLWINDOW、 WS_EX_TOPMOST あたりを試してみましたがうまくいきません。
0679デフォルトの名無しさん
2005/10/01(土) 08:22:290680デフォルトの名無しさん
2005/10/01(土) 10:28:51普通にメニュー使えよ
0681デフォルトの名無しさん
2005/10/01(土) 10:38:290682デフォルトの名無しさん
2005/10/01(土) 12:26:450683デフォルトの名無しさん
2005/10/01(土) 15:54:2064×64ピクセルの正方形の画像です。
この画像ファイルを90度時計回りに回転させて
表示するにはどうしたらよいのでしょうか?
「┳」を90度時計回りに回転させて「┫」のように表示したいのです。
あらかじめ回転させておいた画像を別に用意することも考えましたが、
90度、180度、270度と別に用意する画像があり、画像の容量が4倍に
なってしまうため、画像を別に用意するのは止めにしました。
0684デフォルトの名無しさん
2005/10/01(土) 16:13:40自前でビットデータを配置しなおしてください
0685デフォルトの名無しさん
2005/10/01(土) 16:15:38素直にgdiplusのgraphicsクラスなどを使う。
0686デフォルトの名無しさん
2005/10/01(土) 17:07:19PlgBltを使う
0687デフォルトの名無しさん
2005/10/01(土) 17:16:12D3DXMatrixRotationZとかglRotateとか
0688デフォルトの名無しさん
2005/10/01(土) 18:11:010689デフォルトの名無しさん
2005/10/01(土) 18:16:540690デフォルトの名無しさん
2005/10/01(土) 18:44:420691デフォルトの名無しさん
2005/10/01(土) 18:49:03天才
0692デフォルトの名無しさん
2005/10/01(土) 18:55:59WinAPIにディスプレイを回す関数はないぞ。
0693デフォルトの名無しさん
2005/10/01(土) 19:05:370694デフォルトの名無しさん
2005/10/01(土) 19:09:450695デフォルトの名無しさん
2005/10/01(土) 19:44:43開け方教えてくれ
0696デフォルトの名無しさん
2005/10/01(土) 19:48:480697デフォルトの名無しさん
2005/10/01(土) 19:52:150698デフォルトの名無しさん
2005/10/01(土) 20:01:170699デフォルトの名無しさん
2005/10/01(土) 20:04:200700デフォルトの名無しさん
2005/10/01(土) 20:13:030701デフォルトの名無しさん
2005/10/01(土) 20:18:520702デフォルトの名無しさん
2005/10/01(土) 20:19:41使い古されてて嘲笑されるぞ
0703デフォルトの名無しさん
2005/10/01(土) 20:20:44疑似シリーズあたりでは見たこと無い。
0704デフォルトの名無しさん
2005/10/01(土) 20:25:59自走型マウスはどっかで見た。
この際だから TCP/IP 上でマウス動かすプロトコル作って、RFC に投稿するとか。
0705デフォルトの名無しさん
2005/10/01(土) 20:29:11キタ━━━━━━(゚∀゚)━━━━━━ !!
0706デフォルトの名無しさん
2005/10/01(土) 21:20:570707デフォルトの名無しさん
2005/10/01(土) 21:47:350708デフォルトの名無しさん
2005/10/01(土) 21:49:24だろ
0709678
2005/10/01(土) 21:55:23情報サンクスです。
でもその通りにしてもやっぱりフォーカスを奪ってしまいます。
SWP_HIDEWINDOWやそのほかのフラグはちゃんと動作するのに・・・
0710デフォルトの名無しさん
2005/10/01(土) 21:58:120711デフォルトの名無しさん
2005/10/01(土) 22:21:23どーんと出す方法を教えてください。
0712デフォルトの名無しさん
2005/10/01(土) 22:28:460713デフォルトの名無しさん
2005/10/01(土) 22:41:45ヒント:スプラッシュ
0714デフォルトの名無しさん
2005/10/01(土) 22:44:47ヒント:過去ログ
0715711
2005/10/01(土) 22:58:50サンクスです!
0716デフォルトの名無しさん
2005/10/01(土) 23:01:58http://www.macromedia.com/software/flashplayer_sdk/
↑orz
0717デフォルトの名無しさん
2005/10/01(土) 23:32:12自称一般人なら、自分の会社でっちあげたら?どうせ海外だしそこまで調べねぇよ。
0718デフォルトの名無しさん
2005/10/01(土) 23:40:190719デフォルトの名無しさん
2005/10/01(土) 23:42:280720デフォルトの名無しさん
2005/10/01(土) 23:53:47WS_VISIBLEを指定しないでウィンドウをCreateし、
その後、SWP_SHOWWINDOW と SWP_NOACTIVATE を指定してSetWindowPosしたらどう?
0721664
2005/10/02(日) 00:02:15プログラム起動時に
timeBeginPeriod(1);
とし、終了時に
timeEndPeriod(1);
とやってます。
あと、思い出した事は、
別のプロジェクト(ゲーム)でも無限ループに陥ってました。
念のため、起動時にtimeGetTimeが正常に動作するか確認するかどうかで迷ってます…。
0723683
2005/10/02(日) 09:09:23の皆さんありがとうございます。
BitBltと回転行列で実現できそうです。
690さんは・・・
0724デフォルトの名無しさん
2005/10/02(日) 09:28:070725デフォルトの名無しさん
2005/10/02(日) 10:53:06Direct3Dを使わずDC経由でのみ画像にアクセスするアプリなのであれば、GDI+を使うべきだと思うよ。
アンチエイリアス効果が使えるので、縮小拡大画像も綺麗に見せることができる。
0726デフォルトの名無しさん
2005/10/02(日) 11:13:080727デフォルトの名無しさん
2005/10/02(日) 11:23:560728デフォルトの名無しさん
2005/10/02(日) 11:27:50君は詳しそうだね。
まずは、ハードウェア支援があるDC用のWin32API関数を列挙してくれない?
0729デフォルトの名無しさん
2005/10/02(日) 11:54:58という現実を無視する>>726に幸あれ。
0730デフォルトの名無しさん
2005/10/02(日) 12:00:51俺はプロフェッショナルな>>726と違って腰抜けなので、配布物にgdiplus.dllを添付する仕様にするね。
0731デフォルトの名無しさん
2005/10/02(日) 12:23:000732デフォルトの名無しさん
2005/10/02(日) 12:23:44特定条件下ではビットマップがビデオメモリ上に取られたり
BitBltがハードウェアで行われるとか聞いたことがある。
と探してたらあった。
ttp://www.sun-inet.or.jp/%7Eyaneurao/intensive/diw1.html
0733デフォルトの名無しさん
2005/10/02(日) 12:40:16GDI+もそうなんだろうか
0734デフォルトの名無しさん
2005/10/02(日) 12:46:36If your graphics card is using the new Vista driver model then
GDI/GDI+ has *NO* hardware acceleration. In practise this shouldn't
be a big deal since the CPUs are so darn fast these days.
ハードウェアアクセラレートがあるっていうから勉強してたのに
もうGDI+使わねーよヽ(`Д´)ノウワァァン
デマ流してた奴でてこーい
0736デフォルトの名無しさん
2005/10/02(日) 13:09:25結論はビデオカードにによって速度が全然違ってたような‥‥
0737デフォルトの名無しさん
2005/10/02(日) 13:11:470738デフォルトの名無しさん
2005/10/02(日) 13:14:400739デフォルトの名無しさん
2005/10/02(日) 14:08:56その訳だと、「現状のvistaドライバは未対応だ。」って言ってるようにもみえるね。
ま、どっちにしろCPUが高速になっているから、2D環境でのハードウェア支援はあまり要らんだろ。
0740デフォルトの名無しさん
2005/10/02(日) 14:40:08「新しいvistaのドライバモデルでは」じゃないの?
0741デフォルトの名無しさん
2005/10/02(日) 14:58:56最近のCPUは高速になってるから大したこと無い。
ってことか。
0742デフォルトの名無しさん
2005/10/02(日) 15:01:43ゲームの場合だと古いドライバモデルを使ったほうが速いなんてことも発生するのかな
0743デフォルトの名無しさん
2005/10/02(日) 15:53:00つまり、DirectXを使わないアプリは、すべてソフトウェアレンダリングってこった。
0744743
2005/10/02(日) 15:55:38WindowsMediaはDirectXやDirectShowとは別の独立した存在だし。
どっちにしろGDIじゃないからハードウェアサポートありだろうけど。
0745デフォルトの名無しさん
2005/10/02(日) 15:56:130746デフォルトの名無しさん
2005/10/02(日) 15:57:29全てを3Dに移行するというのを見た記憶があるが
0747デフォルトの名無しさん
2005/10/02(日) 16:01:262D切り捨てたらビジネスアプリはどうなる?
2D描画も3Dハードウェアで描画するってだけだろ。
0748デフォルトの名無しさん
2005/10/02(日) 16:06:48ビジネスアプリに限らず、HDC型を用いるレガシーのAPI全般が影響を受けるでしょ。
0749デフォルトの名無しさん
2005/10/02(日) 16:14:25だからそう書いてるじゃまいか
誤解したなら俺の書き方が悪かった
0750デフォルトの名無しさん
2005/10/02(日) 16:20:21ttp://www.atmarkit.co.jp/fdotnet/insiderseye/20050928pdc2005/pdc2005_01.html
WinFXは.NET Framework 2.0の延長線上にある基本クラス・ライブラリである。
前回のPDC 2003では、Windows VistaでWin32 APIはWinFXへと完全に移行するかのようにいわれていたが、
現在ではWindows Vistaの持つ新機能はWinFXとWin32 APIのどちらでも同じようにアクセスできることが
マイクロソフトから明言されている。
0751デフォルトの名無しさん
2005/10/02(日) 16:27:58つまりは、排他フルスクリーンでないアプリケーション全てってことになるな。
0753デフォルトの名無しさん
2005/10/02(日) 17:17:53何か勘違いしているようだが、GDIは元々ハードウェア支援がある。
S3全盛期の頃はビデオカードの機能といえば、GDIのアクセラレーションだった。
DDBなんて面倒な方式を使っているのは、そのためでもあるんだし。
0754デフォルトの名無しさん
2005/10/02(日) 17:22:16ハードウェアアクセラレーションをオフにすると、2D描画も
非常に遅い。2D描画もVGAチップの恩恵を受けてる。
0755デフォルトの名無しさん
2005/10/02(日) 18:12:08帰れ
0756デフォルトの名無しさん
2005/10/02(日) 18:43:490757デフォルトの名無しさん
2005/10/02(日) 18:46:140758デフォルトの名無しさん
2005/10/02(日) 19:34:05m9(^д^)PGYAAAAAAAAAA
0759デフォルトの名無しさん
2005/10/02(日) 20:52:04S3とか懐かしい・・・初めて買ったマシンが864だったよ。
メモリなくてDOSでしか使ってなかったけど。
>>756試してみたが、あんまり遅くならんな。
セーフモードで起動したxpはウィンドウがうねるのが見えてたが、
標準VGAドライバはアクセラレーション全部OFFなのかな?
0760デフォルトの名無しさん
2005/10/02(日) 21:11:42解像度の変更と、フラットメモリアクセスくらいしか提供されない。
0761デフォルトの名無しさん
2005/10/03(月) 00:31:35SW_SCROLLCHILDを指定すると表示がちらつく。
メッセージを追いかけてみると、WM_ERASEBKGNDが送られている。
Windowの表示位置が変わるとシステムがWM_ERASEBKGNDを送ってしまうらしいんだが、
これを抑止する方法知ってたら教えて。
0762デフォルトの名無しさん
2005/10/03(月) 00:33:18> あるWindowの子Windowをスクロールさせる処理を作っているんだけど、SetWindowEx()に
> SW_SCROLLCHILDを指定すると表示がちらつく。
すまん。間違えた、
ScrollWindowEx()にSW_SCROLLCHILDRENを指定すると
だった。
0763デフォルトの名無しさん
2005/10/03(月) 00:53:310764デフォルトの名無しさん
2005/10/03(月) 00:57:25CS_HREADRAW,CS_VREDRAWは指定してないです。hbrBackgroundにもNULLを入れてます。
0765デフォルトの名無しさん
2005/10/03(月) 04:36:44親アプリのウィンドウハンドルに関連付けてAVISaveOptionsを呼んだら
http://rerere.servebeer.com/src/up20317.jpg
こんな感じにデフォルトでウィンドウが画像ベース?になってしまい
特定のコーデックの設定画面が切れてしまいます。
そこで試しにDLL内でDLLのインスタンスを使ってCreateWindowExをして
空のウィンドウAを作り、そのウィンドウハンドルに関連付けて
AVISaveOptionsを呼んでみたのですが、変わらず↑のような画面が出てきてしまいます
(ShowWindowでウィンドウAを出して見たところ、画像ベースでない普通のウィンドウでした)
おそらく親アプリが事前に何か悪さしてるのであろうと考えているのですが、
MSDN内を探したりgoogle先生に聞いてみたりしましたが、解決法を見つけることができませんでした。
↑のように作ったウィンドウを自動で画像ベースにするようなAPIは存在するのでしょうか?
0766デフォルトの名無しさん
2005/10/03(月) 06:43:01WM_ERASEBKGNDでぐぐれ
0767デフォルトの名無しさん
2005/10/03(月) 06:52:54さっぱりわからないが勘で答えてさしあげよう
それはテーマってやつでテーマをOFFにすれば解決だね。
0768デフォルトの名無しさん
2005/10/03(月) 15:41:490769デフォルトの名無しさん
2005/10/03(月) 16:03:58http://aploda.com/dl.php?mode=pass&file_id=0000034649
↑のプログラムは左を押したら vk_left が増えて
その結果を表示するものです。
しかし、作成した「意味無し」ボタンをクリックした後ふたたび左を押すと
なぜか入力を受け付けなくなってしまいます。
わかりにくい文章で申し訳ありませんが、
どなかたお願いします。
0770デフォルトの名無しさん
2005/10/03(月) 16:51:02試しに他のウィンドウクリックして戻ってから左押してみて。
0771769
2005/10/03(月) 17:18:50一度ほかのウィンドウに行ってから戻ってくるとキー入力復活しました!
でも毎回この操作をやるわけにもいかないし、
キーボードとボタンの併用は相性悪いんでしょうか・・
フォーカスでググったら
::SetForegroundWindow(hWnd);
って関数が見つかったので色んなところで呼んでみたのですが、
どうもうまくいきませんでした。
ボタンの処理が終わった後、フォーカス?をボタンから離す方法はありませんか?
連続質問ですみませんが、どうかお願いします m(__)m
0772デフォルトの名無しさん
2005/10/03(月) 17:25:16ボタンのサブクラス化したら?
0773デフォルトの名無しさん
2005/10/03(月) 17:43:22どうすればいいでしょうか?
ラスタオペレーションで何とかなりませんか?
0774デフォルトの名無しさん
2005/10/03(月) 17:43:370775デフォルトの名無しさん
2005/10/03(月) 17:52:51半透明用のマスク作って、ANDとかXORのROPをかければいいんじゃない?
0776769
2005/10/03(月) 17:56:04サブクラス化でググってみましたけど、
私のレベルでは難しそう (T_T
フォーカス移動は
::SetActiveWindow(hWnd);
関数でも無理でした orz
>>773
私は使ったことありませんが、
::AlphaBlend()関数で半透明になるという噂が。。
嘘情報だったらすみません。
あ、あと、DIB作って貼り付け先画像と合成すれば半透明は可能ですよ。
0777775
2005/10/03(月) 17:56:57・半透明用のマスク→画像とは別の半透明用のビットパターン
0778デフォルトの名無しさん
2005/10/03(月) 17:58:050779769
2005/10/03(月) 18:00:51キタ*・゜゚・*:.。..。.:*・゜(゚∀゚)゚・*:.。. .。.:*・゜゚・*!!!!!
うあ、できました! 激しく激しく感謝!!
ボタンの終わりに呼んでしまってもいいんですよね。
0780773
2005/10/03(月) 18:53:43BitBlt(hMem , 100 , 10 , 32 , 32 ,
hBkMem , 96 , 0 , SRCAND);
BitBlt(hMem , 100 , 10 , 32 , 32 ,
hBkMem , 64 , 0 , SRCINVERT);
SRCANDの方にはグレーの半透明用のマスクが、
SRCINVERTの方にはその画像が指定してありますが
色が反転してしまってしまいます。
どうすればいいでしょうか?
>>776
AlphaBlend()調べて使ってみましたが、
ラスタオペレーションの設定が分かりません。
半透明になってちょっと感動しましたが、
マスク画像は表示できないのでしょうか?
0781デフォルトの名無しさん
2005/10/03(月) 19:34:520782デフォルトの名無しさん
2005/10/03(月) 19:36:410783773
2005/10/03(月) 19:40:490784デフォルトの名無しさん
2005/10/03(月) 19:44:11だからBitBltでラスタオペレーションじゃ無理だって言ってるだろ
半透明=アルファブレンドしたいんなら、上で出てるAlphaBlend関数だ
んで、AlphaBlendにはラスタオペレーションは無い
DirectDrawはマスク画像など使わない
0785デフォルトの名無しさん
2005/10/03(月) 19:50:14>マスク画像は表示できないのでしょうか?
発想の転換というものをしてみましょう
透過処理をするのだから、マスクしたいところをアルファ0で描画すればいいだけだろ?
0786773
2005/10/03(月) 20:03:29分かりました。
率直な回答ありがとうございます。
>>785
つまり1ピクセルずつピクセルビットから
読み込んで表示汁という事ですか?
0787デフォルトの名無しさん
2005/10/03(月) 20:14:240789デフォルトの名無しさん
2005/10/03(月) 20:27:56アナタ、32bitBITMAPデータというものを知りませんか
ていうか、アルファブレンドって何かわかってますか
0790773
2005/10/03(月) 20:36:41すみません。AlphaBlendは軽く調べただけで
どういう事ができるのか、どういう機能が備わってるのか
具体的には分かりません。
正直ぐぐっても、丁寧な説明が少なくてよく分からず、最後の引数に
至ってはほとんど何も分かりませんでした。
0791デフォルトの名無しさん
2005/10/03(月) 20:49:000792デフォルトの名無しさん
2005/10/03(月) 20:52:360793デフォルトの名無しさん
2005/10/03(月) 21:07:13http://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
0794773
2005/10/03(月) 21:08:36AlphaBlendなら可能って事ですね。
お世話になりました。
0796デフォルトの名無しさん
2005/10/03(月) 22:06:12WS_CLIPCHILDRENは?
0797デフォルトの名無しさん
2005/10/04(火) 04:10:50なんかおかしいと思ってた
0798762
2005/10/04(火) 19:32:14WS_CLIPCHILDRENを指定してます。
>797
いや、背景ブラシがNULLなのは親Windowなんですよ。
子WindowにWM_ERASEBKGNDが飛んでいて、子Windowが背景を消去している。
「スクロールして新たに現れた領域」だけを再描画すればよいのに、なぜか子Window全体の
再描画指示がOSから送られてくるので、どうしたもんかと。
0799デフォルトの名無しさん
2005/10/05(水) 00:05:18思い出したが昔、子ウィンドウを一緒にスクロールさせるのに、
クライアントの上にもう一枚スクロールサイズと同じ大きさのウィンドウを被せて
その上に子ウィンドウを配置して、
スクロールさせるときは、クライアントに被せたウィンドウをMoveWindowなんかで動かす
と言うことをした覚えがある。
これだと子ウィンドウがちらつくことは無かった筈…なんだがもううろ覚え
0800ハーピィ
2005/10/05(水) 01:32:140801デフォルトの名無しさん
2005/10/05(水) 08:48:58なるほど。試してみます。
0802デフォルトの名無しさん
2005/10/05(水) 19:29:23_beginthreadex(NULL,0,thread,NULL,0,&thID);
で、関数に渡すスレッドの引数のパラメータを第4引数に指定するとあるのですが、
どうやって渡せばいいのでしょうか・・
unsigned __stdcall thread(FILE *in);
main(){
FILE *in
_beginthreadex(NULL,0,thread,in,0,&thID);と指定してもエラーを吐いてしまいます('A
0803デフォルトの名無しさん
2005/10/05(水) 19:33:45unsigned __stdcall thread(void *in);
にしてみれ
0804デフォルトの名無しさん
2005/10/05(水) 20:07:40スピンカウント?
0805デフォルトの名無しさん
2005/10/05(水) 20:12:50ポーリング最強
0806デフォルトの名無しさん
2005/10/05(水) 21:08:45キャストしてしまえばいい。
_beginthreadex(NULL, 0, (unsigned (__stdcall *)(void *))thread, in, 0, &thID);
0807デフォルトの名無しさん
2005/10/05(水) 21:17:48キャストを薦めるのはどうかと。
特に>>802のような人には悪影響与えそうだ。
0808デフォルトの名無しさん
2005/10/05(水) 21:22:08まぁ、あれだ。
まだマルチスレッド使うのは時期そうしょう(なぜか変換できない)ってことだ。
ちゃんとC勉強してからにしろ、な。
0809デフォルトの名無しさん
2005/10/05(水) 22:49:35総称、創傷 他変換できるぞ
0810デフォルトの名無しさん
2005/10/05(水) 22:58:13それはネタで言ってるのか?
0811デフォルトの名無しさん
2005/10/05(水) 23:04:450812デフォルトの名無しさん
2005/10/05(水) 23:15:480813664
2005/10/05(水) 23:28:11timeGetTimeが常に同じ値を返す問題ですが、 再現性がありましたので報告いたします。
timeGetTime が返す値は 0xBFE561FD で、 これは timeGetTime の開始アドレスでした。
timeGetDevCaps の TimeCaps.wPeriodMax は 0xBFE56225 で、 timeGetDevCaps の
開始アドレスでした。
再現方法ですが、 先ず、 DirectX と MMTimer を使うアプリと、
MMTimer のみ使うアプリがあるとします。
OS起動後、MMTimer のみを使うアプリを先に一度でも実行すると、
その後どちらのアプリでも timeGetTime は正常なのですが、
DirectX と MMTimer を使うアプリを先に実行すると、
どちらのアプリでも timeGetTime は自身の開始アドレスを返すようになります。
0814デフォルトの名無しさん
2005/10/05(水) 23:42:56何かヘンなdll呼んでないかなぁ…
ちなみにdllのロードは静的?動的?
0815デフォルトの名無しさん
2005/10/05(水) 23:47:34そう言うのは改めて聞くものではないぞ
0816デフォルトの名無しさん
2005/10/06(木) 01:03:18printf("%X", timeGetTime);
じゃねーだろーな?
0817664
2005/10/06(木) 03:16:16アドレスは同じで、DLLは静的ロードです。
読み込んでいるDLLも動いているプロセスも、正常時と異常時で同じでした。
また色々したところ、DirectXを使わなくても異常になりました。
再起動しても異常だったり、正常だったりします。
関数の開始アドレスを返すのは確実なので、これで色々探してみます。
0818デフォルトの名無しさん
2005/10/06(木) 04:18:06なるほど渡す型はLPVOIDですから、受け取る側もLPVOIDにしなければならないのですね。
void* inに修正した所、無事受け取れたのですが・・
inはFILE*ですけど、関数に渡す時にはvoid*と表現されてますんで、例えばin=fopen("test.txt","r");
とする場合(FILE*)inとキャストしなければならないのです。
これはもう宿命でしょうね・・
0819デフォルトの名無しさん
2005/10/06(木) 04:51:06それは仕方ない。スレッドで受け取る引数は絶対使う型にキャストしないといけない。
0820デフォルトの名無しさん
2005/10/06(木) 07:34:48マルチプロセッサじゃないと意味ないばかりかCPUの無駄
0821デフォルトの名無しさん
2005/10/06(木) 08:15:59最初にFILE *の変数に代入してしまえばいい。
unsigned __stdcall thread(void *Param)
{
FILE *in = (FILE *)Param;
0822デフォルトの名無しさん
2005/10/06(木) 08:26:01そんな話初めて聞いたから、君のプログラムがしょうもない
間違いをしているのではないかと思うが。
0823デフォルトの名無しさん
2005/10/06(木) 14:02:04MSのヘルプでは・・・
unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ),
void *arglist, unsigned initflag, unsigned *thrdaddr );
んでarglistに渡す引数のリスト(無い場合はNULL)とあるのですが、
void* arglistというのは抽象過ぎて意味がわかりません。
いろいろ調べて考えて弄ったんですが、やっぱり意味がわかりません('A`)..
これはスレッドに渡す引数は配列にしなさいよーっつーことですか?
0824デフォルトの名無しさん
2005/10/06(木) 14:04:13スレッドが扱う関数に複数の引数を渡したいのです
0825デフォルトの名無しさん
2005/10/06(木) 14:06:230826デフォルトの名無しさん
2005/10/06(木) 14:10:420827デフォルトの名無しさん
2005/10/06(木) 14:15:39イマイチスレッドは扱いにくいですね
0828デフォルトの名無しさん
2005/10/06(木) 14:42:45扱いにくいかねえ。
0829デフォルトの名無しさん
2005/10/06(木) 14:56:460830デフォルトの名無しさん
2005/10/06(木) 14:57:00まぁ、まとめて渡せってこった
0831デフォルトの名無しさん
2005/10/06(木) 14:57:360832デフォルトの名無しさん
2005/10/06(木) 14:58:230833デフォルトの名無しさん
2005/10/06(木) 14:59:33list = リスト
0834デフォルトの名無しさん
2005/10/06(木) 15:04:47メッセージがくるからそれを見ろ
0835デフォルトの名無しさん
2005/10/06(木) 15:09:57ありがとう
0836デフォルトの名無しさん
2005/10/07(金) 01:15:46シングルプロセッサだと無視されるから無駄にはならん。
まあ、最適な回数は、実際に試してみるしか、確実な方法がないのだけれど。
0837デフォルトの名無しさん
2005/10/07(金) 03:20:27どうも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と怒られて割と八方塞がりです。
0838デフォルトの名無しさん
2005/10/07(金) 03:37:24あー最初俺もそれでハマッタなぁ。
複数のファイルストリームに同時に書き出すの作ってて。
結局VfW関係は専用のスレッドに全ての処理を集めて作ったよ。
全て外部からのシグナルで制御するようにしてた。
その後DirectShowでリライトしたけど、
最初からDirectShow使って置けばよかったと後悔した。
0839デフォルトの名無しさん
2005/10/07(金) 06:26:22for (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を何十回と呼び出しているので、動作も遅いと思います。
これ以上早いマスク画像の半透明描画があるなら教えてください。お願いします。
0840デフォルトの名無しさん
2005/10/07(金) 06:59:15CoInitializeEx?
0841デフォルトの名無しさん
2005/10/07(金) 07:02:20おまえそれ、1ピクセルずつ処理するんならAlphaBlendなんか使う必要無いだろ
0842デフォルトの名無しさん
2005/10/07(金) 08:04:50BitBltで画面をキャプチャーするソフトを作っているのですが、
どうしてもマウスカーソルがキャプチャーされないのです。
どなたかマウスカーソルもキャプチャーする方法をご存知の方いらっしゃいませんでしょうか?
0843デフォルトの名無しさん
2005/10/07(金) 08:48:120844デフォルトの名無しさん
2005/10/07(金) 08:51:090845デフォルトの名無しさん
2005/10/07(金) 09:04:08それだと使っているアイコンの種類によってはちがうもの書いてしまうこともあるでしょうし、
>>844
BitBltつかっちゃうと無理ってことは、
たとえば操作説明用にマウスカーソル付きで画面キャプチャー撮るソフトって
どうやってやってるのか分かりませんか?
0846デフォルトの名無しさん
2005/10/07(金) 09:14:55GetCursor
0847デフォルトの名無しさん
2005/10/07(金) 09:49:14それだとCursor関数を使って独自のマウスカーソルを表示していた場合
GetCursorはあくまでもハンドルを返すのでそれと同じものを描画できなくないですか?
0848デフォルトの名無しさん
2005/10/07(金) 10:11:50EnterCriticalSection による STATUS_INVALID_HANDLE 例外の
防止にも使えるんじゃない?
0849デフォルトの名無しさん
2005/10/07(金) 10:42:26質問があります。
GetPrivateProfileStringを続けて2回コールした場合に
GetPrivateProfileStringの最後の引数のファイル名が
勝手に拡張子を除去して引数のファイル名を返却してくるので
2回目のGetPrivateProfileStringのコールでエラーとなってしまいます。
(引数のファイル名は変数にファイル名を格納したものを渡しています。)
GetPrivateProfileStringは引数のファイル名を勝手に拡張子をはずして返す仕様になっているのでしょうか?
Win32 APIの宣言で引数のファイル名はByValになっているのですが。
ご存知のかた解決方法をご教授願います。
0850デフォルトの名無しさん
2005/10/07(金) 10:54:47GetCursor()+DrawIconEx()
しのごの言わずに、まずは試してみろ。
0851デフォルトの名無しさん
2005/10/07(金) 10:58:53んなわきゃない。LPCTSTRだから、変更しないのが仕様。
変数のサイズが悪いんじゃないか?プログラムを疑え
0852デフォルトの名無しさん
2005/10/07(金) 11:35:36DrawIconEx frmAAA.Picture1.hdc, 0, 0, GetCursor, 0, 0, vbNull, 0, 3
これでためしましたがやはりデフォルトのマウスカーソルが表示されるだけでしたね
http://ad-soft.hp.infoseek.co.jp/
ここのHPのマウスもキャプチャーというツールはしっかりキャプチャーできているようですが
APIだけではやはりむずかしいもんなんでしょうかねぇ
0853デフォルトの名無しさん
2005/10/07(金) 12:04:13http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpgdi/html/_win32_transparentblt.asp
ここらへんにある内容を見直したらいいんじゃないか。
0854デフォルトの名無しさん
2005/10/07(金) 12:29:46ttp://www.woodybells.com/delphi_tips/index.cgi?mode=view&no=5
0855デフォルトの名無しさん
2005/10/07(金) 13:17:56>GetPrivateProfileStringの最後の引数のファイル名が
>勝手に拡張子を除去して引数のファイル名を返却してくるので
しません。
>(引数のファイル名は変数にファイル名を格納したものを渡しています。)
ソース晒して味噌。
>>851
VBらしいよ。
0856デフォルトの名無しさん
2005/10/07(金) 13:52:29VBに書き直して使ってみたらばっちりできました!!!
助言ありがとうございました^^
0857デフォルトの名無しさん
2005/10/07(金) 15:09:19そのためWM_MOUSEMOVE時の値を使って何かしていると、
その処理がマウス座標的に「コマ落ち」になってしまい困っています。
これを何て言うかシューティングゲームで言うところの「処理落ち」にしたいのですが、
何か良い方法があったら教えて頂けないでしょうか。
今のところ思いついたのは、途切れ途切れのマウス座標をスプラインにして補間、くらいです。
が、バカなので出来れば複雑な処理は避けたいところです。
0858デフォルトの名無しさん
2005/10/07(金) 15:21:290859デフォルトの名無しさん
2005/10/07(金) 15:23:06シンプルかつ有効な回答ありがとうございます。
0860デフォルトの名無しさん
2005/10/07(金) 15:39:09うーんやっぱりそれしかないですかね。
VfWはマルチスレッドに対応してないとこでも
もう古臭い技術なのかもしれませんね…
0861デフォルトの名無しさん
2005/10/07(金) 15:57:23id = 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"と表示されてしまいます。
なぜでしょうか? 教えてください。お願いします。
0862861
2005/10/07(金) 16:37:34mallocでメモリの確保してなかったぽいです。
0863デフォルトの名無しさん
2005/10/07(金) 16:47:21下記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)です。
0864デフォルトの名無しさん
2005/10/07(金) 16:50:27kernel32.libやらの有るディレクトリにパスは通ってるのか?
0865デフォルトの名無しさん
2005/10/07(金) 16:50:39比較的新しいAPIだからPlatform SDKを入れないといけないんジャマイカ。
0866デフォルトの名無しさん
2005/10/07(金) 17:05:460867デフォルトの名無しさん
2005/10/07(金) 18:18:14#define WINVER 0x500 なり
#define _WIN32_WINNT 0x500 はやってあるんだろうね?
0868デフォルトの名無しさん
2005/10/07(金) 18:20:56CreateWaitableTimerはNT4.0からのサポート(MSDNより)
こちらは最低限
#define _WIN32_WINNT 0x400 が必要なはず。
0869デフォルトの名無しさん
2005/10/07(金) 18:34:420870デフォルトの名無しさん
2005/10/07(金) 18:38:36ありがとうございます。
CreateWaitableTimer()はリンクできましたが、CreateTimerQueue()は駄目でした。
winbase.hを見るとCreateWaitableTimer()はあるのですが、CreateTimerQueue()は
はないみたいです。
もう一度、SDK入れてやってみます。
ちなみに、CreateWaitableTimer()とCreateTimerQueue()の違いって何でしょう?
違いがないならCreateWaitableTimer()でもいいかと。
0872デフォルトの名無しさん
2005/10/07(金) 19:25:461ピクセルずつ処理するんなら自前で透過処理書いた方が速いだろ、ってこと。
アルファ付きビットマップ使えばAlphaBlend一発だ。
0873デフォルトの名無しさん
2005/10/07(金) 19:37:370874デフォルトの名無しさん
2005/10/07(金) 19:41:030875デフォルトの名無しさん
2005/10/07(金) 19:52:41MAXIMUM_WAIT_OBJECTS 個に制限されている悪寒。
WaitFor〜()、MsgWaitFor〜()が該当する。
MAXIMUM_WAIT_OBJECTS の定義値は64。
0876839
2005/10/07(金) 19:58:44すみません。言ってることがわけわかめ。
アルファ付きビットマップなんて聞いたことないし、
自前で透過なんていったら1ピクセルずつ判別して描画するくらいしか思いつきません。
AlphaBlendにそんな機能ありました?
0877デフォルトの名無しさん
2005/10/07(金) 19:59:30MSDNを100回でいいから読んでくれ
0878デフォルトの名無しさん
2005/10/07(金) 20:21:321000スレッドと言うのは適当です。
要はサーバーですからある程度スレッドが上がることになりますが、
MAXどれくらいタイマーを同時に張れるのかが知りたいのです。
システム上制限があるのであれば、APIを使わずに自分でやるとか
他のやり方を検討する必要があるかなと。
自分で出来るのであればそれでも構わないのですが、
他にやり方あれば教えて下さい。
0879デフォルトの名無しさん
2005/10/07(金) 20:31:00すみません。
WSAWaitForMultipleEvents()も同じく64個の制限なのでしょうか。
0880デフォルトの名無しさん
2005/10/07(金) 20:31:22もうMSDN百回読んだのか。早いな。
0881デフォルトの名無しさん
2005/10/07(金) 20:33:06>MAXどれくらいタイマーを同時に張れるのかが知りたいのです。
ドキュメントに制約は書かれていない。
したがって、君が人柱になって報告するべき。
0882デフォルトの名無しさん
2005/10/07(金) 20:58:24おまえさんそりゃあ、教えてもらおうという態度じゃないべ
わからんならわかるように勉強しなされ
聞いたこと無いって言っても、そりゃ「アナタが聞いたこと無い」だけ
32bitビットマップでグーグル検索してみれ
0883デフォルトの名無しさん
2005/10/07(金) 21:00:38今のヘッダは確か、こうなっている
#define WSA_MAXIMUM_WAIT_EVENTS MAXIMUM_WAIT_OBJECTS
0884839
2005/10/07(金) 21:48:35ごめんなさい。リアルで知らんかったです。
今まで苦労してBITMAPINFO構造体とか学んできただけあってか
アルファのあるビットマップが存在するとは思いませんでした。
ありがとうございます。吊ってきます。
0885デフォルトの名無しさん
2005/10/07(金) 22:44:19そりゃあおまいさん、疑問を抱く姿勢というものが無いな
BITMAPINFO構造体知ってるんなら、多少疑問が出てきそうなもんだがな
RGBQUADのとこで
0886デフォルトの名無しさん
2005/10/07(金) 22:53:330887839
2005/10/07(金) 23:30:01え? 間違ってたらごめんなさい。
アルファ値ってRGBQUADのrgbReservedに指定するんですか?
0固定じゃ…くぁwセdrftgyふじこlp;@:「
0888デフォルトの名無しさん
2005/10/07(金) 23:34:58頼むからMSDN読んでくれ。
ttp://msdn.microsoft.com/library/en-us/gdi/bitmaps_00h3.asp
0889デフォルトの名無しさん
2005/10/07(金) 23:35:41RGBQUADの構成で考えると0固定だがな
実際のビットマップファイルのビットデータ構造見たことないのか?
BITMAPINFOではRGBQUADで書かれてるけど、
実際の構造はRGBTRIPLEで24bit構造
アルファ値加えて32bitにしたら、RGBQUADのReservedに相当する領域しか無いだろう?
0890デフォルトの名無しさん
2005/10/08(土) 00:03:33dwExStyle や dwStyle で指定できるものなんでしょうか?
それともウインドウをつくった後に、×ボタンへDisableメッセージを送って実現したりするんでしょうか?
0891890
2005/10/08(土) 00:04:30一緒に最大化・最小化ボタンもなくなっちゃうので、これ以外の解決策でお願いします。
0892デフォルトの名無しさん
2005/10/08(土) 00:15:07EnableMenuItem( GetSystemMenu( hWnd, FALSE ), SC_CLOSE , MF_BYCOMMAND | MF_GRAYED );
みたいな
0893デフォルトの名無しさん
2005/10/08(土) 00:17:26http://www.google.com/search?q=閉じるボタン+無効化
みたいなあ
0894デフォルトの名無しさん
2005/10/08(土) 00:18:37いや、システムメニューに EnableMenuItem で Disable する
0895890
2005/10/08(土) 00:19:54うほー皆様ありがとうございます。
>>893様のおっしゃる通り、ぐぐればすぐに見つかりましたね。。。
おかげさまで実現できました。ありがとうございました!
0896デフォルトの名無しさん
2005/10/08(土) 05:24:49こういうツールってどういった仕組みで実現してるんでしょうか?
HideSeekでは、次のデータの表示及び削除が可能です
・OutlookExpressのアカウント情報(メール [POP3・HTTP・ IMAP]・ニュース・ディレクトリサービス)
・Outlookのアカウント情報(同上)
・ダイアルアップ接続(アカウント名・ユーザ名・パスワード・電話番号・デバイス・利用者)
・InternetExplorerの認証パスワード(アドレス・タイトル・ユーザ名・パスワード)
・InternetExplorerのフォーム入力データ(フィールド名・入力文字・アクセス日時)
・InternetExplorerのURL履歴(URL・タイトル)
・InternetExplorerの一時ファイル(ファイル名・サイズ・アクセス日時・アドレス)
・InternetExplorerのクッキー(ドメイン・アクセス日時・サイズ・ユーザ)
・最近使用したファイル及びプログラム
基本的にこういうのってあんまり簡単にゲットできてほしくないんだけど。
0897デフォルトの名無しさん
2005/10/08(土) 05:27:48AdvencedWindowsのサンプルプログラムXPじゃちゃんと動かねーよ。
0898デフォルトの名無しさん
2005/10/08(土) 05:31:44スゲーいっぱい出てきた。
0899デフォルトの名無しさん
2005/10/08(土) 05:36:23実現方法をここに書く。そこで見た人間全てが取得方法を知る。
>>基本的にこういうのってあんまり簡単にゲットできてほしくないんだけど。
簡単にゲットされたくないんだろうから、仕組みは書かないほうがいい。
さぁどっち?
0900839
2005/10/08(土) 07:20:38ありがとうございます。
しかし、D-Pixedで編集した画像をバイナリエディタで改変したのですが
いくらReservedの値を変えても変化はありませんでした。
なんででしょう? orz。
0901デフォルトの名無しさん
2005/10/08(土) 08:18:50ファイルの仕様はおろか、使ってるアプリの仕様すら理解してないな
0902デフォルトの名無しさん
2005/10/08(土) 08:31:12馬鹿ですみません。
ttp://49uper.com:8080/html/img-s/86709.jpg
ピンクの部分がアルファ値になるという事ですか?
0903デフォルトの名無しさん
2005/10/08(土) 08:33:50だからダメだこいつってんだ
ファイルの構造も、アプリの仕様も理解してねぇじゃん
出直してこい
0904デフォルトの名無しさん
2005/10/08(土) 08:34:42ビットマップ使うんなら、いくらフリーだからってD-Pixedなんか使うな
0905デフォルトの名無しさん
2005/10/08(土) 08:38:220906デフォルトの名無しさん
2005/10/08(土) 08:52:040907902
2005/10/08(土) 09:04:13自分で何とか調べてみます。
0908デフォルトの名無しさん
2005/10/08(土) 09:04:56そんなこと言うなよ寂しいじゃないか馬鹿。一回り大きくなって戻ってこいよ。
0909デフォルトの名無しさん
2005/10/08(土) 09:08:37IEやOEがやってるのと同じことをしてるだけ
0910デフォルトの名無しさん
2005/10/08(土) 10:02:090911デフォルトの名無しさん
2005/10/08(土) 10:07:26Windowsをブラックボックス扱いしすぎてるんじゃないか?
0912デフォルトの名無しさん
2005/10/08(土) 10:41:09しなけりゃしないで「秘密のAPI云々」と叩かれるし
0913デフォルトの名無しさん
2005/10/08(土) 11:45:47ググっても出てきません。
WINAPIじゃないのかとも思ったのですが、あれは間違いなくWINAPIですよね。
あの、解凍ツールとかで、解凍したらフォルダのウィンドウが自動で開くじゃないですか。
あんなのをやりたいんです。
0914デフォルトの名無しさん
2005/10/08(土) 11:47:262コンのマイクに向かって「フォルダ開け!!!」と大声で叫ぶとOK
0915デフォルトの名無しさん
2005/10/08(土) 11:49:211.ShellExecute()を使う。
2."explorer.exe <フォルダ名>" でCreateProcess()かsystem()する。
好きな方をどうぞ
0917デフォルトの名無しさん
2005/10/08(土) 15:58:01欄外の注意事項もちゃんと読もう。
たしかWin2000の注意だったが、XPも一緒。
0918デフォルトの名無しさん
2005/10/08(土) 18:16:32WNetEnumCachedPasswordsとかで検索してみ。
あとは芋づるにでてくる。
0919デフォルトの名無しさん
2005/10/08(土) 19:56:54どうもありがとうございました。
・OutlookExpressのアカウント情報(メール [POP3・HTTP・ IMAP]・ニュース・ディレクトリサービス)
・Outlookのアカウント情報(同上)
・InternetExplorerの認証パスワード(アドレス・タイトル・ユーザ名・パスワード)
・InternetExplorerのフォーム入力データ(フィールド名・入力文字・アクセス日時)
の4つは分かりました。
最近使ったファイル、履歴、一時ファイル、クッキーなどは
普通にフォルダ内のファイルを列挙しているだけなのでしょうか?
IEの履歴とかはイマイチ取得方法が分からないのですが。
0920デフォルトの名無しさん
2005/10/08(土) 22:06:530921デフォルトの名無しさん
2005/10/09(日) 01:51:51アイテムを追加するのをIDropTargetを使って実装してますが
リストコントロールの端の方にドラッグした時リストコントロールを自動でスクロールさせたいです。
そこでDragOverでDROPEFFECT_SCROLL捕まえてやれば出来るかと思いましたが
DROPEFFECT_SCROLLが発生しません。
何が問題なのでしょうか。
0922デフォルトの名無しさん
2005/10/09(日) 08:53:49shellexecute = 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つも連続している理由がわかりません
なぜでしょうか?おしえてください
0923デフォルトの名無しさん
2005/10/09(日) 09:01:22俺はrubyを知らないが、それはおそらく引数の型の指定じゃないかと思う。
0924922
2005/10/09(日) 09:10:36Rubyだからpが5つも並んでるんですか?
Win32APIの側のお約束ですか?
0925デフォルトの名無しさん
2005/10/09(日) 09:39:04まあこれでも読んでrubyのWin32APIクラスの仕様でも勉強しる。
0926922
2005/10/09(日) 09:56:17ネームスペースみたいなもんか?
(1)皇族
(2)華族
(3)武士
(4)職人
(5)証人
(6)農奴
とかあったら、これはクラス?ネームスペース?
それよりも
(a)魔術師
(b)戦士
(c)僧侶
とかあったら、これはクラス?
0927デフォルトの名無しさん
2005/10/09(日) 10:04:210928デフォルトの名無しさん
2005/10/09(日) 10:15:040929922
2005/10/09(日) 10:28:08いまみてきました
pはポインタのpみたいです。
ポインタを5つ使ってるということですね
0930デフォルトの名無しさん
2005/10/09(日) 10:33:59今VC、SDKで Win32_Find_dataを勉強してるんだけど、
構造体でnFileSizeLowがあるんだけど、型はDWORDなのに、2GBを超えるファイル作って
実験するとマイナスがつく。DWORDといえば、4Gまでは大丈夫と思ったんだけどどうしてかな。
解決方法、理由が分かる人いますか??教えてくれると助かる。
0931デフォルトの名無しさん
2005/10/09(日) 10:39:240932デフォルトの名無しさん
2005/10/09(日) 10:55:44漏れもそれを考えたが、型指定(DWORD)にしても結果は同じ。
不思議なんだよ。
0933デフォルトの名無しさん
2005/10/09(日) 10:56:06志村〜、unsigned
0934デフォルトの名無しさん
2005/10/09(日) 10:58:130935デフォルトの名無しさん
2005/10/09(日) 11:07:01変数の型がsignedだろうとunsignedだろうと、*printfで%d指定するような間抜けなことしたら一緒だぞ?
0936デフォルトの名無しさん
2005/10/09(日) 11:09:01もろやってました。。それが理由っぽい。。
一度文字列変換かな。。
0937デフォルトの名無しさん
2005/10/09(日) 11:11:54おまえにRubyは5年早い
0938デフォルトの名無しさん
2005/10/09(日) 11:12:270939デフォルトの名無しさん
2005/10/09(日) 11:28:27うん。わかってたんですよ。。で、おかしい、おかしいって。
どこがまちがってるんだろう・・って。
ほんと、>>935 さんTHX。これで勉強進みます。
0940デフォルトの名無しさん
2005/10/09(日) 11:32:110941デフォルトの名無しさん
2005/10/09(日) 11:46:28もうAPIとは全く関係ない話だが。
0942デフォルトの名無しさん
2005/10/09(日) 12:24:320943デフォルトの名無しさん
2005/10/09(日) 12:38:10えーまじー?
0944デフォルトの名無しさん
2005/10/09(日) 12:54:21>942は大ウソ
0945デフォルトの名無しさん
2005/10/09(日) 12:57:33おもろいから本当のことは教えなくてよかったんじゃないかな
0946デフォルトの名無しさん
2005/10/09(日) 13:00:100947デフォルトの名無しさん
2005/10/09(日) 13:11:210948デフォルトの名無しさん
2005/10/09(日) 14:29:54> 履歴、一時ファイル、クッキーなどは
WinInet
0949デフォルトの名無しさん
2005/10/09(日) 14:44:300950デフォルトの名無しさん
2005/10/09(日) 20:41:31画像に合わせたウィンドウを作りたいと思います。(例:ドラえもんの顔の形をしたウィンドウなど
やり方としては透過色以外の部分をピクセル単位のリージョンで作り、CombineRgn->SetWindowRgnすればいいのでしょうが
他に何かスマートなやり方ありませんでしょうか?
よろしくお願いします。
0951デフォルトの名無しさん
2005/10/09(日) 20:57:19UpdateLayeredWindow。Windows2000以降でないと使えんが。
0953デフォルトの名無しさん
2005/10/09(日) 21:22:59http://www.uploda.org/file/uporg211475.jpg
この画像の「4」のところにあるような文字と重なっているカーソルに変更したいのですが‥‥
0954デフォルトの名無しさん
2005/10/09(日) 21:25:33それはカーソルじゃなくてキャレットって言うんだ
質問に対してはすまん、シラネ
0955デフォルトの名無しさん
2005/10/09(日) 21:29:20レスありがとうございます
初めて知りましたorz
キャレットで調べてみます
0956953
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さんありがとうございました
0957デフォルトの名無しさん
2005/10/09(日) 22:18:180958デフォルトの名無しさん
2005/10/09(日) 22:29:060959デフォルトの名無しさん
2005/10/09(日) 22:51:57ローカルドライブに見せかける技って無いんですかね?
GetDriveType()の逆のSetする関数みたいなのがあれば最高なんだけぢ
0960デフォルトの名無しさん
2005/10/09(日) 22:55:29ていうか、そんなことできるようにする意味がない
0961デフォルトの名無しさん
2005/10/09(日) 23:18:280962デフォルトの名無しさん
2005/10/09(日) 23:22:110963デフォルトの名無しさん
2005/10/09(日) 23:25:470964デフォルトの名無しさん
2005/10/09(日) 23:28:550965デフォルトの名無しさん
2005/10/09(日) 23:30:420966デフォルトの名無しさん
2005/10/09(日) 23:41:560967デフォルトの名無しさん
2005/10/10(月) 00:58:49処理中に固まらないようにCreateThreadでスレッドを生成して処理をするのって
あまり良くないのですか?
どんどんメモリの消費量が増えていくんですが・・・
0968デフォルトの名無しさん
2005/10/10(月) 01:11:43作成したスレッドをCloseHandleしてないとか。
0969967
2005/10/10(月) 01:39:14CloseHandleは一応してるんですが、やり方が悪いのかも・・・。
一応タスクマネージャで見る限りではスレッドは終了しています。
0970967
2005/10/10(月) 01:52:54switch( LOWORD(wParam) ){
case IDOK1://ボタンが押されたときの処理
if((mainThread = CreateThread(NULL, 0,
test_Thread, hDlg, 0, NULL)) == NULL){
MessageBox(hDlg,"スレッドを生成できません","エラー", MB_OK);
break;
}
CloseHandle(mainThread);
}
break;
これじゃ駄目?
0971デフォルトの名無しさん
2005/10/10(月) 02:36:16一応言ってみる。
VCでは、_beginthreadexを使わないと、メモリリークが起きる。
Cのライブラリがスレッドごとに、一部のC標準ライブラリに必要なメモリを確保しているから。
CreateThread()を使うと、このメモリを開放するタイミングがわからず、リークする。
他のコンパイラを使っているなら、実装依存だから何ともいえない。
0972デフォルトの名無しさん
2005/10/10(月) 02:47:390973デフォルトの名無しさん
2005/10/10(月) 03:50:180974デフォルトの名無しさん
2005/10/10(月) 05:35:01スレッドは使わないほうがいい
0975デフォルトの名無しさん
2005/10/10(月) 05:41:080976デフォルトの名無しさん
2005/10/10(月) 07:53:00ボタンに対応した処理で固まるってどういう処理だよ
ボタン押して一瞬orしばらく応答無いのは普通だぞ・・・
0977デフォルトの名無しさん
2005/10/10(月) 08:45:42>>967に聞かなきゃ分からないけど
0978デフォルトの名無しさん
2005/10/10(月) 09:39:02スレッド内でCランタイムを使う場合は、_beginthread、_beginthreadex又はAfxBeginThread
スレッド内でAPIのみなら、CreateThread、_beginthread、_beginthreadex又はAfxBeginThread
>>967
固まるように感じる程の場合のみスレッドを考えればいい
0979デフォルトの名無しさん
2005/10/10(月) 11:20:500980デフォルトの名無しさん
2005/10/10(月) 11:28:19このスレ的にはそこまでは要らん。
AfxBeginThreadを使うならMFCスレに行け。
0981デフォルトの名無しさん
2005/10/10(月) 11:36:370982デフォルトの名無しさん
2005/10/10(月) 11:45:50当方、Ctl + Alt + del が押されてタスクマネージャーを表示させる前に簡単なユーザ認証を行うダイアログを
表示させるようにしようとしています。
また、そのダイアログを普通のデスクトップにモーダレスで表示させたいのです。
現在、MSgina.dllを使用してdllをつくり、WlxLoggedOnSAS()内でダイアログを表示させています。
その結果、普通のデスクトップでダイアログが表示されず、logonデスクトップで表示されます。
WlxSasNotify()という関数がSASを受信して画面を切り替えているのかと思うのですが・・・。
画面の切り替わる前にダイアログを表示させたいのですが、どなたかこの辺の知識のある方はいますでしょうか。
ご教授ください。
よろしくお願いします。
0983デフォルトの名無しさん
2005/10/10(月) 12:00:54かつてのMFCの開発コードがApplicationFrameworkXだから
0984デフォルトの名無しさん
2005/10/10(月) 13:41:34それぞれのボタンを押すことで画面1と画面2を切り替える処理は
毎回ボタンを作成・破棄せずに全てのボタンを最初に作成し
必要に応じて表示・非表示とした方が良いのでしょうか?
ここでは画面2つの場合を例にしてますが、実際にはもっとたくさんの画面とボタンがあります。
0985デフォルトの名無しさん
2005/10/10(月) 13:44:320986デフォルトの名無しさん
2005/10/10(月) 13:51:51即レスありがとうございます。それでしたら表示・非表示で行こうと思います。
ありがとうございました。
0988デフォルトの名無しさん
2005/10/10(月) 16:09:19デスクトップを切り替えてるのはWlxLoggedOnSASじゃないの?
「ようこそ」画面が有効だと画面切り替えなしでタスクマネージャが起動するから
少なくとも方法はあるはず
> モーダレス
モーダルかモードレスのどっちかにしなさい
0989デフォルトの名無しさん
2005/10/10(月) 20:55:17ttp://forums.belution.com/ja/vc/000/332/17s.shtml
0990デフォルトの名無しさん
2005/10/10(月) 20:59:54http://www.tt.rim.or.jp/~rudyard/torii009.html
0991デフォルトの名無しさん
2005/10/10(月) 21:27:53その意見はいちゃもんに近いな。
ニュアンス的にそぐわないとだけ指摘すればいいのに。
思慮が浅いだの背伸びしてるだの、いらんこと言う。
0992デフォルトの名無しさん
2005/10/10(月) 21:29:570993デフォルトの名無しさん
2005/10/10(月) 21:33:080994デフォルトの名無しさん
2005/10/10(月) 22:15:17そもそも語彙なんて変化していく物なんだから
確信犯だって今じゃ誤用したのが普通に使われるだろうに
0995デフォルトの名無しさん
2005/10/10(月) 22:20:36ゲーム理論確立者にノーベル賞まで読んだ
0996デフォルトの名無しさん
2005/10/10(月) 22:30:450997デフォルトの名無しさん
2005/10/10(月) 22:36:51http://pc8.2ch.net/test/read.cgi/tech/1128951330/l50
0998デフォルトの名無しさん
2005/10/10(月) 22:37:52>>990
> 本来「教授」とは、学問や技芸などをきっちりと体系立てて教える場面に使われる言葉です
変化云々の前に、ここが恣意的なせいで、説得力がないな
0999デフォルトの名無しさん
2005/10/10(月) 22:38:421000デフォルトの名無しさん
2005/10/10(月) 22:39:38http://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/
かつて勇敢な日本兵は戦後インドネシアの独立を助けました。
いまは東トルキスタンの番です!!
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。