■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build23
751 名前:デフォルトの名無しさん :04/10/19 15:57:20
EDIT*100(/2か?)は止めたほうがいいな。
リソースに対して優しくない。UIとしても。
それはそれとして、表計算ソフトからジェネレートできるようにすりゃいいだけな気もするが

752 名前:デフォルトの名無しさん :04/10/19 15:59:34
>>744
リソーススクリプトを手動で修正するとか。


753 名前:デフォルトの名無しさん :04/10/19 16:20:58
DialogBoxIndirectとかCreateDialogIndirectを使うとか

754 名前:デフォルトの名無しさん :04/10/19 20:55:09
リソースエディタを外部から操作するプログラムを作れ。

755 名前:デフォルトの名無しさん :04/10/19 21:23:31
リソースを外部から操作するプログラムならいくらでもあるが……。

756 名前:デフォルトの名無しさん :04/10/19 22:18:48
一枚のダイアログに載せられるコントロールの数って上限無かったか?
昔、VBで自滅してた奴がいたがw
128個位でダイアログが出なくなったような。
Win32 は関係ないのかな?

あと、100個もコントロール載せるとダイアログが出てくるまで時間が掛かる、
ウィンドウの再描画にも時間が掛かるよ。

自分で表を書いておいて、指定のセルを編集時にテキストボックスを
セルのサイズで作って出すのが、綺麗だと思う。
Excel とかがやってる方法だけど…
ちと工数が掛かりすぎるかな?


757 名前:デフォルトの名無しさん :04/10/19 22:46:22
NT系でもリソースは無限じゃないしね。


758 名前:デフォルトの名無しさん :04/10/20 00:40:14
DHTMLダイアログ使えよ、エディットの100個や200個屁でもない

759 名前:デフォルトの名無しさん :04/10/20 00:41:15
またバカが一人

760 名前:デフォルトの名無しさん :04/10/20 04:22:17
世界の真ん中に立つ塔は楽園へ続いているという

そして、またバカが一人

761 名前:デフォルトの名無しさん :04/10/20 08:26:31
こんにちは。

リソースのビットマップを表示させたいのですが、
http://www.kumei.ne.jp/c_lang/sdk/sdk_26.htm
http://wisdom.sakura.ne.jp/system/winapi/win32/win104.html
↑で紹介されてる手順通りに書いても、LoadBitmap()がNULLを返してきて描画してくれません。
ICONリソースなどは同じ手法で読み込んでくれるのですが…。
なお、実行ファイルのサイズから正常に埋め込まれてるのは確かのようです。

環境は windows2KSP4 + Visual C++.NET std です。
初歩的な質問かもしれませんが、宜しくお願い致します。

762 名前:デフォルトの名無しさん :04/10/20 09:04:36
>>761
とりあえず引数の確認とGetLastError()

763 名前:デフォルトの名無しさん :04/10/20 09:13:38
>>761
ついでにResourceHackerとかで実行ファイルのリソース確認しとき。
念のため。

764 名前:デフォルトの名無しさん :04/10/20 09:16:05
>>761
∀・)っMAKEINTRESOURCE( MYBMP );

765 名前:デフォルトの名無しさん :04/10/20 10:44:39
Win32 API入門
http://black.sakura.ne.jp/~third/system/winapi/win.html

ここ行けなくなってしまってるね。
結構利用してたのに残念。

766 名前:デフォルトの名無しさん :04/10/20 10:53:35
>>765
ttp://wisdom.sakura.ne.jp/

ここに移転したって書いてありますけど…

767 名前:デフォルトの名無しさん :04/10/20 14:20:56
CDドライヴに空の状態から CD が挿入されたことを検知するための
メッセージというのはないのですか?


768 名前:デフォルトの名無しさん :04/10/20 16:00:16
文字の大きさを変更する関数ってありますでそうか。
すみません。初歩的な質問で。
色はSetTextColorで変更できたのですが・・・。

769 名前:デフォルトの名無しさん :04/10/20 16:07:11
あります。

770 名前:デフォルトの名無しさん :04/10/20 16:07:58
うそです。ありません。

771 名前:デフォルトの名無しさん :04/10/20 16:36:16
CreateFont(Indirect)の時にしか文字の大きさは選べない。

772 名前:デフォルトの名無しさん :04/10/20 16:47:15
>>768
メモリデバイスコンテキストに書いて、ストレッチブリットするのじゃだめ?

773 名前:デフォルトの名無しさん :04/10/20 17:31:18
>>768
http://www.kumei.ne.jp/c_lang/sdk/sdk_27.htm

774 名前:デフォルトの名無しさん :04/10/20 18:22:39
>>772
書いてからStretchしたらギザギザになんね?

775 名前:デフォルトの名無しさん :04/10/20 18:25:51
大きく描いてから縮小すればいいんだYO

776 名前:デフォルトの名無しさん :04/10/20 18:44:12
SetStretchBltModeも忘れるなよ

777 名前:デフォルトの名無しさん :04/10/20 19:47:38
>>767
WM_DEVICECHANGE
CD-ROMドライブのプロパティで、
自動挿入をオンにしておく必要があるが。

778 名前:761 :04/10/20 20:31:46
>>762
GetLastError()で取得したエラーコードをFormatMessage()で変換してみたところ、
「指定したリソース名がイメージファイルに見つかりません。」
と出ました。
でも「猫でも〜」や他所で見かける例だと、この手順で問題なく読み込んでくれるはずなのですが…。
ResourceHackerは敷居が少し高そうですので、もう少し慣れたら触ってみることにします。
レスありがとうございました。

>>764
MAKEINTRESOURCE( MYBMP )としてみましたら呆気なく表示されました。
実際はただキャストしてるだけのようですが、なぜこれで上手く行くのでしょうか…。
ちょっと考えてみます。
レスありがとうございました。


779 名前:デフォルトの名無しさん :04/10/20 20:35:03
IEのファイルダウンロードのダイアログを同等のものを
表示させたいのですが、どのAPIを使えばよいのでしょうか?
「開く」「保存」「キャンセル」のボタンがあるやつです。
また、上書き確認のダイアログの表示方法もありますか?

780 名前:デフォルトの名無しさん :04/10/20 21:00:56
ハードウェアの安全な取り外し を行うのはAPIでできますか?
できるとしたらどうすれば。

