Win32API質問箱 Build47
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/13(月) 08:56:12やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>2-5くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
0696デフォルトの名無しさん
2006/12/06(水) 21:52:500697デフォルトの名無しさん
2006/12/06(水) 21:53:280698696
2006/12/06(水) 21:54:44他ののWindowバージョンだとどうでしょうか。
0699デフォルトの名無しさん
2006/12/06(水) 21:57:100700デフォルトの名無しさん
2006/12/06(水) 21:59:53http://www.google.com/search?num=100&hl=ja&ie=EUC-JP&q=%A5%EA%A5%B9%A5%C8%A5%D3%A5%E5%A1%BC%A4%CE%B9%D4%A4%CE%B9%E2%A4%B5
0701デフォルトの名無しさん
2006/12/06(水) 22:00:33ゲーム作ってる時とか
0702デフォルトの名無しさん
2006/12/06(水) 22:02:11WM_PAINT内の処理がありえないな
せっかく描画しようとしてるところを、描画もせずに「もう描画しなくていいよ」なんていや消えるのは当たり前だろ
ツールバーも親ウィンドウ上にあるものだぞ?
0703デフォルトの名無しさん
2006/12/06(水) 22:05:48人に「ちょっとこっち来て!」って呼んどいて
来たら「こっち来るんじゃねーよ!」って言うようなもんだな。
0704686
2006/12/06(水) 22:06:39NULLなりGetClientで得た領域をそのまま渡すと
ツールバーが塗り潰されてしまいます。
ツールバーとValidateRectは合わないのだろうか
0705デフォルトの名無しさん
2006/12/06(水) 22:07:49>>695
0706デフォルトの名無しさん
2006/12/06(水) 22:09:42つーかあんた、最初の自分の書き込みで最後に結論出してるだろうが
0707686
2006/12/06(水) 22:12:12BeginPaint〜EndPaint を使うと
DirectXの
Clear, BeginScene, EndScene, Present使うと
チラチラチラチラするもんで
出来れば ValidateRect を使いたいなと
0708704
2006/12/06(水) 22:12:300709デフォルトの名無しさん
2006/12/06(水) 22:44:13>>686=>>704=>>708なの?
0710708=706
2006/12/06(水) 22:46:580712デフォルトの名無しさん
2006/12/06(水) 22:56:44文字化けするかしないかってだけなら
そ ん な こ た ぁ 自 分 で 実 行 し て み り ゃ わ か る だ ろ
0713デフォルトの名無しさん
2006/12/06(水) 22:59:31>>696みたいな質問は出てくるわけがないと思うんだが。
0714デフォルトの名無しさん
2006/12/06(水) 23:00:38まあソフトで使う分には、対象言語圏が日本なら心配要らないだろう
0715デフォルトの名無しさん
2006/12/06(水) 23:03:070716デフォルトの名無しさん
2006/12/06(水) 23:05:44丸数字の文字化けを考えないといけないのは違うOSで表示させる場合
(WEBアプリケーションとか)
0717デフォルトの名無しさん
2006/12/06(水) 23:06:26この場合も化けはしないけどな
0718696
2006/12/06(水) 23:21:48参考になりました。
0719デフォルトの名無しさん
2006/12/06(水) 23:34:04勿論丸付き数字どころの騒ぎではない。
0720デフォルトの名無しさん
2006/12/07(木) 00:09:420721デフォルトの名無しさん
2006/12/07(木) 00:15:000722デフォルトの名無しさん
2006/12/07(木) 00:26:590723720
2006/12/07(木) 00:41:14に表示させない(つかわない)方法はないでしょうか?
0724デフォルトの名無しさん
2006/12/07(木) 01:09:400725デフォルトの名無しさん
2006/12/07(木) 01:20:220726デフォルトの名無しさん
2006/12/07(木) 02:07:180727デフォルトの名無しさん
2006/12/07(木) 05:58:30その他のアイコンエディタをほとんど使ってないから、
他と比べてどうかは知らんが満足してる。
0728デフォルトの名無しさん
2006/12/07(木) 07:05:56不可視の親ウィンドウ
0729デフォルトの名無しさん
2006/12/07(木) 10:15:11>ツールバーが塗り潰されてしまいます。
DirectXが塗りつぶしているのなら、DirectXの使う領域を指定する。
単一色で塗りつぶされているのなら、ウィンドウスタイルにWS_CLIPCHILDRENをつける。
または、WNDCLASS(EX)のhbrBackground=NULLでもいいと思う。
それより、DirectX描画用の子ウィンドウをつくり、
WM_SIZEでクライアント領域のツールバーの下に移動する方が簡単。
0730デフォルトの名無しさん
2006/12/07(木) 10:27:26別にウィンドウが一旦隠れたわけでもないのに
メッセージループ内からWM_PAINT発生させてんのか理解できんのだが
そんなことすりゃチラつくのは当たり前だろうと
WM_PAINTの存在意味を解って無いだろ
0731デフォルトの名無しさん
2006/12/07(木) 11:39:00BeginPaintせずにValidateRectしてるんだからちらつきましぇん。
0732686
2006/12/07(木) 11:59:59有難うございます
WS_CLIPCHILDRENで解決しました。
領域を指定しての最初のValidateRect
は無効領域を残したままだったので
いつまでもWM_PAINTが残っている状態でした。
かといって全領域を指定するとWM_PAINTは消えますが
ツールバーごと塗り潰すといった事態に
DirectXに関してはPresentに
ツールバー分を引いたクライアント領域に
転送(2番目引数)するようにしています。
>DirectX描画用の子ウィンドウをつくり、
>WM_SIZEでクライアント領域のツールバーの下に移動する方が簡単。
その内使わせて頂きます。
>>730
アニメーションやらシミュレーションやらを入れたいと思ったので
WM_PAINTを発生させまくる状況を作ってみました。
0733デフォルトの名無しさん
2006/12/07(木) 16:31:03@icon + ドットエディタ
0734デフォルトの名無しさん
2006/12/07(木) 20:26:05アニメーションやらシミュレーションやらを入れるのにWM_PAINT連打せねばならぬのか
0735デフォルトの名無しさん
2006/12/07(木) 23:34:51他アプリケーションのDataGridに表示されている値を取得する方法はありますでしょうか?
LABELやConboBoxの値はWin32APIを使って取得する方法は分かるのですが
DataGrid系に表示されている値の取得方法がどうしても分かりません・・・('A`)
0736デフォルトの名無しさん
2006/12/08(金) 01:29:31CD-Rや、DVD-Rなどの光メディアに、プログラムから書き込むことって可能ですか?
API名とか、ヒント下さい。
0737デフォルトの名無しさん
2006/12/08(金) 01:56:42IMAPI
0738デフォルトの名無しさん
2006/12/08(金) 01:59:27SPTI
0739デフォルトの名無しさん
2006/12/08(金) 02:00:54どうしても0が返されます。
DirectXアプリ以外のエリアで情報を取得する分には問題ないのですが。
特殊なやり方をしないととれないのでしょうか。
0740デフォルトの名無しさん
2006/12/08(金) 02:07:02なるほど、こんなのが有ったんですね。
ありがとうございます。助かりました。
0741デフォルトの名無しさん
2006/12/08(金) 03:15:590742デフォルトの名無しさん
2006/12/08(金) 04:25:420743デフォルトの名無しさん
2006/12/08(金) 05:08:280744kk
2006/12/08(金) 08:51:48ダイアログのエディットボックスに入力されてる文字列はどうすれば
PTSTRなどに入れられるのでしょうか
0745デフォルトの名無しさん
2006/12/08(金) 08:57:560746kk
2006/12/08(金) 09:17:280747デフォルトの名無しさん
2006/12/08(金) 10:02:430748245
2006/12/08(金) 11:21:04rectangleで書きこんで一部消去とか(真中だけ抜く)は、
抜きたい部分をXORで合成するしかないでしょうか?
指定したrectの分だけ消去するとかできないもんでしょうか。
CreateCompatibleDCで作った場所に書きこんで、
ほかのDCに書きこんだら、CreateCompatibleDCにrectangleしたところ意外は、
透明でほかのDCに書きこまれるので、rectangleの真中だけ書きこむ前の透明にしたいです。
0749デフォルトの名無しさん
2006/12/08(金) 11:23:28日本語でおk
rectangleしたところって意味不明すぎるw
0750デフォルトの名無しさん
2006/12/08(金) 11:25:40GetDlgItemTextは親のウィンドウハンドルと子のIDがあれば十分。
GetWindowTextLengthとGetWindowTextのコンビを行いたければ、GetDlgItem使え。
0751748
2006/12/08(金) 12:33:40HDC hDC = GetDC(hWnd)
HCD hMemoryDC = CreateCompatibleDC(hDC);
HBITMAP hBitmap = CreateComatibleBitmap(hDC, 640, 480);
SelectObject(hMemoryDC, hBitmap);
DeleteObject(hBitmap);
SelectObject(hMemoryDC, GetStockObject(GRAY_BRUSH));
Rectangle(hMemoryDC, 0, 0, 640, 480);
ClearRect(hMemoryDC, 160, 120, 480, 360);// Rectangleで書いたところの一部を消したい
----------
WndProcでWM_PAINTのところ
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);
BitBlt(hDC, 0, 0, 640, 480, hMemoryDC, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps)
↑みたいな処理で、ClearRectに該当する処理を探しています
0752デフォルトの名無しさん
2006/12/08(金) 12:47:57>SelectObject(hMemoryDC, hBitmap);
>DeleteObject(hBitmap);
こういうところ見ると仕組みを理解してないのがよくわかる。
ここを一通り呼んで勉強してくれ。
ttp://msdn.microsoft.com/library/en-us/dnanchor/html/gdi.asp
0753748
2006/12/08(金) 13:02:33ttp://www13.plala.or.jp/kymats/study/MULTIMEDIA/bmp_multibuf.html
ここを参考にしました
0754748
2006/12/08(金) 13:11:20使っている間は、DeleteObjectしたらあかんという意味ですね。
プログラミングWindowsを読むと、WM_DESTROYでDeleteObject(hBitmap)みたくなっているのが多いので。
0755kk
2006/12/08(金) 13:27:56ありがとうございます。
>>747
そう思ったのは、リソーススクリプトを使用したので
HWND = CreateWindow(--------,---,-,-,.....);
と書かなかったからです。
>>750
GetDlgItemText()で、ちゃんと入力された文字列を取り入れることができました。
ありがとうございます。
0756デフォルトの名無しさん
2006/12/08(金) 15:17:28何そのダメすぎるサイト
そんなとこ参考にしてたらキミも終わっちまうぜ
0757748
2006/12/08(金) 15:39:200758デフォルトの名無しさん
2006/12/08(金) 16:50:470759デフォルトの名無しさん
2006/12/08(金) 16:54:01JavaでいうところのSystem.currentTimeMillisはありますか?
GetLocalTimeでSYSTEMTIMEとって自分で掛け算ですか?
0760デフォルトの名無しさん
2006/12/08(金) 17:00:460761デフォルトの名無しさん
2006/12/08(金) 18:57:27どんな方法がよさげ?
コマンドラインパラメータ以外で。
0762デフォルトの名無しさん
2006/12/08(金) 19:10:59コマンドライン以外だと渡して起動というよりも起動後通信だな。
pipe、共有メモリ、ネットワーク等。
0763デフォルトの名無しさん
2006/12/08(金) 19:18:10量は多くても1KBくらい。
確実に渡せる方法がいいです。
0764デフォルトの名無しさん
2006/12/08(金) 19:39:200765デフォルトの名無しさん
2006/12/08(金) 19:46:54そうしてみるわ
トンクス
0766デフォルトの名無しさん
2006/12/08(金) 20:30:14Windowsのエクスプローラの、ファイルやフォルダが表示される部分を
自分で作ったウィンドウに埋め込むにはどうすれば良いでしょうか。
0767デフォルトの名無しさん
2006/12/08(金) 20:37:23IEコンポーネントを使っている例だが参考になる。
アドレスバーに入力すればわかるが、フォルダだって表示できる。
0768デフォルトの名無しさん
2006/12/08(金) 20:43:300769デフォルトの名無しさん
2006/12/08(金) 20:52:36メモリマップの表示っていうのありますが、あれはどの API
をつかってるんでしょうか?
開始アドレス フラグ サイズ
00010000 -RW- 1000
00020000 -RW- 1000
0011F000 -RW- 11000
....
77FDF000 -ERW- 1000
77FFE000 -R- 1000
こういうやつです。
0770デフォルトの名無しさん
2006/12/08(金) 21:02:390771デフォルトの名無しさん
2006/12/08(金) 21:46:580772デフォルトの名無しさん
2006/12/08(金) 21:50:10無理。
スタティックリンクライブラリに置くことは可能。
0773デフォルトの名無しさん
2006/12/08(金) 21:53:060774デフォルトの名無しさん
2006/12/08(金) 22:23:21ワイルドカード+拡張子でファイルを検索してるのですが、これで引っ張ってくる
ファイル名の順番はどういう順で返されるのでしょうか?
最初は名前順かと思ったのですが違うようで…
0775デフォルトの名無しさん
2006/12/08(金) 22:44:57MSDN読めよ
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/findnextfile.asp
>The order in which this function returns the file names is dependent on the file system type.
>With the NTFS file system and CDFS file systems, the names are returned in alphabetical order.
>With FAT file systems, the names are returned in the order the files were written to the disk,
>which may or may not be in alphabetical order.
0776デフォルトの名無しさん
2006/12/08(金) 22:51:29それは邦訳を読んだけどそれでもイマイチ疑問なのヨ
具体的な例で、検索対象フォルダに名前が"a.txt"と"_.txt"で始まるファイルがあるとき、
explorerで「アイコンの整列->名前順」とすると
_.txt
a.txt
という順で表示されますが、FindFirst/FindNextで検索すると逆に出てくる。
なぜ?('A`)
'_' = 0x5f
'a' = 0x61
ってことを考慮するとexplorerの名前表示順がしっくりくるんだけどな…
0777デフォルトの名無しさん
2006/12/08(金) 22:52:55>>775 読め
0778デフォルトの名無しさん
2006/12/08(金) 23:00:34回避方法見つけたからもういいわ
0779デフォルトの名無しさん
2006/12/08(金) 23:03:26てか自前でソートすれ
0780デフォルトの名無しさん
2006/12/08(金) 23:05:34それを解った上で776を書いたんだが
>てか自前でソートすれ
そうしたよ
0781デフォルトの名無しさん
2006/12/08(金) 23:23:39内部でファイルを列挙して並び替えて・・・って処理をやってくれというのか?
0782デフォルトの名無しさん
2006/12/08(金) 23:29:18>781
誰が何時そんな事を言ったのか言ってみ
0783デフォルトの名無しさん
2006/12/08(金) 23:34:48ファイル名に数字がついた時とか
0784デフォルトの名無しさん
2006/12/08(金) 23:51:570785デフォルトの名無しさん
2006/12/09(土) 00:09:27FindNextFileはファイルシステムに物理的に格納されている順番で列挙するんだから。
z.txt
a.txt
の順で格納されていたら。その順で出てくるだけだと思うが。
たぶん、その実験した環境では、
a.txt
_.txt
の順番に格納されていたんだろうね。
explorerは表示する時に、ソートしなおしているんだから、「しっくりくる」順番なのは当然。
0786デフォルトの名無しさん
2006/12/09(土) 00:19:13>>775 読め
0787デフォルトの名無しさん
2006/12/09(土) 00:30:070788デフォルトの名無しさん
2006/12/09(土) 00:30:172052
3076
3com_dmi
6to4svc.dll
a15.tbl
a234.tbl
aaaamon.dll
Accesor.dll
access.cpl
acctres.dll
accwiz.exe
acelpdec.ax
acledit.dll
aclui.dll
acode.tbl
activeds.dll
activeds.tlb
actmovie.exe
actskin4.ocx
actxprxy.dll
adddrv.exe
admparse.dll
ADODC.SRG
ADODCJP.DLL
adptif.dll
adsldp.dll
adsldpc.dll
adsmsext.dll
adsnds.dll
adsnt.dll
勝手にソートしてんじゃん
0789774
2006/12/09(土) 00:33:39正にそれで済ませたワケだが
>788
先頭に'_'の付いたファイルも検索すれば言ってる事判ると思われ
0790デフォルトの名無しさん
2006/12/09(土) 00:40:13b.txt、c.txtも検索すれば皆が言ってる事判ると思われ
0791デフォルトの名無しさん
2006/12/09(土) 00:41:36何故か?については誰も答えられない
0792デフォルトの名無しさん
2006/12/09(土) 00:43:35多分一番解ってないのはお前
0793デフォルトの名無しさん
2006/12/09(土) 00:48:34GetSystemInfo
VirtualQueryEx
0794デフォルトの名無しさん
2006/12/09(土) 01:01:25区別をつけないように組まれていることを考えればわかるだろうに。
0795デフォルトの名無しさん
2006/12/09(土) 01:02:28LBS_STANDARDフラグは付けたの?
■ このスレッドは過去ログ倉庫に格納されています