■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build19
501
名前:
デフォルトの名無しさん
:04/06/03 19:27
>>500
んじゃ素直に初期化をDllMainでやれ。
502
名前:
478
:04/06/03 19:31
無事成功しました。皆さんありがとうございます。
せっかくなのでソースを貼っておきます。
CreateProcessやShellExecuteで作成したプロセスを終了させるサンプル
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1086258254&res=2
503
名前:
デフォルトの名無しさん
:04/06/03 19:40
動画ファイルからBMP形式で特定のフレームを取り出したいのですが、
AVI以外の形式の場合の取り出し方がわかりません。
OSにインストールされているコーデックを利用出来れば
取り出せるようになると思うのですが、
自作アプリからそれらのコーデックはどうやったら呼び出せるのでしょうか?
504
名前:
デフォルトの名無しさん
:04/06/03 19:40
>>502
ざっと見て気になったところ
・WM_CLOSEでメインウィンドウが閉じられたからといってプロセスが終了するとは限らない。
WM_QUERYENDSESSION/WM_ENDSESSION(Windows終了/ログオフ時のメッセージ)
のほうがより確実だと思う。
・対象プロセスが死んでると道連れになるからWaitForでINFINITE待機はやめれ
505
名前:
デフォルトの名無しさん
:04/06/03 19:59
>>503
DirectShowでできるんでない?
506
名前:
デフォルトの名無しさん
:04/06/03 20:58
>>500
>グローバルなオブジェクトのコンストラクタは
>DllMainより前に呼ばれるんですよ。
その DllMain は偽者ですよ。
リンカの設定で本物が指定してあるはずなんで、
それを書き換えるなりしてください。
507
名前:
デフォルトの名無しさん
:04/06/03 21:34
>>446
が言ってるのって、これかな
ttp://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.kernel/2004-03/0851.html
508
名前:
デフォルトの名無しさん
:04/06/03 22:33
>>502
ThreadのHANDLEもCloseしておけよ。
509
名前:
503
:04/06/03 22:38
>>505
レスありがとうございます。
DirectShowで検索してDXSDKのGrabBitmapsにたどり着きました。
これがやりたい事そのものみたいです。
しかしこのサンプルを実行してみると、
hr = pGraph->Connect( pSourcePin, pGrabPin );
の行で必ずVFW_S_PARTIAL_RENDERが戻ってきており、
またcallbackも呼ばれません。
どなたかこのエラーの回避法をご存じ有りませんでしょうか?
510
名前:
Earthquake
:04/06/03 22:52
はじめまして。Earthquakeと申します。
Windows2000サーバのActiveDirectoryを使用している環境でのフォルダリダイレクトの設定を出力したいのですが、Win32APIでそんな関数ないですか?
511
名前:
デフォルトの名無しさん
:04/06/04 02:42
#include <windows.h>
#include <wincrypt.h>
#include <stdio.h>
/*----------------------------------------------------------------------------*/
namespace hoge
{
AnsiString LonToStr(unsigned long x)
{
int r;
AnsiString tmp;
r = x % 16;
x = x / 16;
if (x > 0) {
tmp = tmp + uLongToStr(x);
}
switch (r){
case 0: tmp = tmp + "0"; break;
case 1: tmp = tmp + "1"; break;
case 2: tmp = tmp + "2"; break;
case 3: tmp = tmp + "3"; break;
case 4: tmp = tmp + "4"; break;
case 5: tmp = tmp + "5"; break;
case 6: tmp = tmp + "6"; break;
case 7: tmp = tmp + "7"; break;
case 8: tmp = tmp + "8"; break;
case 9: tmp = tmp + "9"; break;
case 10: tmp = tmp + "a"; break;
case 11: tmp = tmp + "b"; break;
512
名前:
デフォルトの名無しさん
:04/06/04 02:42
case 12: tmp = tmp + "c"; break;
case 13: tmp = tmp + "d"; break;
case 14: tmp = tmp + "e"; break;
case 15: tmp = tmp + "f"; break;
}
return tmp;
}
}
int main()
{
HCRYPTPROV hProv;
HCRYPTHASH hHash;
HCRYPTKEY hKey;
BOOL bResult;
BYTE Buf[] = "今日は良い天気です";
BYTE Signature[100];
DWORD SignLen;
/* デフォルト鍵コンテナの取得 */
CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0);
/* ハッシュ値の生成 */
CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash);
CryptHashData(hHash, Buf, lstrlen(Buf)+1, 0);
printf("%s\n", hoge::LonToStr(hHash));
513
名前:
デフォルトの名無しさん
:04/06/04 02:44
/* 後処理 */
CryptDestroyKey(hKey);
CryptDestroyHash(hHash);
CryptReleaseContext(hProv, 0);
}
これをコンパイルすると
C:\cpp>bcc32 hash.cpp
Borland C++ 5.6 for Win32 Copyright (c) 1993, 2002 Borland
hash.cpp:
エラー E2141 hash.cpp 8: 宣言の構文エラー
エラー E2190 hash.cpp 38: 不要な }
エラー E2316 hash.cpp 58: 'LonToStr' は 'TET_YAS' のメンバーではない(関数 main()
)
*** 3 errors in Compile ***
となっちゃうんですけど、原因がよくわかりません。教えてください。
514
名前:
デフォルトの名無しさん
:04/06/04 03:09
bcc32でつか・・・
単にAnsiStringが定義されていないだけでは・・・?
よくわからないけど
#include <vcl.h>
とかそれっぽいのをincludeすればいいんじゃない?
515
名前:
451
:04/06/04 04:08
>>465
どうも、レス遅くなってすみません!
言われましたとうりに、UpdateLayeredWindow()を使う事で
描画効率が格段に良くなりました!!
どうやら、自分で色々調べてみた結果
更新頻度の多いアプリでは、SetLayeredWindowAttributes()より
UpdateLayeredWindow()を使う方が推奨されているようですね。
本当にありがとうございました!!
516
名前:
デフォルトの名無しさん
:04/06/04 11:08
以下のように独自の構造化例外ハンドラをセットして、
その中から C++ 例外を創出するような以下のコードは危険でしょうか?
// カスタム例外ハンドラ
void _OnW32SEH( UINT code, _EXCEPTION_POINTERS * ep )
{
_EXCEPTION_RECORD * er = ep->ExceptionRecord;
throw MyCppException( code, er->ExceptionInformation );
}
// カスタム例外ハンドラを有効にする
void EnableSEtoCPPException()
{
_set_se_translator( OnW32SEH );
}
517
名前:
516
:04/06/04 11:53
すいません。
MSDNみたら、OKって書いてありました。
518
名前:
デフォルトの名無しさん
:04/06/04 11:58
ユーザ名とドメイン名とパスワードを渡して正規のユーザかどうかをチェックするにはどうしたらいいのでしょう?
MSDNまで漁ったけど漠然とし過ぎてるのか見付けられない…orz
519
名前:
デフォルトの名無しさん
:04/06/04 11:59
適当なプログラムをrunasで呼ばせて成功すれば認証OKってのはだめ?
520
名前:
518
:04/06/04 12:49
>>519
いや、もっとスマートなやり方がきっとある筈なので…orz
521
名前:
デフォルトの名無しさん
:04/06/04 13:35
ActiveDirectory なら、LDAP使うとか。
522
名前:
デフォルトの名無しさん
:04/06/04 15:12
IHTMLDocument2のwriteを使ってIEコンポにHTMLを表示しました。
しかし、2度目writeすると現在の表示されているものに追加されて表示されてしまいます。
そこで一旦HTMLを全消去したいのですが方法が分かりません。
clear()とかやってみましたが駄目でした。
523
名前:
デフォルトの名無しさん
:04/06/04 16:34
about:blank開け!
524
名前:
デフォルトの名無しさん
:04/06/04 16:40
>>523
IHTMLDocumentは使ったこと無い者だが、それ面白いな。
まさか、それがMS推奨の手順ではないよな??
525
名前:
デフォルトの名無しさん
:04/06/04 17:02
>>522
とりあえず、MSDNのIHTMLDocument2::clearの項目を読め
全てはそこにある
526
名前:
デフォルトの名無しさん
:04/06/04 17:54
リストビューをカスタムドローして文字色を変更させているのですが、
特定の色:RGB(0,0,255)を指定した場合のみ変更されず困っています。
RGB(0,0,254)やRGB(0,1,255)の場合は問題ありません。
背景色の場合は問題ないようです。
どなたか原因または対処法をご存知ないでしょうか。
Win2000 VC6.0です。
527
名前:
デフォルトの名無しさん
:04/06/04 18:09
>>526
見た目気づかないから(0,1,255)でいいんじゃね?
528
名前:
526
:04/06/04 18:39
どうも環境依存のようです。
実行環境のみ他のPCへ移してテストしたところ
WinXP NT4では問題ありませんでしたが、
他のWin2000では再現しました。
>>527
最終的に解決しない場合はそうします。
529
名前:
デフォルトの名無しさん
:04/06/04 18:46
>>528
ウチじゃ問題ないよ。
530
名前:
デフォルトの名無しさん
:04/06/04 18:50
ディスプレイの色数とかじゃないのか?
531
名前:
デフォルトの名無しさん
:04/06/04 18:51
>
>>527
>最終的に解決しない場合はそうします。
仕事でこの手の問題にぶつかったときに
あまり悩まずに
>>527
のような処置で
済ませてしまうオレはダメダメでしょうか・・・。
532
名前:
デフォルトの名無しさん
:04/06/04 18:52
>>530
R/G/Bの原色が出ないカラーディスプレイは
たぶん存在しないだろう。
533
名前:
デフォルトの名無しさん
:04/06/04 18:53
>>531
=kuzu
534
名前:
デフォルトの名無しさん
:04/06/04 20:00
IEのツールメニューに独自のメニューを追加するにはどうすればいいですか?
535
名前:
デフォルトの名無しさん
:04/06/04 20:57
>>531
damedame
536
名前:
531
:04/06/04 21:24
辞表出してきます
537
名前:
デフォルトの名無しさん
:04/06/04 21:39
おうよ。後は俺が就職してやるから安心してくれ。
538
名前:
デフォルトの名無しさん
:04/06/04 22:32
>>534
ttp://www.codeproject.com/atl/popupblocker2.asp
このページをCToolsMenuで検索。
でももっと簡単な方法があるような気がしないでもないが。
539
名前:
デフォルトの名無しさん
:04/06/04 22:50
SDKで数値データを出力する方法を教えて下さい。
具体的にはreadfile関数などで読み込んだ文字列を
16進数で表示したいのです。
540
名前:
デフォルトの名無しさん
:04/06/04 22:58
出力ってどういう意味?
541
名前:
デフォルトの名無しさん
:04/06/04 23:08
wsprintf
542
名前:
デフォルトの名無しさん
:04/06/04 23:11
>>541
それはここに書き込む前に使ってみたんですが
デバック画面出て強制終了してしまいます。他に方法ないですか?
543
名前:
デフォルトの名無しさん
:04/06/04 23:14
ぬるぽしないようにちゃんとメモリ確保したか?
544
名前:
デフォルトの名無しさん
:04/06/04 23:14
>>542
お前のプログラムがへたれなだけ。
545
名前:
デフォルトの名無しさん
:04/06/04 23:15
>>543
どうやらそれっぽいのでもっかいやってみます
546
名前:
デフォルトの名無しさん
:04/06/04 23:21
>>545
ちゃんとガッしとけ
547
名前:
デフォルトの名無しさん
:04/06/04 23:22
>>543
とりあえず ガッ
548
名前:
デフォルトの名無しさん
:04/06/04 23:23
ヒントをやって叩かれるとは世知辛い世の中じゃ
549
名前:
545
:04/06/04 23:26
強制落ちしないで起動しますた。なんとかできそうです。どうもですた
550
名前:
デフォルトの名無しさん
:04/06/04 23:31
これ(
>>539-548
)で解決したのか orz
551
名前:
デフォルトの名無しさん
:04/06/05 01:19
>>518
Net系のAPI使え
552
名前:
デフォルトの名無しさん
:04/06/05 01:28
オフスクリーンのピクセルデータをDIBにコピーするにはどうしたらいいでしょうか
BitBltじゃ遅くて...
553
名前:
デフォルトの名無しさん
:04/06/05 01:49
GetDIBits
554
名前:
デフォルトの名無しさん
:04/06/05 02:17
>>504
WM_CLOSEなら終了するけど
WM_*ENDSESSIONは無視する奴も結構あるぞ
555
名前:
デフォルトの名無しさん
:04/06/05 02:31
>>553
ありがとうございます
やってみたところあまり変わりませんでした
逆に少し遅くなってしまいました
556
名前:
デフォルトの名無しさん
:04/06/05 02:38
DIBは遅いもの、それはしょうがない気が。
αブレンドとかしたいのなら標準関数でDDBのままやるのがいいと思う
557
名前:
デフォルトの名無しさん
:04/06/05 02:41
ttp://www.sun-inet.or.jp/~yaneurao/intensive/diw1.html
まー、一応参考になるか?
558
名前:
デフォルトの名無しさん
:04/06/05 03:52
>>556
その通りでαブレンドがしたいのですが
DDBだとどうやってピクセルデータを弄るのかが分かりません
>>557
ありがとうございます
参考にさせていただきます
559
名前:
デフォルトの名無しさん
:04/06/05 03:57
AlphaBlend
560
名前:
デフォルトの名無しさん
:04/06/05 04:16
>>559
ありがとうございます
こんなAPIがあったとは!
αブレンドはこれで解決出来たと思います
561
名前:
デフォルトの名無しさん
:04/06/05 07:09
サブクラス化をして欲しい機能を実現したいのだけど、
ウインドウプロシージャを取り替えた後、そのウインドウが
終了するときは元のプロシージャに戻す必要があるのでしょうか?
また、戻すタイミングはいつがいいのでしょうか?
WM_DESTROYに返事をするときかな
WM_CHARとかWM_KEYDOWNとかでちょっと横取りして
あとはオリジナルにまかせっぱなしをしてるくらいだから
別に元に戻さなくてもいいような…
562
名前:
デフォルトの名無しさん
:04/06/05 11:43
hProcess->pid変換ってどうやるの。
563
名前:
デフォルトの名無しさん
:04/06/05 11:52
逆だった。hProcess<-pidね。
564
名前:
デフォルトの名無しさん
:04/06/05 13:05
>>563
OpenProcess
565
名前:
デフォルトの名無しさん
:04/06/05 13:17
タスクマネージャに出てくるプロセスの優先度を変更したいのですが、
どうすればいいのかさっぱり分かりません。
プライマリスレッドの優先度を低くしても、タスクマネージャの表示は標準のままなのですが・・・
566
名前:
デフォルトの名無しさん
:04/06/05 13:39
プロセスの優先度とスレッドの優先度は違うぞ。
どういう計算になるのか知らんけど。
567
名前:
デフォルトの名無しさん
:04/06/05 13:41
SetPriorityClass
568
名前:
562
:04/06/05 14:55
>>564
それを使ってみたけどうまくいかないです。
タスクマネージャで表示されているプロセス(winhlp32.exe pid:3308)を指定して以下のコードを実行するとみると
for(;;){ printf("%d\n", OpenProcess(PROCESS_ALL_ACCESS, FALSE, 3308)); Sleep(1000); }
2024
2036
2012
2008
2004
2000
1996
...
こんな結果が返ってきてしまいます。使い方はこれしかないですよね。
でも、毎回結果が違うってありえないonz...
569
名前:
デフォルトの名無しさん
:04/06/05 15:03
>>568
藻前の脳味噌のほうがありえない
ハンドルってどういうものだか分かってるのか
570
名前:
デフォルトの名無しさん
:04/06/05 15:16
>>568
・・・とんでもないな。
OpenしたものはちゃんとCloseしろとかいう以前の問題。
571
名前:
デフォルトの名無しさん
:04/06/05 15:47
>>568
やりとりのふいんきが昨日の
>>539
と似てるんだが
OpenProcessの返値を出力するために
>>539
の
質問をしたわけじゃないよな?
ちょっとお茶目すぎ
572
名前:
デフォルトの名無しさん
:04/06/05 16:47
下らないことかもしれませんが。
Sleep(INFINITE)を実行したスレッドを復帰させるにはどうすればいいですか?
573
名前:
デフォルトの名無しさん
:04/06/05 16:55
>>572
イベントなりセマフォと WaitForSingleObject を使え。
574
名前:
デフォルトの名無しさん
:04/06/05 17:09
>>572
はは、ほんとくだらないねーw
やったことないけど、ResumeThread じゃ起きないかな?
575
名前:
デフォルトの名無しさん
:04/06/05 17:12
無理
576
名前:
デフォルトの名無しさん
:04/06/05 17:36
DebugBreakProcess
577
名前:
デフォルトの名無しさん
:04/06/05 18:41
ジョイパッドはDirectXを使わないと使えませんか?
578
名前:
デフォルトの名無しさん
:04/06/05 19:12
joy
579
名前:
デフォルトの名無しさん
:04/06/05 19:27
>>578
ありがとう、出来ました
580
名前:
デフォルトの名無しさん
:04/06/05 19:48
リストボックスに何も文字入れていない状態なのに、一番上が点線で選択できるようになっているんですけど、
どうやった回避できますか?
一応プロパティあたりは見たつもりなんですが、無かったようですし、、、。
581
名前:
デフォルトの名無しさん
:04/06/05 20:15
>>580
何も無いときは真っ白なウィンドウを被せるとか
582
名前:
デフォルトの名無しさん
:04/06/05 20:23
hackyカコイイ
583
名前:
デフォルトの名無しさん
:04/06/06 03:21
CreateWindowに"MDICLIENT"を指定して作ったクライアントウィンドウ上で
右クリックメニューを出すにはどうしたらいいですか?
584
名前:
デフォルトの名無しさん
:04/06/06 03:29
>>583
あいにくと俺は超能力者ではないので喪前さんが言ってることが良く分からんのだが
ttp://black.sakura.ne.jp/~third/system/winapi/win78.html
ここに書いてあることで分かりそうかい?
ハズしてたらもうちょっと分かりやすく質問してくれ。
585
名前:
デフォルトの名無しさん
:04/06/06 04:04
>>584
すいません、分かりにくいですよね。
一応、通常の右クリックメニューの出し方は分かるんですが、
MDIアプリケーションにしようとして、
クライアントウィンドウを作ると右クリックメニューが出なくなってしまうので、
どうしたらいいでしょうか? という質問です。
口下手で申し訳ない…_| ̄|○
586
名前:
デフォルトの名無しさん
:04/06/06 12:11
口が下手なら、下の口で満足させてくれればOK
587
名前:
デフォルトの名無しさん
:04/06/06 12:14
やらにゃいか
588
名前:
デフォルトの名無しさん
:04/06/06 12:15
バラライカ
589
名前:
デフォルトの名無しさん
:04/06/06 12:30
>>585
MDICLIENTのウィンドウをサブクラス化したらできたような気がする。
590
名前:
デフォルトの名無しさん
:04/06/06 12:53
バナナ烏賊
591
名前:
デフォルトの名無しさん
:04/06/06 12:54
臭そうだ
KSASO
OSASK
592
名前:
デフォルトの名無しさん
:04/06/06 12:59
ト、 , ---- 、
H /::(/、^^, :゙i
(( (ヨb |::l,,・ ・,,{:K〉 ))
\`l:ト、(フ_ノ:」/ < ぉまぇら 全員 学習ルーム来いヤ!☆
゙、 ヾ〃 /
〉 ネヴァダ|
593
名前:
585
:04/06/06 20:08
>>589
ありがとうございます。出来ました。
ttp://black.sakura.ne.jp/~third/system/winapi/win64.html
で、ウィンドウプロシージャの切り替えが出来ることが分かったので、
"MDICLIENT"を指定したCreateWindowでhClientWindowを作った直後に、
SetWindowLong(hClientWindow, GWL_WNDPROC, (LONG)ClientWindowProc);
として、ウィンドウプロシージャを切り替えることでできました。
サンプルが必要な方は、アプロダ指定してくれれば、うpします。
それでは、本当にありがとうございました。
594
名前:
デフォルトの名無しさん
:04/06/07 00:15
>>592
不謹慎!(@u@ .:;)ノシ
595
名前:
デフォルトの名無しさん
:04/06/07 10:08
データの移行ツールを作ってます。
Win2K+SP4で使ってたOutlook2000のデータ(メールデータ,振り分け,アカウント,他)を
別PCのWinXPでOutlook2002に移行したいんですが、どーやれば良いんでしょう?
Outlookのメニューからエクスポート/インポートを実行すれば大体は移行できるんですが...
コレをプログラム上で行いたいんです。
市販の移行ツールではこの様なコトが可能になっているので
何らかの手段はあると思うのですが自分にはさっぱり判りません。
移行する方法を知っていたらご教授をお願いします。
追加。
Outlook相談室とそこで紹介されたトコにも投げてしまったんで、
マルチになってしまいました。<(_ _)>
596
名前:
デフォルトの名無しさん
:04/06/07 10:10
>>594
なによその顔文字は。ふざけてるの?
597
名前:
デフォルトの名無しさん
:04/06/07 11:23
>>595
調べてもわかんねえやつがそういうツール作るなよ。
598
名前:
デフォルトの名無しさん
:04/06/07 11:43
>>595
COMのインターフェース調べてそういった機能があれば使う。
なければOutlookのバイナリ解析して自力でやる。
あるいはMSと契約してコンバートツールを作らせてもらう。
599
名前:
デフォルトの名無しさん
:04/06/07 11:45
>>597
調べて判ったんなら、ココで聞かずに作ってますよ。
ヒントぐらい...くれ
600
名前:
デフォルトの名無しさん
:04/06/07 11:50
む。ヒントが...
601
名前:
デフォルトの名無しさん
:04/06/07 11:51
ここで具体的な情報が出てくるわけないだろ
602
名前:
デフォルトの名無しさん
:04/06/07 11:53
pstファイルをコピペすれば?
移行するだけなら、それで良くね?
603
名前:
デフォルトの名無しさん
:04/06/07 11:53
>>595
俺はOutlook使った事はないが Documents and Settings からファイル探して、
コピーすれば出来ると思うぞ。
604
名前:
デフォルトの名無しさん
:04/06/07 12:54
CreateProcessと同じようにして自プロセス内の新規スレッドとして他プロセスを起動する事の出来るAPIはありますか?
あれば教えてください
605
名前:
デフォルトの名無しさん
:04/06/07 13:12
ないだろ。情報やり取りしたいなら
普通にCreateProcessしてプロセス間通信するなりデバッグ系API使うなりするしかない。
606
名前:
デフォルトの名無しさん
:04/06/07 13:19
pstファイルだけ上書きするとメール本文(一覧?)は移行できても
そのあとの動作がなんかおかしくなるねん。
Outlook2000 → 2002だからかもしれんが
もちっと四苦八苦してみるか..._| ̄|○
607
名前:
デフォルトの名無しさん
:04/06/07 16:39
>>606
>Win2K+SP4で使ってたOutlook2000のデータ(メールデータ,振り分け,アカウント,他)を
>別PCのWinXPでOutlook2002に移行したいんですが、どーやれば良いんでしょう?
>Outlookのメニューからエクスポート/インポートを実行すれば大体は移行できるんですが...
「大体」ってのがどの程度なのか分からないのであれだが、
大体でいいのであれば、インポートとエクスポートのマクロ書けば
いいんじゃないの? これが一番楽な気がするけど。
移行ツールなんだから、どちらのPCにもOutlookが入ってる訳でしょ?
608
名前:
デフォルトの名無しさん
:04/06/07 19:13
>>605
ありがとうございます。他の方法でがんばってみます。
609
名前:
デフォルトの名無しさん
:04/06/08 02:10
>>595
プロファイルはMAPIで読み書きしてみるとか
610
名前:
デフォルトの名無しさん
:04/06/08 12:01
親Windowの上に子Windowが何個かついたものを作りました。
子Windowの配置をGetDialogBaseUnit()でおこなっています。
親Windowのフォントの大きさを変える事ってできるのでしょうか?
子WindowにはSendMessage(chWnd,WM_SETFONT,(WPARAM)hFont,MAKELPARAM(TRUE,0));
でできるのですが、親にSendMessage(hWnd,WM_SETFONT,(WPARAM)hFont,MAKELPARAM(TRUE,0));
しても変わりません。何かよい方法があるのでしょうか?
宜しくお願いします。
611
名前:
デフォルトの名無しさん
:04/06/08 12:11
>>610
何を期待してるのか知らないけど、親Windowのフォントの大きさを変えても
GetDialogBaseUnitの返す値は変わらないよ。「画面のプロパティー」で
設定されるシステムフォントのサイズを変えない限り
612
名前:
610
:04/06/08 12:16
>>611
うう・・有難うございます。
期待していたのは、Borlandのリソースエディタで、親Dialogのフォント
の大きさを変えると、子コントロールの大きさや位置がそれなりに変わって
くれるから、同じことをやりたかったんです。
ああ・・・
613
名前:
デフォルトの名無しさん
:04/06/08 13:18
>>610
親ウィンドウをダイアログで作るか、座標モードをキャラクタ単位にするとかどうよ。
614
名前:
デフォルトの名無しさん
:04/06/08 13:19
MapDialogRectは使えんのだっけ?
615
名前:
デフォルトの名無しさん
:04/06/08 13:24
CreateFileMappingで作ったマッピングファイルを複数のプロセスが共有していまして、
このマッピングファイルに変更があれば感知したいのです。
WaitForSingleObjectみたいな感じで、イベントを取るためには何を使えばいいのでしょうか?
616
名前:
デフォルトの名無しさん
:04/06/08 14:12
>>615
別途イベントかなんかで通知するのが良いと思う。
617
名前:
610
:04/06/08 14:19
>>613
なりがとうございます。
とりあえず、関数作りました。みてください。
void MoveChildWnd2(HWND handle,HFONT font,int x,int y,int w,int h)
{
HDC hdc = GetDC(handle);
::SelectObject(hdc,font);
int font_height;
int font_width;
TEXTMETRIC tm;
GetTextMetrics(hdc,&tm);
font_height = tm.tmHeight;
font_width = tm.tmAveCharWidth;
618
名前:
610
:04/06/08 14:20
DeleteDC(handle,hdc);
::SendMessage(handle,WM_SETFONT,(WPARAM)font,MAKELPARAM(TRUE,0));
RECT r;
r.left = MulDiv(x,font_width,4);
r.top = MulDiv(y,font_height,8);
r.right = MulDiv(w,font_width,4);
r.bottom = MulDiv(h,font_height,8);
window_x = r.left; //ウィンドウのX位置
window_y = r.top; //ウィンドウのY位置
window_width = r.right - r.left; //ウィンドウの幅
window_height = r.bottom - r.top; //ウィンドウの高さ
::MoveWindow(handle,r.left,r.top,r.right,r.bottom,TRUE);
}
619
名前:
デフォルトの名無しさん
:04/06/08 15:44
>>610
えーと。フォントのサイズでモニョモニョするっていうんじゃないんだ。
ダイアログは普通のウィンドウと違って、そのサイズはフォント文字のサイズを元に決められてるんだ。
試したことないからうまくいくか知らんけど、SetMapModeとかでウィンドウのサイズ単位を買えてやればいいんじゃないかと思ったのよ。
620
名前:
610
:04/06/08 15:58
>>619
そうです。これだと解像度がかわっても子Windowの位置関係は保持されそうでしょ?
case WM_CREATE:
HWND hEdit1 = CreateWindow("EDIT",・・略
HWND hEdit2 = CreateWindow("EDIT",・・略
HWND hButton = CreateWindow("BUTTON",・・略
HFONT font = CreateFont(・・・略
MoveChildWnd2(hEdit1,font,10,20,60,30);
MoveChildWnd2(hEdit2,font,10,60,60,30);
MoveChildWnd2(hButton,font,10,100,60,30);
break;
621
名前:
デフォルトの名無しさん
:04/06/08 16:32
>>620
うまくいきそうだけど、もし親ウィンドウのサイズも変えるのなら、
単純にそれにあわせて拡大・縮小すれば良いような気もしないでもない。
あとドロップダウンコンボボックスで不都合が出るので、もしあるなら対応すべし。
622
名前:
デフォルトの名無しさん
:04/06/08 19:18
はやく615の質問も答えてやれよ
みんなわからないのかい?
623
名前:
デフォルトの名無しさん
:04/06/08 19:21
うん。わからない。
じゃあね。
624
名前:
デフォルトの名無しさん
:04/06/08 19:36
>>622
>>616
が答えてるだろ。
マップするファイルで Notify オブジェクトが作れるなら
WaitFor〜 で待てるかも知らんが、君やってみてくれる?
625
名前:
デフォルトの名無しさん
:04/06/08 19:42
そんなもんがあったらものすごいオーバーヘッドだろうな
626
名前:
デフォルトの名無しさん
:04/06/08 19:45
翼くん並のものすごいオーバーヘッドだな。
627
名前:
デフォルトの名無しさん
:04/06/09 13:49
Cでの非MFCウィンドウズアプリ製作で、
一つのウィンドウにWndProcを複数作る事は出来るのでしょうか。
ゲームを作っていて、今のやり方は
LRESULT CALLBACK WndProc(...)
{
static int gameRoutine = Title;
if(gameRoutine == Title) HandleTitle();
else if(gameRoutine == InputName) HandleInputName();
}
みたいにやっているのですが、
LRESULT CALLBACK HandleTitle(...)
LRESULT CALLBACK HandleInputName(...)
と複数作って、タイトルの処理をしている時は、
WinMainのGetMessage()でイベントを受けたときHandleTitle()に行くようにして、
名前入力のときはHandleInputName()に行くようにしたいのです。
628
名前:
デフォルトの名無しさん
:04/06/09 13:52
元のメッセージループの直前で分岐すればいいんじゃないの。
そのゲーム用のWndProcで取りこぼしたメッセージを元のWndProcで処理する必要もあるだろうし。
629
名前:
デフォルトの名無しさん
:04/06/09 13:55
>>627
無理。一つのWinProcとして登録できるのは一個だけ。
二種類扱いたいならWinProcを設定しなおすしかないが、
結局は今やってるのとあまり変わらんように思う。
if文を無くしたいだけなら関数テーブルを使ってみたら?
630
名前:
627
:04/06/09 14:05
コンソールプログラムでは、タイトルの処理の時は、他のゲームルーチンを
まったく触らずに処理できますが、そういう感じにしたいのです。
int HandleTitle()
{
while(1)
{if(oo) {afterRoutine = InputName;break;}}
}
HandleInputName()
{
while(1){}
}
>>628
PeekMessageInputという事ですか?
これはCPU率とかありますし、スレッドも難しくて分かりません。
取りこぼしについては、個々のゲームルーチンで全部書くようにします。
>>629
無理ですか。ChangeWndProc(hWnd, HandleInputName);
とかは考えてみたのですが。関数テーブルは調べて見ます。
631
名前:
627
:04/06/09 14:07
>>630
>HandleTitle()
afterRoutineを返します。
>PeekMessageInput
PeekMessageに修正します。
632
名前:
627
:04/06/09 14:14
>>629
あっ、関数ポインタですか。それでやってみます。
御二方、どうもありがとうございました。
633
名前:
デフォルトの名無しさん
:04/06/09 14:21
>>630
WndProc変えるならSetWindowLongで
634
名前:
627
:04/06/09 14:29
>>633
ありがとうございました。やってみます。
635
名前:
デフォルトの名無しさん
:04/06/09 14:52
マウスの移動に関する情報として
マウスポインタの位置ではなく(コントロールパネルの
マウスから設定できるポインタ速度に左右されず)
マウス自体の移動量を得る方法はないでしょうか?
APIでは無理なのでしょうか?
636
名前:
デフォルトの名無しさん
:04/06/09 14:53
設定速度をかけられてるから、レジストリからその値を取得して割る
637
名前:
635
:04/06/09 15:07
>>636
なるほど
レジストリの値は
同じ速度ならどのマウスデバイスも同じ値なのでしょうか?
またレジストリキーも名前はいっしょなのでしょうか?
638
名前:
デフォルトの名無しさん
:04/06/09 15:13
名前は同じはず。以前調べたけど忘れた
マウスの設定アプレットをRegmonで監視すれば簡単に分かるはず
速度とマウス移動量の関係っつーのは一概に言えないね
経験上だけど普通のボール式PS2マウス・光学式PS2マウス・タブレットに付属してる電磁誘導マウス
同じくらい動かしても全部全く違う操作感だから。つまり、移動量を得られたところで環境に依存するから
あまり意味が無いんじゃないかと
639
名前:
デフォルトの名無しさん
:04/06/09 15:19
HKCU\Control Panel\Mouse\MouseSensitivityかな
640
名前:
635
:04/06/09 15:22
>>638
ありがとうございマウス(´・ω・`)ショボ-ン
641
名前:
デフォルトの名無しさん
:04/06/09 15:58
>>635
GetMouseMovePointsEx で GMMP_USE_HIGH_RESOLUTION_POINTS 指定するのって、
マウスだと意味無いんだっけ?
642
名前:
デフォルトの名無しさん
:04/06/09 16:37
意味無い
643
名前:
デフォルトの名無しさん
:04/06/09 20:11
モーダルダイアログが別のメッセージループから再帰的に呼ばれて
2つ出現してしまうことがありますが、皆さんどうやって対策していますか?
644
名前:
デフォルトの名無しさん
:04/06/09 20:17
そんな状態にならないようにする。
645
名前:
デフォルトの名無しさん
:04/06/09 20:26
それは設計が悪いよ。
646
名前:
643
:04/06/09 20:35
>>644
>>645
他のアプリから呼ばれるDLLなんでつ。。。
647
名前:
デフォルトの名無しさん
:04/06/09 21:06
if (まだでてなかったら) {
ダイアログを表示する
}
とかやれば?
648
名前:
デフォルトの名無しさん
:04/06/09 21:14
システム全体に対してフックするようなものだったら恐らく
>>647
のやり方でもダイアログ表示している間に更に他のプロセスから
呼ばれて二重呼び出しされるんじゃないかねー。こういう時はどうするもんなんだろ。
649
名前:
デフォルトの名無しさん
:04/06/09 21:18
看湯兎手楠
650
名前:
デフォルトの名無しさん
:04/06/09 21:29
>>648
その場合は
まだ表示されてなかったら
の内容が単なるフラグチェックや何かではすまないだけ
で、別に同じでしょ
>>649
のようにmutex使うとかすればいいのであって
651
名前:
デフォルトの名無しさん
:04/06/09 21:59
フォルダの新規作成を検知することは可能ですか?
コピー/移動/削除/名前の変更はICopyHookで実装済みです。
FindFirstChangeNotificationで通知前と後の比較を考えたんですが、
これだとコピー/移動との区別ができません。
何か良い方法はないでしょうか。
652
名前:
デフォルトの名無しさん
:04/06/09 22:08
>>651
ものすごく基本的なことだが
ディレクトリは作成と削除しかできない、んじゃないか?
そういうはなしではない?
653
名前:
651
:04/06/09 22:33
>>652
言葉足らずですみません。
現在シェル拡張DLLを作成しているんですが、ある特定のフォルダをエクスプローラで
コピー/移動/削除/名前の変更の操作を行った後にそれぞれ異なる処理を行っています。
上記4つはICopyHookのコールバック関数内で区別することができます。
さらに、新規にフォルダを作成した後にまた異なる処理を行いたいのです。
そのため、新規作成を検知する必要があるのです。
(フォルダの操作はエクスプローラで行われることが前提です)
654
名前:
デフォルトの名無しさん
:04/06/09 22:33
いつの話だよMS-DOSじゃあるまいし
移動できるよ
655
名前:
デフォルトの名無しさん
:04/06/09 22:37
こんばんわ
OPENFILENAME ofn;
と宣言したのですが、
「OPENFILENAMEは定義されていません。」とエラーが出ます。
何かincludeするヘッダがあるのでしょうか?
656
名前:
デフォルトの名無しさん
:04/06/09 22:47
MSDN引いた?
思いっきり載ってますが何か?
657
名前:
デフォルトの名無しさん
:04/06/09 22:56
includeするだけで済む環境がうらやましい(´・ω・`)
658
名前:
デフォルトの名無しさん
:04/06/09 22:58
MSDNって何ですか?
659
名前:
デフォルトの名無しさん
:04/06/09 23:03
たのむ少しはググッってくれ
660
名前:
デフォルトの名無しさん
:04/06/09 23:15
ググッってって何ですか? 隠語を使わないでください。
661
名前:
デフォルトの名無しさん
:04/06/09 23:18
('A`)
662
名前:
デフォルトの名無しさん
:04/06/09 23:26
>>660
おお、新しい反撃パターンだ。
これでは、伝家の宝刀の「ググれ!!」が使えないでないか...。
まあ、君にはインターネットは向いてないから、早めに回線切って引きこもった方がいいよ。
663
名前:
デフォルトの名無しさん
:04/06/09 23:30
引き篭もりですがいつもGoogleで検索してますがなにか?
664
名前:
デフォルトの名無しさん
:04/06/09 23:49
おっさん、おばさんの間でも一部には通じるぞ、「ググる」
665
名前:
デフォルトの名無しさん
:04/06/09 23:50
ヲタに通じてもね┐(´д`)┌
666
名前:
デフォルトの名無しさん
:04/06/09 23:52
うちの母親はぐぐってGIMPをマスターしたぞ
667
名前:
デフォルトの名無しさん
:04/06/10 00:34
>>654
いや「OSレベルでは」というか「ファイルシステムレベルでは」
ディレクトリは作成と削除しかないでしょ
フォルダ単位の移動やコピーを「アプリケーションレベルで」(shellapiも
ふくむ)実装はできるけど、OSレベルではフォルダごとの移動は
ディレクトリの作成→そこにファイル群を移動→元ディレクトリの削除
という形になるでしょ
>>653
という理由によってディレクトリだけ見ても「区別できない」んじゃないかと
思ったのだけど、見当違い?
668
名前:
デフォルトの名無しさん
:04/06/10 00:38
コンボボックス内の項目がどれでもいいので選択されているか、選択されていないのかを
判定したい場合どうすればいいでしょうか。お願いします。
669
名前:
デフォルトの名無しさん
:04/06/10 00:39
MoveFileExにディレクトリを指定するときの制限を見る限り、667のいうような形では無いと思われ。
ただ単にディレクトリエントリの書き換えだけだろ。
670
名前:
デフォルトの名無しさん
:04/06/10 00:47
***_GETCURSEL 系のメッセージ使えば大丈夫
671
名前:
デフォルトの名無しさん
:04/06/10 00:57
>>669
ごめんわたしがばかでした
逝ってくるよママン
672
名前:
デフォルトの名無しさん
:04/06/10 05:21
Win32APIのオフィシャルな情報ってのは、一体どこに?
673
名前:
デフォルトの名無しさん
:04/06/10 05:27
MSDN
674
名前:
デフォルトの名無しさん
:04/06/10 10:02
>>655
知っているが「こんばんわ」が気に入らないので教えない
675
名前:
デフォルトの名無しさん
:04/06/10 11:12
現在のスレッドのHANDLEを取得するにはどうすればいいですか?
676
名前:
デフォルトの名無しさん
:04/06/10 11:13
getcurrentthread
677
名前:
デフォルトの名無しさん
:04/06/10 11:44
現在のスレッドのIDを取得するにはどうすればいいですか?
678
名前:
デフォルトの名無しさん
:04/06/10 11:47
getcurrentthreadid
679
名前:
デフォルトの名無しさん
:04/06/10 11:48
つーかMSDN引け ぐぐれ ヴォケ
680
名前:
デフォルトの名無しさん
:04/06/10 12:58
>>677
この板ではどのスレッドもIDは表示されない。
681
名前:
デフォルトの名無しさん
:04/06/10 13:29
>>667
>OSレベルではフォルダごとの移動は
>ディレクトリの作成→そこにファイル群を移動→元ディレクトリの削除
>という形になるでしょ
それはドライブが異なる場合だけだろ。普通は親ディレクトリのinodeの
書き換えだけ。
682
名前:
デフォルトの名無しさん
:04/06/10 17:12
>>680
上手いな。ネタで
>>677
書いたのは俺だが
まさかそう返されるとは思わなかったぞ。
683
名前:
デフォルトの名無しさん
:04/06/10 17:14
こうして、徐々に簡単な質問はスルーされていくようになるのだった
684
名前:
デフォルトの名無しさん
:04/06/10 20:04
>>681
inode(に対応するWindowsでの概念)を書き換える必要あるの? 名前だけでしょ?
685
名前:
デフォルトの名無しさん
:04/06/10 22:11
スクリーンセーバーが発動するまでの時間や
モニタの電源を切るまでの時間を、それぞれ
取得したり再設定したりするにはどうするのでしょうか?
686
名前:
デフォルトの名無しさん
:04/06/10 22:58
>>685
画面のプロパティを開いて読んだり書き換えたりすればOK
687
名前:
685
:04/06/10 23:14
>>686
Win32APIの質問でした。
言葉足らずでごめんなさい。
該当するAPIはなんでしょうか?
688
名前:
デフォルトの名無しさん
:04/06/10 23:25
>>687
>>686
は、わかってて言ってるんだと思うぞ。
要は君に遠回しに 「 ぐ ぐ れ っ ! 」 と言いたいのではないかと。
もしググる気になったら、「スクリーンセーバー SystemParametersInfo」あたりで
ググってみると幸せになれるんじゃないかな。
689
名前:
685
:04/06/10 23:48
検索しました
少し幸せになりました
ありがとうございました
このAPIについてもっと調べてもっと幸せになります
690
名前:
デフォルトの名無しさん
:04/06/11 00:06
やさしいな
691
名前:
デフォルトの名無しさん
:04/06/11 00:13
>>687-688
Win32APIのスレだしなぁ。ここ。
692
名前:
デフォルトの名無しさん
:04/06/11 00:40
png画像を読み込んで1pixelの色を取り出したいんだけどGetPixelでおけ?
693
名前:
デフォルトの名無しさん
:04/06/11 00:42
画像を読み込んだだけでGetPixel出来る時代になったのか。有難や。
694
名前:
デフォルトの名無しさん
:04/06/11 05:20
waveOutGetPositionという命令がありますが、
これは現在位置を取得するものですが、
逆に現在位置を変更するようなものは無いのでしょうか?
簡単に言えばwaveOut系で途中から再生をしたいのですが
解説しているサイトやヒント等ありましたら、おしえてください。
695
名前:
デフォルトの名無しさん
:04/06/11 08:17
>>692
pngを読み込んで展開して、
デバイスコンテキストに描画したら、
GetPixelで色を取り出せるよ
696
名前:
デフォルトの名無しさん
:04/06/11 09:04
>デバイスコンテキストに描画したら
697
名前:
デフォルトの名無しさん
:04/06/11 12:46
つか、ググれしか言えない厨房はレスするな、ウザイし邪魔
698
名前:
デフォルトの名無しさん
:04/06/11 12:49
同意。あとマニュアル読め厨も。
699
名前:
デフォルトの名無しさん
:04/06/11 13:11
俺は最適な解を回答すべきだと思っている。
それが検索しろであったりマニュアル嫁であったりするのは、それが最適だと思っているからだ。
700
名前:
デフォルトの名無しさん
:04/06/11 13:21
697は来るな。ウザイし邪魔
701
名前:
デフォルトの名無しさん
:04/06/11 13:55
697=698=厨だろ
702
名前:
デフォルトの名無しさん
:04/06/11 15:52
>>694
ありません。自分で制御する必要があります。
703
名前:
デフォルトの名無しさん
:04/06/11 17:07
waveOut系はリングバッファ作ってwriteで垂れ流したことしかないから
偉そうなことは言えんが、ぱっとググってみた感じ、waveOutGetPositionも
結構色々と問題があるような感じなんで位置情報は自分でタイミング取って
見た方がよいのかも。
704
名前:
デフォルトの名無しさん
:04/06/11 17:45
waveOutGetPosition で常に0を返す論外なドライバとか…
705
名前:
デフォルトの名無しさん
:04/06/11 19:12
>>702-704
返答ありがとうございます。自前でやるしかないみたいですね。
そうなると、無圧縮なPCMであれば位置判定は簡単だと思いますが
圧縮されたデータ(MP3等)の場合、難しいですね。
一旦、無圧縮なPCMに展開する必要があるという事でしょうか?
706
名前:
初心者です
:04/06/11 19:25
InstallShieldにてインストーラを作っているのですが、ラジオボタンの表示/非表示
(visible? hide?)を切り替えることってできますか?
707
名前:
デフォルトの名無しさん
:04/06/11 19:52
ライセンスを下までスクロールしないとライセンス同意ボタンを押せないようにしたいのかな
708
名前:
デフォルトの名無しさん
:04/06/11 20:21
ちゅーかスレ違いだしなー
709
名前:
デフォルトの名無しさん
:04/06/11 20:40
>>705
圧縮データ?
そうか、waveOut は 圧縮形式の WAVEFORMATEX ヘッダも
処理できたか。使ったこと無いから PCM 以外でどうなるか分
からないけど、少なくとも mp3 の場合は自分でヘッダ作らない
と(WAVE MP3)処理できないだろう。
俺は WAVE ファイルの場合はあらかじめ ACM の API
で無圧縮 PCM に変換してから waveOut API に渡してたからな。
mp3 は独自にデコーダ用意する必要がある。(APIは無い)
なんか、あなたの場合は DirectShow を
使った方が良いんじゃないかな?
手っ取り早くやりたいなら、そっちの方が早いよ。
710
名前:
692
:04/06/11 20:45
>>695
ありがとう
描画しなきゃだめっすか…何百枚の画像を処理しなくちゃならんのだけど…
何かアドバイス頂けると嬉しいです。
711
名前:
デフォルトの名無しさん
:04/06/11 22:07
自前で解析した方が早いんじゃないか?
712
名前:
デフォルトの名無しさん
:04/06/11 22:35
>>692
libpngとかImageMagickでも使ってロードして、後は適当に解析汁。
713
名前:
名無し@沢村
:04/06/11 23:57
ちっ、ここはザコが立てたスレか?
Windowsプログラムとは可愛いやっちゃ♪
こっちはメインウィンドウ完成間近だというのによ…♪もうすぐメインウィンドウできるよ〜♪
といってもCとかアセンブラとかでメインウィンドウ組むんじゃないぞ。それじゃまるでザコだ。
こっちは、メインウィンドウがつくれるプログラムつくってるのよ〜♪つまりVisual E++だ。
そうです、みなさんもうすぐVisual E++はメインウィンドウがつくれる本格的なプログラミングソフトに進化します♪
いまやっとVisual E++に補助的にバイナリエディタつかってメインウィンドウつくるのに成功したところ。
補助的にバイナリエディタつかわないで、Visual E++のみでメインウィンドウつくれるよになるには、あと修正個所が1、2個所…
みなさんもうすぐでっせ〜♪
714
名前:
名無し@沢村
:04/06/11 23:58
ちっ、ここはザコが立てたスレか?
Windowsプログラムとは可愛いやっちゃ♪
こっちはメインウィンドウ完成間近だというのによ…♪もうすぐメインウィンドウできるよ〜♪
といってもCとかアセンブラとかでメインウィンドウ組むんじゃないぞ。それじゃまるでザコだ。
こっちは、メインウィンドウがつくれるプログラムつくってるのよ〜♪つまりVisual E++だ。
そうです、みなさんもうすぐVisual E++はメインウィンドウがつくれる本格的なプログラミングソフトに進化します♪
いまやっとVisual E++に補助的にバイナリエディタつかってメインウィンドウつくるのに成功したところ。
補助的にバイナリエディタつかわないで、Visual E++のみでメインウィンドウつくれるよになるには、あと修正個所が1、2個所…
みなさんもうすぐでっせ〜♪
715
名前:
デフォルトの名無しさん
:04/06/12 00:44
>>713-714
スレ違い。
http://pc5.2ch.net/test/read.cgi/tech/1085915001/
こっちでどうぞ。
716
名前:
デフォルトの名無しさん
:04/06/12 00:54
沢村こんなとこにもくるのか。
ところで、IEのお気に入りの中から一定期間アクセスがなかったら削除するツール作ろうと思ったんだけど、
最終アクセス日(ファイルアクセスにあらず)ってAPIがらみで取得できませんかねえ。
調べたところ「履歴」フォルダにしか残っていないので履歴削除したら無理ぽなんだよねえ。
717
名前:
デフォルトの名無しさん
:04/06/12 01:28
>>709
返答ありがとうございます。
圧縮データとは、MP3(not *.mp3ファイル)とか
ADPCM等です。(*.wavファイル)
何も考えずに、waveOutOpen -> waveOutPrepareHeader
-> waveOutWriteで再生できるので、今はそのままですが
求めている事は
・メモリにあるデータから再生
・ボリュームコントロール
・シーク可能
・Win98(無印)の何も入れてない状態で動く
…という事なのです。DirectShowでの機能は
Win98(無印)に標準で入っているのでしょうか?
>ACM の API
とりあえず、この方向で展開して自前でシークしたいと
思います。ありがとうございました。
718
名前:
デフォルトの名無しさん
:04/06/12 02:42
>>717
> ・メモリにあるデータから再生
あー DirectShow でメモリからだと自前でソースフィルター
かかないかんね。サンプルもあるけど、
この場合はフィルター書いてまでも DirectShow を
使う意味は無いね。
>>ACM の API
>とりあえず、この方向で展開して自前でシークしたいと
まあ、もっともオーソドックスな手法だけど、長年使われていた
手法でもあるし、頑張ってみるしか。
719
名前:
デフォルトの名無しさん
:04/06/12 03:00
初心者質問でスマソ
SetMapMode(hdc,MM_LOMETRIC);
rect.left=100;
rect.top=-300;
rect.right=500;
rect.bottom=-100;
DrawText(hdc,Text1,-1,&rect,DT_CALCRECT | DT_WORDBREAK);
DrawText(hdc,Text1,-1,&rect,DT_WORDBREAK);
DrawText(hdc,Text1,-1,&rect,DT_CALCRECT | DT_WORDBREAK);
DrawText(hdc,Text1,-1,&rect,DT_WORDBREAK);
としてプリンタで印刷したところ
一回目のText1と2回目のText1が続けて縦一列に印刷されたのですが
なぜなのでしょうか
ステップしてもrectの内容が変わる事はなかったので
同じ場所に二重に印刷される物だと思ってたのですが
DT_CALCRECTをちゃんと理解しないで使ってる気がするので
やはりこれのせいなのでしょうか
分かる方おねがいします
720
名前:
デフォルトの名無しさん
:04/06/12 03:37
>>692
GDI+のBitmapクラス使ってPNG画像を読み込んで、GetPixcelメソッドを呼ぶ。
721
名前:
デフォルトの名無しさん
:04/06/12 17:04
FindWindowを使ってクラスやタイトルが部分一致するウィンドウを探すのは無理
ですか?
クラスとタイトルはそれぞれ必ず完全に一致する必要があるのでしょうか.
722
名前:
デフォルトの名無しさん
:04/06/12 17:07
EnumWindows()使え
723
名前:
デフォルトの名無しさん
:04/06/12 17:19
>>722
了解
724
名前:
デフォルトの名無しさん
:04/06/13 22:25
こんばんわ
RebarのIE式メニューを作ろうとしてるんですが
うまくいきません
ソースコードをUPしますので
http://www.geocities.co.jp/SiliconValley-Oakland/3559/rebar.txt
どこが間違ってるのか見ていただけるとありがたいです
よろしくお願いいたします
InitCommonControlsExは処理してあります
呼び出し順番は
hRebar=_createRebar(hWnd,hInst);
_createIEMenu(hRebarIEMenu,hRebar,tbIEMenu);
_sendTextToIEMenu(hRebarIEMenu,"File_desu",tbIEMenu,0);
_sendTextToIEMenu(hRebarIEMenu,"Edit_desu",tbIEMenu,1);
_sendButtonToIEMenu(hRebarIEMenu,2,tbIEMenu);
_attachIEMenuToRebar(hRebarIEMenu,hRebar);
725
名前:
デフォルトの名無しさん
:04/06/14 00:37
自前のメニューバーに動的に項目を追加したいんですが
すでに、追加したい項目のIDが追加されているかどうか
ってどうやって調べられますか?
AppendMenuつかうと、無節操に追加されるし
EnableMenuItemだと、見えなくならないし、で微妙なので、
助けてください。
726
名前:
デフォルトの名無しさん
:04/06/14 01:00
GetMenuItemInfo
727
名前:
デフォルトの名無しさん
:04/06/14 01:39
>>724
10万くらいくれたらデバッグしてやらんでもない
728
名前:
デフォルトの名無しさん
:04/06/14 01:46
GetMenuItemCount
GetMenuItemID
GetMenuPosFromID
この辺使えば自在だ。
729
名前:
デフォルトの名無しさん
:04/06/14 10:47
メニューの中に「送る」のように外部のフォルダの中身によって表示される項目がコロコロ変わるサブメニューを作っています。
何を表示すればよいかは簡単に取得できたのですが、これをいつメニューに反映させればよいのかが分かりません。
最初は WM_INITMENU か WM_INITMENUPOPUP で更新すればよいと考えていたのですが
このサブメニューの名前や位置が変化するので、親メニューと位置だけでは、
どのサブメニューが表示されようとしているのかが分かりません。
こういったメニューのアイテムを最新の状態に維持するにはどうすればよいのでしょうか?
あるいは、メニューバーの特定のサブメニューが表示されようとしていることを知る方法はあるでしょうか。
どうかよろしくお願いします。
730
名前:
725
:04/06/14 10:52
>>726
,728
サンクス
731
名前:
デフォルトの名無しさん
:04/06/14 11:05
>>729
メニューの位置が動的に変更しないようにする。
というのはアレなので、ちょうど
>>728
が書いてるAPIで位置から特定してやればいいんじゃないかと。
732
名前:
デフォルトの名無しさん
:04/06/14 11:06
それで、
>>726
のAPIを使用してメニューの情報を得ればいい。
733
名前:
デフォルトの名無しさん
:04/06/14 12:36
>>731-732
ありがとうございます。
ただ、相手がサブメニューなので ID が無いのですが
そのような場合はどうすればよいのでしょう?
734
名前:
デフォルトの名無しさん
:04/06/14 12:46
>>733
ポップアップにもIDはつけられる。
735
名前:
デフォルトの名無しさん
:04/06/14 12:53
>>734
ありがとうございます。
今まで知りませんでした。
これで解決できそうです。
どうもありがとうございました。
736
名前:
デフォルトの名無しさん
:04/06/14 13:09
つか、ググれしか言えない厨房はレスするな、ウザイし邪魔
737
名前:
デフォルトの名無しさん
:04/06/14 13:11
つか、もう終わった話題に亀レスする奴、ウザイし邪魔
738
名前:
デフォルトの名無しさん
:04/06/14 13:23
ククれ
739
名前:
デフォルトの名無しさん
:04/06/14 13:32
王子さま
740
名前:
デフォルトの名無しさん
:04/06/14 13:40
あの〜、質問よろしいでしょうか?
741
名前:
デフォルトの名無しさん
:04/06/14 13:42
>>740
バーモント
742
名前:
デフォルトの名無しさん
:04/06/14 13:49
高木ブー
はウクレレか
743
名前:
デフォルトの名無しさん
:04/06/14 13:55
ハヤシもあるでよ
744
名前:
デフォルトの名無しさん
:04/06/14 13:56
>740
質問していいかくらい、自分でググって調べろ。
745
名前:
デフォルトの名無しさん
:04/06/14 14:11
ttp://www.google.co.jp/search?q=%E8%B3%AA%E5%95%8F%E3%81%97%E3%81%A6%E3%81%84%E3%81%84%E3%81%8B&ie=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2
746
名前:
デフォルトの名無しさん
:04/06/14 14:19
>>734
>ポップアップにもIDはつけられる。
どうやればできるのでしょう。
方法を探したのですが見つかりませんでした。
747
名前:
デフォルトの名無しさん
:04/06/14 14:22
ホントにできるのか?
748
名前:
デフォルトの名無しさん
:04/06/14 14:26
>>746
嘘を嘘と見抜けないようだと・・・
メニューアイテム関連のAPIは、コマンドIDじゃなくてインデックスでも使えるから、
インデックスを覚えておくのが良いと思う。
749
名前:
デフォルトの名無しさん
:04/06/14 14:28
あるいはポップアップのHMENUをそのまま覚えておくか。
750
名前:
デフォルトの名無しさん
:04/06/14 14:38
ぐぐれはともかく、分かってないならレスしないでくれ
ってのは、たまにあるな。
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.