781 名前:デフォルトの名無しさん :04/10/20 21:27:02
>>779
GetOpenFileNameとかGetSaveFileNameとかかな。
しかるべきフラグを渡せば、上書き確認とかもできる。

782 名前:デフォルトの名無しさん :04/10/20 21:35:05
>>778
リソースの識別子は "" で囲った文字列形式と
数値形式の2通りがあるんです。
>>778さんは数値形式でリソースを作成したのでは?

LoadImage 等の関数は文字列形式を必要とするので、
MAKEINTRESOURCEマクロでキャストする必要があります。

OSはたぶん、渡された文字列ポインタの値をみて、
もし上位ワードが0x0000ならば、
それは文字列ではなく数値をキャストしたものである、
と判断しているのでしょう。

783 名前:デフォルトの名無しさん :04/10/21 02:29:35
>>780
APIを徹底的に調べればわかるんでないの?

784 名前:デフォルトの名無しさん :04/10/21 09:02:42
>>780
やったことないので知らないけど
SetupDi〜のAPI調べるといいかも

SetupDiRemoveDeviceとかなんか怪しげ

785 名前:デフォルトの名無しさん :04/10/21 11:01:37
コモンコントロールのアップダウンで
下限の次を上限に、上限まで行ったら下限に行くように
ループさせたいのですが、特別なオプションってありませんでしょうか

786 名前:デフォルトの名無しさん :04/10/21 11:12:38
>>785
MSDNのUp-Down Control Stylesをよく見ろ。

787 名前:デフォルトの名無しさん :04/10/21 18:04:32
ドロップダウン型のコンボボックスで
リスト部分のウィンドウハンドルを取得する方法はないでしょうか。
GetComboBoxInfo とかだとNULLが返って来ちゃうんですよね。
お昼過ぎからずーっと探してるのですが……。
どなたかご存じでしたらご教授ください。

788 名前:デフォルトの名無しさん :04/10/21 18:21:55
COMBOBOXINFOを初期化してないんじゃないの?
特にcbSize

789 名前:787 :04/10/21 19:10:02
>>788
cbSizeを設定しておく必要があったのですか!
わぁ、動いた。動きましたorz
……うわー、俺の午後ってー!
ありがとうございました(深々礼

790 名前:デフォルトの名無しさん :04/10/21 19:12:00
>>789
MSDN見てないのか?

791 名前:デフォルトの名無しさん :04/10/21 19:43:14
DLLの関数の呼び出し規約がcdeclかstdcallか、を、
ヘッダファイルや、ソースファイルが、無くても知る方法ありますか?
たとえばdumpbin.exeなどでDLLをダンプしたらわかりますでしょうか??

792 名前:デフォルトの名無しさん :04/10/21 20:18:06
>>791
見当がつくこともある。
#と答えておこう。

793 名前:789 :04/10/21 20:46:30
>>790
プラットフォームSDK GetComboBoxInfo関数 のページは見たのですが……
後は、COMBOBOXINFO構造体のページとかは。
まだ始めたばかりでセオリーとか分かってなくて、申し訳なかったです。

794 名前:& ◆FtKQchXwgI :04/10/21 20:47:35
 

795 名前:794 :04/10/21 21:04:09
俺のうぐいすが化け化けなのはなぜですか?(;_;)

796 名前:デフォルトの名無しさん :04/10/21 21:54:44
>>793
>Pointer to a COMBOBOXINFO structure that receives the information.
>Note that you must set COMBOBOXINFO.cbSize to sizeof(COMBOBOXINFO) before calling this function.

こう書いてなかった?


797 名前:デフォルトの名無しさん :04/10/21 22:03:09
>>792
791です、dumpbin /exports したけど、さっぱり見当がつきません。
どのあたりが見分けるポイントなんでしょうか。
(なかばアキラメモードです....)

798 名前:デフォルトの名無しさん :04/10/21 22:12:17
スタックを覗いてみるとか

799 名前:デフォルトの名無しさん :04/10/21 22:33:13
>>798
791です。
あ、なるほどね。スタックの積み順を調べたらいいんだぁ。


800 名前:779 :04/10/21 23:05:14
ファイル保存のダイアログを出さずに、
ファイルの上書き確認ダイアログを表示させたいのです。
あとダウンロードの確認ダイアログはどうするのでしょうか?
次の場所からファイルのダウンロードするように選択しました。
「このファイルを上記の場所から開く」
「このファイルをディスクに保存する」というダイアログのことです。
簡易ブラウザを作っていてなにかダウンロードするときに
このダイアログを出そうと思っています。



801 名前:793 :04/10/21 23:06:04
>>796
> hwndCombo コンボボックスのハンドルを渡します。
> pcbi 情報を受け取るCOMBOBOXINFO構造体へのポインタを指定します。
なるほど、MSDN Japanの方だけじゃ情報不足なんですか。
わかりました、今度からはそっちも見に行くようにします。
どうもありがとうございましたです(礼

802 名前:デフォルトの名無しさん :04/10/21 23:10:56
>>800
前者は MessageBox( hWnd, "上書きするよ?", "確認", MB_OKCANCEL | MB_ICONWARNING ); でええやろ。

803 名前:デフォルトの名無しさん :04/10/21 23:31:19
修飾された関数名の前に"_"、後ろに"@"がつくとstdcallなのだと思うけれど
これはextern "C"限定の命名規則なのかしらん

804 名前:デフォルトの名無しさん :04/10/21 23:49:51
そこでハンド逆アセンブルですよ。

805 名前:779 :04/10/22 00:17:29
>>802
UIが統一されていないのであまり気が進まないけど。
用意されててもいいような気がするんだけどないのかなー?


806 名前:デフォルトの名無しさん :04/10/22 08:03:31
>>800
OPENFILENAME
OFN_OVERWRITEPROMPT

807 名前:デフォルトの名無しさん :04/10/22 11:46:51
↑質問文をよく読まないせっかち君

808 名前:デフォルトの名無しさん :04/10/22 16:07:17
CGIの出力をプログラムで取得したいと思い、InternetReadFileを
使用したのですが、出力ではなくCGIのソースそのものが取得されてしまいました。
CGIの出力を取得するのは無理なんでしょうか?

809 名前:デフォルトの名無しさん :04/10/22 16:15:50
CGI側のサーバ設定がおかしい。
もしくは何か勘違いしている。

810 名前:デフォルトの名無しさん :04/10/22 16:34:16
テストどぞ
http://pc5.2ch.net/test/read.cgi/tech/1095534704/l50

811 名前:デフォルトの名無しさん :04/10/22 17:31:37
>>808
ブラウザで開いてみそ。

あと、ココとかのURLを入れてみそ。
それでもCGIのソースが出るようだったら、大発明。

812 名前:デフォルトの名無しさん :04/10/22 17:39:39
脆弱性発見でつか?

813 名前:デフォルトの名無しさん :04/10/22 21:16:48
>>803
extern "C"をつけていなくても、stdcall関数なら当然、stdcallの修飾(前に"_"、後ろに"@"そしてプッシュするサイズ)は付く。
ただし、C++の修飾を先にしたものにstdcallの修飾がなされる。


814 名前:779, 800 :04/10/22 21:52:02
誰か回答をくれー!

815 名前:デフォルトの名無しさん :04/10/22 22:01:36
>>814
IEを呼び出せばいいだろ。

816 名前:デフォルトの名無しさん :04/10/23 00:29:26
ビットマップのパスだけが分かっているとき、画像を表示させるにはどうすればいいですか?

817 名前:デフォルトの名無しさん :04/10/23 00:30:18
>>816
LoadImage

818 名前:デフォルトの名無しさん :04/10/23 01:51:21
>>817
LoadImage()では表示は出来ません。

819 名前:デフォルトの名無しさん :04/10/23 03:08:01
ShellExecuteEx

820 名前:デフォルトの名無しさん :04/10/23 12:54:52
>>819
ありがとうございます。確かに表示出来ました。

821 名前:デフォルトの名無しさん :04/10/23 17:38:02
WritePrivateProfileStringW で設定を保存してもUNICODEで保存されないのって仕様ですか?
何のためのワイド文字版APIなの??

822 名前:デフォルトの名無しさん :04/10/23 17:50:23
>>821
UNICODEにしかない文字を書き込んだらどうなる?

823 名前:デフォルトの名無しさん :04/10/23 18:08:53
A2Wを呼び出す手間を軽減するためのW版だろ

824 名前:デフォルトの名無しさん :04/10/23 19:18:14
>799
積み順じゃなくて、クリアの方法を見ること。
積み順は cdecl も stdcall の同じ。

825 名前:821 :04/10/23 20:47:32
>>822
「????」とかに変換される。
唯一のメリットといえば、UNICODE使ったファイル名でもアクセス可能だということだけ…。

でも、*.regファイルなんかは、iniファイルと同じフォーマットでUTF16LEなのに、regedit.exeはAPI使わずに
アクセスしてんのかな?

826 名前:デフォルトの名無しさん :04/10/23 22:20:56
>>825
Unicode版のAPIで.iniファイルに書きこんだら
Unicodeで保存されるべき…。
なるほど、そういう発想はなかったな。
まあ、いろんなアプリがひとつの.iniファイルに
アクセスする可能性があるし、過去との互換性も考えると
ANSIで保存されるのは仕様なんでしょう。

.regファイルの件は何が疑問なのかよく分からない。

827 名前:デフォルトの名無しさん :04/10/23 22:27:56
>>825
Dependency Walkerで調べたところ、GetPrivateProfileStringW()を直接呼び出すことはしてなさそうだ。

828 名前:デフォルトの名無しさん :04/10/23 22:43:21
オーナードローボタンを複数画面に表示し、
それぞれ別のビットマップを貼り付ける方法を教えてください。


829 名前:デフォルトの名無しさん :04/10/23 23:14:28
>>826

.regを読むのに*Profile* APIを使ってるはずだと思ってるんでしょ。

830 名前:デフォルトの名無しさん :04/10/23 23:48:52
みんなやってそう、かつ簡単そうで難しい、(完璧ではない)

文字処理

831 名前:デフォルトの名無しさん :04/10/23 23:58:14
>>821
なに? WritePrivateProfileStringW 使って
引数にUNICODEの文字列を指定して
書き込んだらSJISに変換されて書き込まれるの?
まさか、引数にSJISの文字列を指定して書き込んでも
UNICODEに変換されないとか言っているわけじゃないよね?

832 名前:デフォルトの名無しさん :04/10/24 00:37:09
( ゚д゚)ポカーン

833 名前:デフォルトの名無しさん :04/10/24 01:21:27
16ビット時代の遺物なんだからUnicode対応なんかしてないよ。
レジストリ使うか自前でやれ

834 名前:デフォルトの名無しさん :04/10/24 02:34:26
同じファイルに読み書きするのにAPIのインターフェイスがAかWかで文字コードが変わったら使い物にならんやん

835 名前:デフォルトの名無しさん :04/10/24 06:14:52
WM_ACTIVE site:microsoft.comでググっても何も見つからないのですがこれはWM_ACTIVEは使うなという事ですか?


836 名前:デフォルトの名無しさん :04/10/24 06:36:00
>>833
レジストリも結局は一緒じゃないか?
REG_SZ型は全てUnicodeで保存されてるはず。
ユーザが意識しなくてもいいことじゃないの?

837 名前:デフォルトの名無しさん :04/10/24 07:35:14
WM_ACTIVATE

838 名前:デフォルトの名無しさん :04/10/24 08:59:32
>>836 ハァ?

839 名前:デフォルトの名無しさん :04/10/24 10:00:29
噛み合ってません

840 名前:デフォルトの名無しさん :04/10/24 10:33:28
要するに

*Private*
  AでもWでもファイルはSJIS

レジストリ
  AでもWでもファイルはUnicode

結論
  AでもWでも同じファイルを使えるように設定された仕様

ということでFA?

841 名前:デフォルトの名無しさん :04/10/24 12:26:31
プロパティページについてなんですが、CreatePropertySheetPageが失敗したとき
PROPSHEETPAGE::pfnCallbackで指定したコールバックは呼ばれるのでしょうか?
lParamにページで使うメモリを持たせ、コールバックのPSPCB_RELEASEで解放するようにしています。

842 名前:デフォルトの名無しさん :04/10/24 12:39:14
>>841
呼び出し元で確保したら呼び出し元で開放するのが基本じゃないか?

843 名前:841 :04/10/24 12:45:14
>>842
DLLからアプリ側にHPROPSHEETPAGEを渡すので
解放するタイミングがコールバックしかないのです。

844 名前:デフォルトの名無しさん :04/10/24 12:45:53
>>842
時と場合による

845 名前:デフォルトの名無しさん :04/10/24 14:18:48
GetCharWidth32でU+10000以降の文字幅を取得できないのは仕様ですか?

846 名前:デフォルトの名無しさん :04/10/24 22:53:25
FindFirstFile とかで、ディレクトリツリーを辿るプログラムで、ディレクトリのシンボリックリンクを
辿らせないようにするにはどうすればいいのか教えてください偉い人。

847 名前:デフォルトの名無しさん :04/10/24 23:01:57
CreateWindowでEDIT(テキストエディタ)を作成し
入力を整数又は小数点にしたいのですが
整数はES_NUMBERで実現できました。
しかしながら整数だけの入力にしてしまいますと
当然ながら少数点の入力ができません。
整数と少数に入力を制限できる方法ってありますでしょうか。

848 名前:デフォルトの名無しさん :04/10/25 00:28:06
>>846
興味本位で訊くんだけど、NTFSはディレクトリのシンボリックリンクを作れるの?

849 名前:デフォルトの名無しさん :04/10/25 00:34:36
>>848
呼称は違うけど、ほぼ同等なものが作れる。

850 名前:デフォルトの名無しさん :04/10/25 00:47:54
\\相手のPC\共有フォルダ名
みたいなパスをFindFirstFileで検索掛けると
"ファイルが見つかりません"というエラーが返却されるんですけど、

本当にファイルがないか、それとも、ネットワーク共有名かを判断するAPI
ってないですかね?


851 名前:デフォルトの名無しさん :04/10/25 01:03:00
>>850
少なくとも、
\\127.0.0.1\SharedFolder\*
とかだと検索できるけど。

852 名前:デフォルトの名無しさん :04/10/25 01:04:36
>>850
UNC

853 名前:デフォルトの名無しさん :04/10/25 01:38:13
>>852
PathIsUNCですかね?
なんかいけそうです。有難う御座います。

854 名前:デフォルトの名無しさん :04/10/25 07:05:55
うんこネタ禁止

855 名前:デフォルトの名無しさん :04/10/25 09:24:47
>>854
朝起きて一発目のレスがそれかorz

856 名前:デフォルトの名無しさん :04/10/25 09:51:30
スピンコントロールの内容を変数にゲットしたいのですが
GetWindowTextやGetDlgItemTextでは取得できませんでした。
スピンコントロールをゲットできる関数ってありますでしょうか・・・。m(_ _)m

857 名前:デフォルトの名無しさん :04/10/25 10:16:16
>>856
UDM_で始まるメッセージを調べてみ

858 名前:デフォルトの名無しさん :04/10/25 10:18:59
MFCのCSpinButtonCtrl::GetPos()のソースを見てみるとか。

859 名前:デフォルトの名無しさん :04/10/25 10:59:32
MACアドレスを取りたくてGetAdaptersInfoを使ったのですが、
IEEE1394のアドレスだけ取れませんでした。
そういうものなのでしょうか。
getmac.exeとipconfig.exeの出力結果も違うし、ググっても
情報が全然ないしで困りました。

860 名前:デフォルトの名無しさん :04/10/25 11:26:42
>>859
WBEM 使うととれるかも。

861 名前:デフォルトの名無しさん :04/10/25 12:29:15
>856
ちなみにスピンコントロールは、アップダウンコントロールと
エディットコントロールの組の事。
856 が GetWindowText で得ようとしたのは
アップダウンコントロールの方のテキストだろうな。

862 名前:デフォルトの名無しさん :04/10/25 15:39:42
Windowsコントロールの標準のポップアップメニューにメニュー追加はどうやりますか?

863 名前:デフォルトの名無しさん :04/10/25 16:13:50
GetSystemTime()で世界協定時刻(UTC)を取得しているのですが
このAPIで取得出来る時刻はどの程度信頼性のあるものなのでしょうか?
ユーザが簡単に調整など出来ないようになっているものなのでしょうか?

864 名前:デフォルトの名無しさん :04/10/25 16:21:02
>>863
コントロールパネルの「日付と時刻」を開いてごらん。

865 名前:デフォルトの名無しさん :04/10/25 16:30:37
>>864
日付と時刻のプロパティが出ました。
これに何かあるのでしょうか?

866 名前:デフォルトの名無しさん :04/10/25 16:35:38
>>863
GetSystemTimeは世界協定時刻(UTC)を取得する関数ではありません。
システム日時をUTCに換算して取得する関数です。

信頼性は、PCの時刻に依存します。
ユーザが、PCの時刻を操作できる権限を持っていれば、変更される可能性があります。

867 名前:863 :04/10/25 16:42:00
>>866
という事は殆ど当てにならないという事ですね…
厳密に取得するには、(UTC)が取得できる
信頼性のあるサーバから取ってくるしかないという事ですか。

868 名前:デフォルトの名無しさん :04/10/25 16:54:42
>>867
Windows NT 系だったら、タイムサーバーにアクセスして
時刻を正確に調整してくれるように設定できるよ。
まあ、それもユーザー(あるいは管理者)に任されているわけだけど。
企業内の大きなLAN であれば、タイムサーバー置いてるでしょう普通。

869 名前:デフォルトの名無しさん :04/10/25 19:48:28
http://www.uploda.org/file/uporg13472.txt

ボタン1つ作れないorz
どこがダメなんですか?

870 名前:デフォルトの名無しさん :04/10/25 19:58:45
>>869
#defineIDB_BUTTON1100;

このセミコロンを削除しましょう。

871 名前:デフォルトの名無しさん :04/10/25 20:19:36
windowsプログラミングでスクロールバーを扱う関数にSetScrollRange(hwnd,iBar,iMin,iMax,bredraw)という説明があったのですが
第2引数のiBarにはSB_VERTかSB_HORZを指定するとだけ書いてあり、これらがどういう意味を持つのかさっぱりわかりません。
この二つは何が違うのでしょうか?

872 名前:デフォルトの名無しさん :04/10/25 20:22:44
>>871
ttp://msdn.microsoft.com/library/

873 名前:デフォルトの名無しさん :04/10/25 20:25:31
>>871 SDK のドキュメント読めばわかるから。

874 名前:871 :04/10/25 20:37:32
MFCのデータしか出ないのですが。。

875 名前:デフォルトの名無しさん :04/10/25 20:38:54
>>874
>>872で「SetScrollRange」で検索して上から4番目。

876 名前:デフォルトの名無しさん :04/10/25 20:49:55
ms-help://MS.PSDK.1033/shellcc/platform/commctls/scrollbars/scrollbarreference/scrollbarfunctions/setscrollrange.htm

877 名前:デフォルトの名無しさん :04/10/25 20:50:35
>>875
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_cscrollbar.3a3a.setscrollpos.asp

ここであってます?

878 名前:デフォルトの名無しさん :04/10/25 20:53:54
>>877
>>872

879 名前:デフォルトの名無しさん :04/10/25 20:56:22
>>877
違う。
あと日本語版のヘルプは肝心な記述が抜けてたりするんで、雰囲気だけ掴むだけにしとけ。

880 名前:871 :04/10/25 21:04:12
英語版でようやくたどりつけました。。
MSDNは英語版のほうがよろしいんですかね〜?
なかなかAPIを検索しようにもMFCばっかりで。。

881 名前:デフォルトの名無しさん :04/10/25 21:21:04
つーか、縦か横かって話だけだろ?

882 名前:デフォルトの名無しさん :04/10/25 21:28:14
MFCも結局はAPI呼んでるから見て損はないと思う。
それに>>871は引数から言ってMFCじゃないのか?
あとAPIのSetScrollRangeは使うなっていうことだぞ


883 名前:デフォルトの名無しさん :04/10/25 21:55:51
>>882
プログラミングwindowsという本に載っていた関数なのでAPIだと思うのですが。。MFCなのですかね。。??


884 名前:デフォルトの名無しさん :04/10/25 22:01:58
MFCで引数がhwndってあまり無いわけだが。

885 名前:デフォルトの名無しさん :04/10/25 22:10:48
SB_VERT SB_HORZでイメージわかないようだと英語は厳しいだろ。

886 名前:デフォルトの名無しさん :04/10/25 22:34:49
自分のウインドウがアクティブになっていなくても、
あるキー(たとえばF1等)が押されたときにそれを感知するにはどうしたらいいですか?


887 名前:デフォルトの名無しさん :04/10/25 22:39:59
キーロガーでも作りたいのか?

888 名前:デフォルトの名無しさん :04/10/25 22:41:04
ほっときー

889 名前:デフォルトの名無しさん :04/10/25 22:42:16
監視員をつける

890 名前:デフォルトの名無しさん :04/10/25 22:49:18
グローバルフックを使う。DLLを作成しる

891 名前:886 :04/10/25 22:51:30
>>888
Hot keyってコモンコントロールだったんですか……。
これを使ってみます。

892 名前:デフォルトの名無しさん :04/10/26 01:20:19
コモンコントロールのホットキーは違うと思う。

893 名前:デフォルトの名無しさん :04/10/26 01:28:19
>>891
コントロールのホットキーは、キーの組み合わせを受け取れるだけの
コントロールであって、その組み合わせを監視するには、DLL作って
フックするしかない。
ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm

894 名前:デフォルトの名無しさん :04/10/26 01:47:29
力業でGetAsyncKeyStateとか

895 名前:デフォルトの名無しさん :04/10/26 03:41:23
フックだと監視できても変更できないしなぁ・・・。見てるだけ。orz

896 名前:デフォルトの名無しさん :04/10/26 03:45:19
デスクトップのショートカットキーと同じようなもので良いのなら、
WM_HOTKEYを使う。

フックなら変更も可能。

897 名前:デフォルトの名無しさん :04/10/26 04:30:45
>>896
WH_GETMESSAGE の場合だけ?

898 名前:デフォルトの名無しさん :04/10/26 06:40:07
Cygwinのフォルダが消せず、フルコントロールできるのがシステムになっていたので
与えられたフォルダのパス以下を全て削除するようなプログラム書きたいんですが
システム権限で動くようにするにはどうしたらいいんでしょ?

899 名前:デフォルトの名無しさん :04/10/26 06:55:02
以下のキーに実行ファイル名を入れてマシンを再起動。SYSTEM権限で実行されるので注意。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
もしくは、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

900 名前:898 :04/10/26 07:04:35
>>899
ありがとうございます、さっそくコード書いて試してみます。

901 名前:でき :04/10/26 08:51:30
すいませんが、どなたか、VB.netにてwin2000、winXPの端末がコンピュータロック中か取得する方法をご存知でしょうか?
(APIを利用してできるのではと思いこちらに質問しました。)

902 名前:デフォルトの名無しさん :04/10/26 09:50:31
いま動いてるプロセスを管理するような関数ってある?
いくらリファレンスとか WWW の検索かましても
これといったのがないんだけど

とくに各プロセスのファイルアクセスの情報を見たいんだけど


903 名前:デフォルトの名無しさん :04/10/26 10:38:40
ない

904 名前:902 :04/10/26 10:40:42
例えばタスクマネージャに使ってる関数てどんなの?


905 名前:デフォルトの名無しさん :04/10/26 10:44:30
タスクマネージャにファイルアクセスのログなんてあったっけ

906 名前:デフォルトの名無しさん :04/10/26 10:46:09
>>905
いやファイルアクセスのことはとりあえず置いといて

最終的に本当にしたいのはファイルとプロセスの関係なんだけどね

907 名前:デフォルトの名無しさん :04/10/26 10:47:54
>>902
NT系ならAPIでファイルハンドルの保持状況を見れないことはないが、フックしたほうが簡単。

908 名前:デフォルトの名無しさん :04/10/26 10:57:36
API フックのこと?
メッセージフックじゃファイルアクセスを監視できないと思うけど。

909 名前:デフォルトの名無しさん :04/10/26 11:01:03
漏れも linux の fuser みたいなの欲しいけど、簡単な方法はないんじゃない?
かの sysinternals の FileMon でも VxD 使ってフックかけてるし。

910 名前:902 :04/10/26 11:02:40
あそうそう

まさに filemon みたいなことがしたいわけよ

あれ,どうやってんの?

詳しく詳細きぼん

911 名前:デフォルトの名無しさん :04/10/26 11:03:43

FileMon はここ。
このサイト、Windows で変なことしようとするとき参考になります。
ttp://www.sysinternals.com/ntw2k/source/filemon.shtml


912 名前:デフォルトの名無しさん :04/10/26 11:04:49
>>911

つーかその動作原理を知りたいのさ

そのサイトに何か書いてあるん?

913 名前:デフォルトの名無しさん :04/10/26 11:06:06
>>901
「コンピュータロック中」ってどういう状態?

914 名前:デフォルトの名無しさん :04/10/26 11:07:20
>>912
見に行きゃいいじゃん。そもそも>909にVxD使ってるって書いてあるし。

915 名前:デフォルトの名無しさん :04/10/26 11:13:02
”How FileMon Works”以下に必要な情報へのリンク等があるみたいです。
Windows "handle table" あたりでググルと別方向からの情報も見つかると思います。

簡単だけれども酷いやり方としては、先方のプロセスにコードをinjectして、
0x0000〜0xFFFFあたりを NtQueryObject で調べてみるとか。

916 名前:909=911=915 :04/10/26 11:16:43
>そのサイトに何か書いてあるん?
書いてはあるけど、IFSMGR は SDK が高いので簡単には使えないですね。
しかし酷い態度。相手にするんじゃなかった・・・

917 名前:デフォルトの名無しさん :04/10/26 11:21:53
ちょっとでも礼が言えないヤツなんだな

918 名前:でき :04/10/26 11:57:34
>>913
「コンピュータロック中」とは「Alt」+「Ctrl」+「Del」をおしてするコンピュータロックのことです。


919 名前:デフォルトの名無しさん :04/10/26 12:11:24
OpenInputDesktopでwinlogonデスクトップがアクティブかどうか調べる

920 名前:デフォルトの名無しさん :04/10/26 13:13:45
丁寧な文体でない質問には答えない。これが後悔しないコツ。

921 名前:デフォルトの名無しさん :04/10/26 13:19:13
>>920
文体が丁寧なだけで中身が無いよりも、
必要な内容が全て含まれている崩れた文体の方が好ましい。

922 名前:デフォルトの名無しさん :04/10/26 13:29:26
>>921
それはそうだ。ただ態度、出方による。

923 名前:909=911=915 :04/10/26 14:49:11
そもそもこっちが勝手にレスしてるんだから
相手の態度がどうであれ関係ないか、
と考え直しますた。

924 名前:デフォルトの名無しさん :04/10/26 15:17:53
理解しようとする気がない奴には答えない。これが後悔しないコツ。

925 名前:921 :04/10/26 15:26:51
>>924
激しく同意

926 名前:デフォルトの名無しさん :04/10/26 15:45:35
皆さん、教えてもらったら「ありがとう」といいましょう。
善意で答えてくださっているのですから、横柄な質問はやめましょう。

927 名前:デフォルトの名無しさん :04/10/26 16:43:34
http://pc5.2ch.net/test/read.cgi/tech/1093519463/551-552


928 名前:デフォルトの名無しさん :04/10/26 17:09:48
>>921
ここに居るだけで傷ついてる人はいるけど

929 名前:デフォルトの名無しさん :04/10/26 17:20:02
そりゃ問題外

930 名前:デフォルトの名無しさん :04/10/26 17:23:13
>>929
それが大事

931 名前:886 :04/10/26 17:28:30
>>896
RegisterHotKey()で登録したホットキーを無効にするにはどうすればいいんですか?

932 名前:デフォルトの名無しさん :04/10/26 17:46:14
ん?
ヘルプ見たらRegisterHotKey()のすぐ横にあるだろ

933 名前:デフォルトの名無しさん :04/10/26 18:26:11
初心者にまず教えるべきことはMSDNの見方だと思うんだよね。

934 名前:デフォルトの名無しさん :04/10/26 18:44:50
礼儀だろ

935 名前:デフォルトの名無しさん :04/10/26 18:45:37
カラテカを100回クリアできるまでは初心者

936 名前:886 :04/10/26 20:41:34
……見落としていましたOrz

937 名前:デフォルトの名無しさん :04/10/26 21:53:36
タブを使ったチャットソフト作ろうとしているんですけど、タブ
を切り替えるときに表示内容を変更する場合、表示内容をロード
して(文字位置や、フォントサイズなど)表示を切り替えるのと、
タブごとに異なるビューが存在し、タブを押すことによって表示
が切り替わるのが思いつくんですが、後者のほうは簡単にできる
でしょうか?前者はあまりにも保持しておく情報が多そうなんで
なんかスマートじゃない感じがします。

938 名前:デフォルトの名無しさん :04/10/26 22:23:19
すいません。教えてください。

CreateWindowで作ったウインドウを親ウインドウとして、CreateDialogで
ウインドウにダイアログを貼り付けています。
このダイアログ内のボタンに”標準のボタン”を設定し、見た目は外枠?の
ついた標準のボタンになっているのですが、エンターを押しても実行されません。
マウスでクリックすれば実行できます。

フォーカスとかそういう問題なのでしょうか?

939 名前:デフォルトの名無しさん :04/10/26 22:59:36
>>937
私ならダイアログをはっつけるね。

>>938
そういう問題でしょう。恐らくは、はっついたダイアログにフォーカスが来てないのかと。

940 名前:デフォルトの名無しさん :04/10/26 23:17:04
>>938
エンターの押し下げはモーダルダイアログ用のダイアログプロシージャによって実行されます。
モードレスダイアログでは機能しません。

941 名前:デフォルトの名無しさん :04/10/26 23:20:04
>>940
つまり、ウインドウにモードレスダイアログを貼る方法の場合は、
通常のエンターでのボタン押下はつかえないということでしょうか?

もしどうしても実行したいのであれば、自分でキーイベントを拾う??

942 名前:デフォルトの名無しさん :04/10/26 23:22:23
IsDialogMessageをメッセージループに組み込む

943 名前:デフォルトの名無しさん :04/10/26 23:35:57
>>942
ありがとうございます。
今は環境がないので後日試してみます。

944 名前:デフォルトの名無しさん :04/10/27 00:06:41
SHQueryValueExとRegQueryValueExの違いはなんでしょうか?
MSDN見たところどちらも違いがないように思えるのですが。

945 名前:デフォルトの名無しさん :04/10/27 00:50:23
Photoshopのレイヤー情報表示部分のような、ペイントソフトに良くある
下記のコントロールはどの様に作るのでしょうか
_______________________
|★ ◎ レイヤー1. |
|★ ○ .////////. | ←フォーカス時の反転は文字の部分(=レイヤーxx)のみ
|☆ ◎ レイヤー3. |
|           | ★や◎はアイコンで、クリックすると状態が☆や○に変わる
|           |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
オーナードローかカスタムドローのリストビューかなとは思うのですが、
反転部分が文字部分だけというのが引っかかります。
VCLに似たような物があるとも聞いたので、もしかしたら何か
既成のコモンコントロールがあるのでしょうか?

spy等で調べてみたいのですが、自分ではPhotoshopを持って無く、
また学校のPCにexeを入れると非道く怒られるもので…ひとつよろしくお願いします

946 名前:デフォルトの名無しさん :04/10/27 01:01:52
Photoshopは確かすべて自前描画のコントロールだったと思うのですが。
Macと共通のインターフェイスですし。

947 名前:デフォルトの名無しさん :04/10/27 04:11:35
>>945
>spy等で調べてみたいのですが、自分ではPhotoshopを持って無く、
>また学校のPCにexeを入れると非道く怒られるもので…ひとつよろしくお願いします

何の学校かにもよるだろうけど、勝手にインストールするんじゃなくて、
目的を伝えて必要性を説明すれば怒られることはないと思われます。
もちろん断られるかも知れませんが。

もしプログラミング技術等を教える学校でありながらそれを断られるようなら、
選んだ学校を間違ったと思ってあきらめよう。


948 名前:945 :04/10/27 08:10:20
>>946
ぜ、全部自前ですかぁ…。なるほどマルチプラットフォーム。
あれと同じ物を作るのは…気が遠くなりそうですが覚悟を決めることにします。

>>947
あはは、Photoshop入りのPCが他学部の端末な事もあって、
怖じ気づいていました。確かに勉強事に奥手になっちゃ駄目ですね。

お二人ともレスありがとうございました。

949 名前:デフォルトの名無しさん :04/10/27 08:18:26
>>916
> >そのサイトに何か書いてあるん?

大阪っぽい


950 名前:デフォルトの名無しさん :04/10/27 12:06:11
チェックボックスの背景色を灰色から変更したいのですが、無理でしょうか。
SetBkColorでは無理でした。。

951 名前:デフォルトの名無しさん :04/10/27 12:11:47
出来ます。

952 名前:デフォルトの名無しさん :04/10/27 12:25:08
WM_GETCTLCOLOR*かな?

953 名前:デフォルトの名無しさん :04/10/27 13:18:59
最近、興味のある質問がめっきり減った。

954 名前:デフォルトの名無しさん :04/10/27 13:41:32
ちと古いホトショップだけど
PSFloatCとかPSViewCとか独自コントロールかな?
WM_USER+αが飛び交っておりました

955 名前:デフォルトの名無しさん :04/10/27 14:10:05
>>953
じゃあ手本を示してみろ。

956 名前:デフォルトの名無しさん :04/10/27 14:14:56
>>952

WM_GETCTLCOLOR*は存在しませんでしたが、ここら辺調べ見ます。
ありがとうございまいました。

957 名前:デフォルトの名無しさん :04/10/27 15:54:35
スマソ ちょっと質問でつ
VB6で長時間稼動(多分100日とか連続でうごきっぱ)するシステムに
時間を計る部分があって、そこでTimegetTimeのAPIを使用しています。

しかし、ここで、TimegetTimeは連続である一定以上動かないのは周知の事実なのですが、このAPIが返す値が32Bit(VBのLong)を超えた場合、どのような動きになるのでしょうか?
テストするのが一番かとも思うのですが、そこまで時間に余裕がありません。
よろしくお願いいたします。

958 名前:デフォルトの名無しさん :04/10/27 15:57:36
0

959 名前:デフォルトの名無しさん :04/10/27 16:31:48
おぉ、ありがとうございます〜
まさかLongの最小値から始まる事は無いと思ってたんですが
これで対策が取れそうです
ありがとうございました〜

960 名前:デフォルトの名無しさん :04/10/27 22:11:16
作成したボタンなどを消すにはどうすればいいですか?

961 名前:デフォルトの名無しさん :04/10/27 22:26:36
>>960
DestroyWindow

962 名前:938 :04/10/27 22:50:55
>>942
すいません。出来ないです。

VC++のリソースエディタで”標準のボタン”にチェックして、
以下のソースを書くだけではだめですか?

// hWndDlgはダイアログのハンドル
while(GetMessage(&msg, NULL, 0, 0)){
if (hWndDlg && IsDialogMessage(hWndDlg, &msg)) continue;
TranslateMessage(&msg);
DispatchMessage(&msg);
}




963 名前:960 :04/10/27 22:59:59
>>961
無事消せました。ありがとうございます。

964 名前:デフォルトの名無しさん :04/10/27 23:08:35
>>962
ダイアログにフォーカスが無いと。
親ウィンドウに WM_SETFOCUS がきたら SetFocus(hWndDlg) してあげてください。


965 名前:デフォルトの名無しさん :04/10/27 23:35:37
ダイアログボックスに2つのエディットコントロール
A、BとボタンCを配置して、Aには、「%s,%d」などのフォーマットを
Bには引数リスト「a,b」を入力し、ボタンを押すと
sprintf("%s,%d",a,b);という関数を生成しようとしていますが、
巧くゆきません。引数リストがひとつの文字列となってしまいます。
"a,b"

巧い方法はないでしょうか?
宜しくお願いします。


966 名前:デフォルトの名無しさん :04/10/27 23:41:39
関数を生成?

最大限に意図をくんでみたところで、君には無理だな。

967 名前:デフォルトの名無しさん :04/10/28 00:10:18
そんなエロサイトのJavaScriptみたいなことはできない

968 名前:デフォルトの名無しさん :04/10/28 00:11:21
考えてみたらWin32APIの質問ですら無かったな。

969 名前:デフォルトの名無しさん :04/10/28 01:08:12
>>965
引数を分けたいだけなら、sprintfの前で、自分で切り出せばいいのでは?
でも、それでは文字列のままだけど。
可変引数の実装を作りたいなら、vsprintfとかを参考にすればわかります。
文字列から、実変数へ割り当てる仕組みを作るなら、
適当な配列と文字列を対応させる仕組みを作ります。stlのmapとか使えば楽できます。

970 名前:デフォルトの名無しさん :04/10/28 09:30:48
MessageBoxについて
文字列+変数のような形で出力はできないのでしょうか
printf("私は%d倍バカです",i);

971 名前:デフォルトの名無しさん :04/10/28 09:43:33
>>970
できない
wsprintfなどで、予め文字列を生成しておきましょう

972 名前:デフォルトの名無しさん :04/10/28 12:14:39
CreateWindowのTEXT("EDIT")をWS_DISABLEDにすると
選択できなくなり灰色になるのですが
この灰色を別の色に変えたいのですが
方法ってあります?

973 名前:デフォルトの名無しさん :04/10/28 13:23:45
>>972
ある。自分で別の色で塗ればよい。

974 名前:デフォルトの名無しさん :04/10/28 14:05:50
>>973
よく意味わかるな

975 名前:972 :04/10/28 16:14:57
case WM_CTLCOLOREDIT:
{
//HDC hDC = (HDC)wParam;
HWND hCtrl = (HWND)lParam;
if(hCtrl == GetDlgItem(hDlg, IDC_EDIT))// エディットウィンドウのID
{
//SetBkMode(hDC, OPAQUE);// 背景を塗りつぶし
//SetTextColor(hDC, RGB(255,0,0));// テキストの色
//SetBkColor(hDC,RGB(192,192,192));// テキストが書かれている部分のテキストの背景の色
return (LRESULT)m_hBrush_BkColor;// テキストが書かれていない部分の背景の色
}
break;
}

調べて上記まで分かったのですが
4行目のlParamの値は何を入れればいいのでしょうか。
何度もすみません。


976 名前:デフォルトの名無しさん :04/10/28 16:39:38
>>975
藻前、メッセージを理解してないだろ・・・

977 名前:デフォルトの名無しさん :04/10/28 17:04:47
Win2000でファイルのプロパティを開いて
そこのセキュリティのタブにある
ユーザを追加する「追加」ボタンを押下した時に表示するダイアログを開くようなAPIって ないっすか?

978 名前:デフォルトの名無しさん :04/10/28 17:28:48
>>976
「4行目のlParam」が何を指しているのかがわからないよ、ママン・・・

979 名前:デフォルトの名無しさん :04/10/28 17:48:01
ぐぐれ

980 名前:デフォルトの名無しさん :04/10/28 18:49:52
ぐぐるよりMSDNだろ

981 名前:デフォルトの名無しさん :04/10/28 18:51:13
えぐれ

982 名前:デフォルトの名無しさん :04/10/28 18:54:01
>>975
lParamはもらうだけで、こちらから入れる必要はありません。

983 名前:デフォルトの名無しさん :04/10/28 18:58:30
くぐれ

984 名前:デフォルトの名無しさん :04/10/28 19:34:56
ttp://www.ne.jp/asahi/rumic/k-asuka/tokeizak/t_images/Kuguruna.jpg

985 名前:デフォルトの名無しさん :04/10/28 19:44:47
まぐれ

986 名前:デフォルトの名無しさん :04/10/28 20:05:46
OfficeXPのExcelやWordのようなメニューバーは
どうやって作成するのでしょうか?
(各メニューについている灰色の短形?みたいなののことです。)

987 名前:デフォルトの名無しさん :04/10/28 20:12:14
あれ不便だから知らなくて良いよ
ユーザー迷惑機能とはこのことだな
バージョン上げるネタに困ってるとしか思えない

988 名前:986 :04/10/28 20:23:04
なにが不便なのですか?
気になります。

989 名前:デフォルトの名無しさん :04/10/28 21:32:33
>>987
デザインの話じゃねぇの?

もし一部のメニューが非表示になる機能だったら
絶対に止めとけ。使いにくくてしょうがない

990 名前:デフォルトの名無しさん :04/10/28 21:34:26
IEとかOfficeとかで実現されてるそーいう機能って、有用かどうかも
考えずに真似したがるやつが絶えないな。

991 名前:デフォルトの名無しさん :04/10/28 21:37:16
質問したいのでスレ立てて来るっす

992 名前:デフォルトの名無しさん :04/10/28 21:40:25
Win32API質問箱 Build24
http://pc5.2ch.net/test/read.cgi/tech/1098967135/

993 名前:デフォルトの名無しさん :04/10/28 21:52:45
というわけで質問お願いするっす

オーナードローでボタンを描くと、画面のプロパティで設定するデザイン色次第で
ボタンの色が浮いちゃったりしますが、この辺の整合性を上手く取る方法ってあるんでしょうか?
市販品は結構上手くやっているみたいですが

994 名前:デフォルトの名無しさん :04/10/28 21:55:46
>>993
GetSysColor

995 名前:デフォルトの名無しさん :04/10/28 22:17:18
>>993
XPとかでデザインいじられてるとどうがんばっても浮くので
あえて浮いてもかまわないデザインにする。

996 名前:デフォルトの名無しさん :04/10/28 22:32:09
>>994-995
やるとしたらGetSysColorで色取って、自分で画像の色置換ですかぁ
XPも色々出来そうで恐いっすねぇ
大人しく地のダイアログごと色固定しちゃおう…

レスありがとうございました

997 名前:デフォルトの名無しさん :04/10/28 22:37:08
画像の色痴漢^h^h置換?
んなことはLoadImageにやってもらえ

998 名前:デフォルトの名無しさん :04/10/28 22:44:45
置換を痴漢で性器表現なんつって

>>997
おおブラボー!
これで手間書けずに済みそうです、サンクスです!

999 名前:デフォルトの名無しさん :04/10/28 22:47:01
いやらしー自慰

1000 名前:デフォルトの名無しさん :04/10/28 22:48:18
お役に勃ててナニ寄りです


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.