Win32API質問箱 Build70
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/09/15(月) 11:35:07やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>2-10くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage
Win32API質問箱 Build69
http://pc11.2ch.net/test/read.cgi/tech/1217687038/
0002デフォルトの名無しさん
2008/09/15(月) 11:35:52http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/library/
http://msdn.microsoft.com/library/ja/
- MSDN2 ライブラリ
http://msdn2.microsoft.com/en-us/library/
http://msdn2.microsoft.com/ja-jp/library/
- MSDN ライブラリ (ローカル版)
http://www.microsoft.com/downloads/details.aspx?familyid=6FF3BC60-32C8-4C22-8591-A20BF8DFF1A2&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?familyid=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=ja
- Windows SDK & Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=74dd6e2d-89c6-4e1e-af00-fc7d70f15439&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
0003デフォルトの名無しさん
2008/09/15(月) 11:36:38http://www.google.com/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/
- Advanced Windows (書籍)
http://www.amazon.co.jp/dp/4756138055
0004デフォルトの名無しさん
2008/09/15(月) 11:37:2369 ttp://pc11.2ch.net/test/read.cgi/tech/1217687038/
68 ttp://pc11.2ch.net/test/read.cgi/tech/1215348804/
67 ttp://pc11.2ch.net/test/read.cgi/tech/1212931246/
66 ttp://pc11.2ch.net/test/read.cgi/tech/1210775622/
65 ttp://pc11.2ch.net/test/read.cgi/tech/1208847084/
64 ttp://pc11.2ch.net/test/read.cgi/tech/1207099291/
63 ttp://pc11.2ch.net/test/read.cgi/tech/1204600558/
62 ttp://pc11.2ch.net/test/read.cgi/tech/1202060403/
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
60 ttp://pc11.2ch.net/test/read.cgi/tech/1196874830/
59 ttp://pc11.2ch.net/test/read.cgi/tech/1194701996/
58 ttp://pc11.2ch.net/test/read.cgi/tech/1191781463/
57 ttp://pc11.2ch.net/test/read.cgi/tech/1189255282/
56 ttp://pc11.2ch.net/test/read.cgi/tech/1186989201/
55 ttp://pc11.2ch.net/test/read.cgi/tech/1184853465/
54 ttp://pc11.2ch.net/test/read.cgi/tech/1181645965/
53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
52 ttp://pc11.2ch.net/test/read.cgi/tech/1176828891/
51 ttp://pc11.2ch.net/test/read.cgi/tech/1174416295/
0005デフォルトの名無しさん
2008/09/15(月) 11:39:1549 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/
48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/
47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/
46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/
45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/
44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/
43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/
42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/
41 ttp://pc8.2ch.net/test/read.cgi/tech/1141392216/
40 ttp://pc8.2ch.net/test/read.cgi/tech/1138893959/
39 ttp://pc8.2ch.net/test/read.cgi/tech/1136673250/
38 ttp://pc8.2ch.net/test/read.cgi/tech/1133798345/
37 ttp://pc8.2ch.net/test/read.cgi/tech/1131884991/
36 ttp://pc8.2ch.net/test/read.cgi/tech/1128951330/
35 ttp://pc8.2ch.net/test/read.cgi/tech/1125850096/
34 ttp://pc8.2ch.net/test/read.cgi/tech/1122723009/
33 ttp://pc8.2ch.net/test/read.cgi/tech/1120153520/
32 ttp://pc8.2ch.net/test/read.cgi/tech/1117271829/
31 ttp://pc8.2ch.net/test/read.cgi/tech/1114762194/
30 ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/
29 ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/
28 ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/
27 ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/
26 ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/
0006デフォルトの名無しさん
2008/09/15(月) 11:40:0124 ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
23 ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
21 ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/
16 ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/★
15 ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/★
14 ttp://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
13 ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
12 ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
11 ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
10 ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
9 ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
8 ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
7 ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
6 ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
5 ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
4 ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
3 ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
2 ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
1 ttp://pc.2ch.net/tech/kako/991/991576947.html
0007デフォルトの名無しさん
2008/09/15(月) 12:41:410008デフォルトの名無しさん
2008/09/15(月) 13:09:20超乙
0009デフォルトの名無しさん
2008/09/15(月) 13:32:310010デフォルトの名無しさん
2008/09/15(月) 13:37:530011デフォルトの名無しさん
2008/09/15(月) 16:31:01来るかも知れないね。
0012デフォルトの名無しさん
2008/09/15(月) 17:27:48メモリDCにSelectObjectして描画しています。
このあとにこのビットマップをクリップボードに入れたいのですが、
CF_BITMAPではなくCF_DIBを使わないといけないようで、
そうなると渡すのはHBITMAPではなくなるようです。
その情報はHBITMAPからどうやって作成すればよいのでしょうか。
0013デフォルトの名無しさん
2008/09/15(月) 17:34:10GDI+で描画した画像を保存したいのですが、
上手く保存できません。
Bitmap.Save で 'image/png'を指定したGUIDを渡して、
ファイルにPNGで保存しようとするのですが、
Statusが Invalid Parameter が帰ってきて保存ができないです。
ファイルから読み込んだものをそのまま保存することはできるのですが、
編集したら保存できないようです。
どのようにしたら編集したものを保存できるのでしょうか?
0014デフォルトの名無しさん
2008/09/15(月) 17:44:28CreateDIBSectionしたときに、ビットマップへのポインタってもらえるだろ。
それとCreateDIBSectionにBITMAPINFO渡しただろ(無くしていたらGetObjectが使える)。
その2つの中身を新しくGlobalAllocで確保した移動可能なメモリにコピーする。
そして、そのメモリハンドルをSetClipboardDataでCF_DIBとしてセットする。
001513
2008/09/15(月) 18:33:26GDI+のBitmap生成時に、他の画像のWidthとHeightを指定していたのですが、
どうやら、Width,HeightがUnsigned Integerのために、
overload されている別のBitmapの生成子を呼んでいました。
PixelFormat32bppARGBなどを全部引数を指定したら、
無事に他のエラーがなくなり、保存することができました。
しっかり、Bitmap.Save以前の生成時のエラーも見ておくべきだった・・・
エスパーでないとわからない質問でスマソ
0016デフォルトの名無しさん
2008/09/15(月) 18:40:490017デフォルトの名無しさん
2008/09/15(月) 21:05:330018デフォルトの名無しさん
2008/09/15(月) 21:23:460019デフォルトの名無しさん
2008/09/15(月) 21:27:24もしそうだとすれば、どういうところが問題点なのでしょう??
詳しい方いらっしゃいましたら教えて頂けると幸いです。
0020デフォルトの名無しさん
2008/09/15(月) 23:38:20しかも新しいのは古いWindowsで使えないし、古いのは新しいWindowsで使えず、
しかも互換性もろくにないことかな。
WebBrowserコントロールの方がまだましな気がする。
002119
2008/09/16(火) 03:00:040022デフォルトの名無しさん
2008/09/16(火) 03:04:510023デフォルトの名無しさん
2008/09/16(火) 12:47:05Win95以降(だと思うけど)なら、CF_BITMAPでHBITMAPを渡せばシステム側でCF_DIBに変換して
一緒にクリップボードに入れてくれる。
逆もしかりで、CF_DIBでDIB入りHGLOBALを渡せば、CF_BITMAPも作って入れてくれる。
色変換とかにシビアにならないならその程度の使い方で困ることは基本的にない
0024デフォルトの名無しさん
2008/09/16(火) 12:47:520025デフォルトの名無しさん
2008/09/16(火) 15:00:02クリップボードに入れるときに変換するのではなくて、
貼り付けるアプリ側から要求が来たときに変換するんじゃないの?
0026デフォルトの名無しさん
2008/09/16(火) 15:05:11Windowsプログラミングの知識があまりないため、
これまで自作のアプリでfopen→fgetsでファイルの内容を読み込み内部処理ということをやっていました。
これをCreateFile→ReadFileに変更したいのですが、
ReadFileしたバッファから一行ずつ読み出すようなAPIはありませんでしょうか?
0027デフォルトの名無しさん
2008/09/16(火) 15:54:56わざわざCreateFileに変更する理由など無い
002826
2008/09/16(火) 16:06:48もともとの動機は、ファイル名をソース上で記述しているため、
違うファイルを開くために毎回コンパイルしていたので、
コモンダイアログボックスで指定できるようにしたかったのです。
他にいい方法がありますでしょうか?
0029デフォルトの名無しさん
2008/09/16(火) 16:37:08コモンダイアログとCreateFileは関係ないと思うが。
GetOpenFileNameで得られるファイル名はLPTSTRだから、
Unicodeビルドの場合は注意が必要。
0030デフォルトの名無しさん
2008/09/16(火) 17:43:01実際のデータ変換をいつするかはプログラマでもあまり考えなくていいかと
少なくとも形式列挙すれば両方入ってるわけだし
0031デフォルトの名無しさん
2008/09/16(火) 17:51:40ファイル等(ショートネームがない上にshiftjis範囲外の文字を利用したフォルダなど)が出てくるんで
unicode関数使いたいってのはわからんでもない話だがな
まぁそれにしても_wfopenか_wfopen_sを使えば良い話ではあるが
リードラインする普通のWin32APIってのは存在しない
まぁ車輪の再発明になるだろうがこれを気に自分でテキスト読み込みストリーム関数作ってみるのもいいんじゃない?
実際そんなに難しいものじゃないし
0032デフォルトの名無しさん
2008/09/16(火) 18:08:110033デフォルトの名無しさん
2008/09/16(火) 18:12:07お前がプログラマとしてド素人だということはよく分かった
0034デフォルトの名無しさん
2008/09/16(火) 18:50:08「気にしないでCF_BITMAPでHBITMAPを放り込め」
0035デフォルトの名無しさん
2008/09/16(火) 18:56:402ちゃん初心者かよ
0036デフォルトの名無しさん
2008/09/16(火) 20:28:23auxSetVolumeを使えばWAVEやCDプレーヤーの出力音量は調整できると思いますが
この自作プレイヤー独自の音量を変更したいです。
アプリケーション独自の音量を調節するような方法はありませんでしょうか。
0037デフォルトの名無しさん
2008/09/16(火) 20:44:50音量調整用のインターフェース位付いていると思うのだが。
完全自前でやったとしても、DirectSoundやCoreAudioで音量調整できるし。
0038デフォルトの名無しさん
2008/09/16(火) 20:49:160039デフォルトの名無しさん
2008/09/16(火) 21:04:38リファレンスが完全英語なので見落としたのかもしれませんが
音量調節のインタフェースはなかった気がします…。
004012
2008/09/16(火) 21:53:01テキストをクリップボードにセットするときと同じように
必要なメモリを自分でGlobalAllocしないといけないということなのですね。
CreateDIBSectionはHBITMAPが返ってくるのに、
HBITMAPを引数に取るSetClipboardDataには渡せないというのも
なんか込み入っててややこしいです。
>>34
ttp://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200509/05090003.txt
CreateDIBSectionのHBITMAPをSetClipboardDataに渡しても
正しくクリップボードに渡らず、上記を読む限り、
DIBSectionとはそういうものなのかなと解釈していたのですが、
実は渡せるものなのでしょうか?
0041デフォルトの名無しさん
2008/09/16(火) 23:29:58MSのサンプルを見たら、CF_BITMAP/CF_DIBの両方をSetClipboardDataしていた。
で、CF_BITMAPではわざわざDIBSectionをDDBに変換していた。
多分クリップボードAPIの設計が古いとかで、DIBSectionには対応してないんじゃないの?
同じHBITMAP型でも内部的には違う物だし、Win16時代には無かったし。
0042デフォルトの名無しさん
2008/09/17(水) 00:56:120043デフォルトの名無しさん
2008/09/17(水) 00:59:160044デフォルトの名無しさん
2008/09/17(水) 01:32:420045デフォルトの名無しさん
2008/09/17(水) 01:34:390046デフォルトの名無しさん
2008/09/17(水) 01:40:180047デフォルトの名無しさん
2008/09/17(水) 01:41:180048デフォルトの名無しさん
2008/09/17(水) 01:44:190049デフォルトの名無しさん
2008/09/17(水) 02:25:11知らないならレスしないでくださいうざいです
0050デフォルトの名無しさん
2008/09/17(水) 03:08:000051デフォルトの名無しさん
2008/09/17(水) 08:10:430052デフォルトの名無しさん
2008/09/17(水) 08:34:080053デフォルトの名無しさん
2008/09/17(水) 08:46:130054デフォルトの名無しさん
2008/09/17(水) 09:37:23構造化例外処理の実務はコンパイラ依存なんじゃねーの?
ポインタ渡し系 API で不正アクセスが発生 → そいつをトラップできた というだけの話のような・・・
0055デフォルトの名無しさん
2008/09/17(水) 09:44:04つ HeapAlloc
つ InitializeCriticalSection
0056デフォルトの名無しさん
2008/09/17(水) 12:46:51Win32例外とC++の構造化例外は別物です
0057デフォルトの名無しさん
2008/09/17(水) 12:58:39HeapAllocが出す例外 = 構造化例外
C++標準の例外 = 実装依存、VC++では構造化例外を使用
0058デフォルトの名無しさん
2008/09/17(水) 13:03:07(Win32)SEH も利用してるっぽいことが書かれているな (改定4版 p.818)
0059デフォルトの名無しさん
2008/09/17(水) 13:30:00throw付近でRaiseExceptionが呼ばれる
0060デフォルトの名無しさん
2008/09/17(水) 16:43:52そのアプリが出力した標準出力の文字列を取得するには
どうすればよいでしょうか?
0061デフォルトの名無しさん
2008/09/17(水) 16:45:040062デフォルトの名無しさん
2008/09/17(水) 16:53:050063デフォルトの名無しさん
2008/09/17(水) 16:56:482.直接コンソールAPIで出力していた
0064デフォルトの名無しさん
2008/09/17(水) 17:14:530065デフォルトの名無しさん
2008/09/17(水) 17:39:320066デフォルトの名無しさん
2008/09/17(水) 17:56:12リアルタイムに1% 2%・・・と画面が書き換わるアプリだからでしょうか?
この場合はどうすればいいのでしょうか?
0067デフォルトの名無しさん
2008/09/17(水) 18:07:010068デフォルトの名無しさん
2008/09/17(水) 20:08:00ReadConsoleOutputCharacter
0069デフォルトの名無しさん
2008/09/18(木) 08:35:45Findwindowで取得できるハンドルを、EXEの実行ファイル名から取得はできませんでしょうか?
Findwindowは使わないやり方が知りたいのですが、ありましたらご教授おねがい致します。
とりあえず
EXEのファイル名からプロセスIDの取得
はできます。どうかお力をおねがいします。
0071デフォルトの名無しさん
2008/09/18(木) 09:43:04CreateToolhelp32Snapshot -> EnumThreadWindows
0072デフォルトの名無しさん
2008/09/18(木) 10:02:48いま外出中なので、帰宅次第やってみようと思います。
またお世話になるかもしれませんが・・・
では失礼致します。
@携帯
0073、
2008/09/18(木) 12:06:310074デフォルトの名無しさん
2008/09/18(木) 12:14:300075デフォルトの名無しさん
2008/09/18(木) 12:52:200076デフォルトの名無しさん
2008/09/18(木) 12:56:45timeGetTimeを呼び出すごとに、timeBeginPeriod/timeEndPeriodではさむのか、
アプリケーションの開始と終了時にそれぞれ呼べばいいのか、どちらなのでしょうか。
0077デフォルトの名無しさん
2008/09/18(木) 13:59:510078デフォルトの名無しさん
2008/09/18(木) 14:30:180079デフォルトの名無しさん
2008/09/18(木) 14:44:23使い方がさっぱりですが、
CreateToolhelp32Snapshot(TH32CS_SNAPHEAPLIST,PID);
をやって、HANDLEが返ってきますが、
function EnumThreadWindows(dwThreadId: DWORD;
lpfn: TFNWndEnumProc;
lParam: LPARAM): BOOL; stdcall;
がさっぱりで・・・。
0080デフォルトの名無しさん
2008/09/18(木) 15:09:15せめてMSDNでAPIの説明ぐらい読め
0081デフォルトの名無しさん
2008/09/18(木) 15:09:550083デフォルトの名無しさん
2008/09/19(金) 13:39:11ファイル数やそのファイル名を取得したいのですが。
0084デフォルトの名無しさん
2008/09/19(金) 13:43:150086デフォルトの名無しさん
2008/09/19(金) 15:17:11作っているところ暇だったら待っててくれ
0087デフォルトの名無しさん
2008/09/19(金) 15:18:260088デフォルトの名無しさん
2008/09/19(金) 16:47:35dir /s
0089デフォルトの名無しさん
2008/09/19(金) 16:53:590090デフォルトの名無しさん
2008/09/19(金) 16:55:220091デフォルトの名無しさん
2008/09/19(金) 17:58:540092デフォルトの名無しさん
2008/09/19(金) 19:33:05日本語でおk
0093デフォルトの名無しさん
2008/09/19(金) 19:35:390094名無し募集中。。。
2008/09/19(金) 19:48:260095デフォルトの名無しさん
2008/09/19(金) 20:06:150096デフォルトの名無しさん
2008/09/19(金) 23:59:090097デフォルトの名無しさん
2008/09/20(土) 00:08:140098デフォルトの名無しさん
2008/09/20(土) 00:10:11スレチじゃね?
0099デフォルトの名無しさん
2008/09/20(土) 00:22:070100デフォルトの名無しさん
2008/09/20(土) 01:20:39どなたか良い方法をご存じないでしょうか?
もっとも単純?なのは
定期的にそのレジストリを参照して値が変更されているか確認するという方法だと思いますが、
そうではなくて、メッセージなどで変更が通知されたら良いなと思って調べています。
RegOpenKeyEx()の引数にKEY_NOTIFYを設定すると、
「変更の通知(キーに変更が加えられたときに、そのことを通知するよう要求)を許可します。」
という記載があったのですが、どう使用してよいかわかりません。
どなたかご存知の方はいませんか?
0101デフォルトの名無しさん
2008/09/20(土) 01:23:310102デフォルトの名無しさん
2008/09/20(土) 01:30:050103デフォルトの名無しさん
2008/09/20(土) 03:29:22sigunaruって何ですか?
0104デフォルトの名無しさん
2008/09/20(土) 05:47:27sigunal です。
0105デフォルトの名無しさん
2008/09/20(土) 07:01:55typoじゃなくて英単語知らないだけだろバーカ
0106デフォルトの名無しさん
2008/09/20(土) 07:04:360107デフォルトの名無しさん
2008/09/20(土) 14:19:52そのような場合はどの関数を使えばいいですか?
0108デフォルトの名無しさん
2008/09/20(土) 14:30:270109デフォルトの名無しさん
2008/09/20(土) 14:36:420110デフォルトの名無しさん
2008/09/20(土) 14:43:31使いたくない、という訳ではありません。
ただ他の方法も知っておきたいと思って質問しました。
0111デフォルトの名無しさん
2008/09/20(土) 14:45:540112デフォルトの名無しさん
2008/09/20(土) 14:51:02「走行中の車の向きを変えたいんですが、ハンドル操作以外に方法ありますか?」みたいな質問するなよ。
0113デフォルトの名無しさん
2008/09/20(土) 14:51:08他の方法は無いのですか?
0114デフォルトの名無しさん
2008/09/20(土) 15:31:190115デフォルトの名無しさん
2008/09/20(土) 16:02:440116デフォルトの名無しさん
2008/09/20(土) 16:14:56http://msdn.microsoft.com/en-us/library/ms534206(VS.85).aspx
String Widths and Heights
http://msdn.microsoft.com/en-us/library/ms534015(VS.85).aspx
0117デフォルトの名無しさん
2008/09/20(土) 18:01:180118デフォルトの名無しさん
2008/09/20(土) 22:08:34サロゲートペアとか右から左に書く言語とかどうすんだよ
無知は黙ってろ
0119デフォルトの名無しさん
2008/09/21(日) 04:48:080120デフォルトの名無しさん
2008/09/21(日) 04:49:270121119
2008/09/21(日) 04:56:58選択された行の内容ごと移動させたい
0122デフォルトの名無しさん
2008/09/21(日) 05:16:540123デフォルトの名無しさん
2008/09/21(日) 05:26:26やっぱりその方法しかないですか?
どもでした
0124デフォルトの名無しさん
2008/09/21(日) 07:12:30でもエラーコードは0
誰か成功経験ある?
0125デフォルトの名無しさん
2008/09/21(日) 07:17:37こんなもん数行のコードで同等のことが出来るだろ
0126デフォルトの名無しさん
2008/09/21(日) 07:21:120127デフォルトの名無しさん
2008/09/21(日) 09:08:410128デフォルトの名無しさん
2008/09/21(日) 11:48:590129デフォルトの名無しさん
2008/09/21(日) 14:34:31教えろ→自分でやれ→終了 の流れ
0130デフォルトの名無しさん
2008/09/21(日) 17:29:26「自分でしろ」という事を教えてるんだろうが
コード書いてるのは質問している当人なのだから、結局は自分でする事になるだろ
「〜するプログラム(ソース)を書いてくれ」と言うならそもそもスレ違い
0131デフォルトの名無しさん
2008/09/21(日) 17:42:32知らないならレスしないでください
0132デフォルトの名無しさん
2008/09/21(日) 18:41:12デバッグ実行中のプロセスの一時停止を一発でできるapiってある?
プロセスの全スレッド列挙してSuspendThreadするか、
Get/SetThreadContextで適当なスレッドにトラップを設定するしかない?
DebugBreakをプロセスIDかハンドル指定で呼べる感じのやつってない?
0133デフォルトの名無しさん
2008/09/21(日) 18:46:17hPrev = SelectObject();
SelectObjectしたら元のオブジェクトを保存して使い終わったら戻すべきであるという決まりがあるようですが、
そのような決まりがある理由を教えて下さい
0134デフォルトの名無しさん
2008/09/21(日) 18:48:120135デフォルトの名無しさん
2008/09/21(日) 18:55:140136デフォルトの名無しさん
2008/09/21(日) 18:59:490137デフォルトの名無しさん
2008/09/21(日) 19:28:510138デフォルトの名無しさん
2008/09/21(日) 19:30:40C言語の文法書2冊とWinAPIの本を2冊読みました。そこで
以前から私が作りたかった、ショートカット作成プログラムをぜひとも作りたいのです。
でも、やり方とかMSDNを調べてもわかりません。具体的に手順を書かせていただきますと。
1.コンソールアプリから2つフォルダのフルパスを入力する。
2.WindowsAPIで書いたショートカット作成関数を呼び出してお互いのフォルダにお互いのフォルダの
ショートカットを作成する。
そこで、ショートカット作成のWindows32APIのMSDNの調べ方もしくは
関数そのものを教えて欲しいのです。すみませんが、教えてください。よろしくお願いします。
0139デフォルトの名無しさん
2008/09/21(日) 19:44:29http://www7a.biglobe.ne.jp/~tsuneoka/win32tech/1.html
ショートカットを作成するには
http://www.runan.net/program/tips/sdk_03_CreateShortCut.shtml
0140132
2008/09/21(日) 19:45:540141138
2008/09/21(日) 19:47:57どうもありがとうございます。知りたい情報が載っているみたいです。
なんとか解読してがんばってみます。本当にありがとうございました。
0142デフォルトの名無しさん
2008/09/21(日) 20:01:41どんだけゆとりなんだよ
0143デフォルトの名無しさん
2008/09/21(日) 20:03:07XP以降はそんなのあるんだな。
BoundsCheckerの中の人がWin2kのときに書いた本では、
デバッガのスレッド優先度を最大にしてから被デバッグプロセスの
全スレッドをSuspendThreadしてブレークポイントを挿入するという
まどろっこしいことをしていた。
0144デフォルトの名無しさん
2008/09/21(日) 20:08:380145デフォルトの名無しさん
2008/09/21(日) 20:33:040146デフォルトの名無しさん
2008/09/21(日) 21:26:550147デフォルトの名無しさん
2008/09/21(日) 21:35:130149デフォルトの名無しさん
2008/09/22(月) 00:35:04> そのような決まりがある理由を教えて下さい
ゆとり丸出しな質問だな
0150デフォルトの名無しさん
2008/09/22(月) 01:08:470151デフォルトの名無しさん
2008/09/22(月) 01:33:46理由はここにいるような下っ端な人には知らされていませんから、
レッドモンドにお問い合わせください。
0152デフォルトの名無しさん
2008/09/22(月) 01:50:53最終的にはストックオブジェクトになるから消さなくてすむ
0153デフォルトの名無しさん
2008/09/22(月) 02:30:47そういう馬鹿ほどいちいち余計なことを気にするからいつまでも馬鹿のまま
0154デフォルトの名無しさん
2008/09/22(月) 02:38:24使える
ポインタのサイズ以外はほぼ互換
0155デフォルトの名無しさん
2008/09/22(月) 02:43:27それは違うだろ、馬鹿なのはお前だよ
0156デフォルトの名無しさん
2008/09/22(月) 02:43:500157デフォルトの名無しさん
2008/09/22(月) 02:53:360158デフォルトの名無しさん
2008/09/22(月) 04:50:550159デフォルトの名無しさん
2008/09/22(月) 05:03:140160デフォルトの名無しさん
2008/09/22(月) 05:28:47衆愚の鑑のような人だ。
0163デフォルトの名無しさん
2008/09/22(月) 14:47:50はずれだ馬鹿め
0164デフォルトの名無しさん
2008/09/22(月) 14:47:50新しい流行語でも作りたいのか?
0165デフォルトの名無しさん
2008/09/22(月) 14:56:390166デフォルトの名無しさん
2008/09/22(月) 14:59:10何でまとめて検索するんだ?
「衆愚」は衆愚政治とかで使うし、「〜の鏡」って表現も普通にあると思うんだが
ちなみに>>162ではない
0167デフォルトの名無しさん
2008/09/22(月) 15:00:460168デフォルトの名無しさん
2008/09/22(月) 15:08:55ない。
APIを組み合わせれば可能
0169デフォルトの名無しさん
2008/09/22(月) 15:14:220170デフォルトの名無しさん
2008/09/22(月) 19:34:21まとめて検索して出ないような表現は無いのと一緒
例えば「蝿の鑑」なんて言葉無いだろ
0171デフォルトの名無しさん
2008/09/22(月) 19:34:530172デフォルトの名無しさん
2008/09/22(月) 19:46:470173デフォルトの名無しさん
2008/09/22(月) 19:50:080174デフォルトの名無しさん
2008/09/22(月) 20:07:50ん?悔しかったの?w
0175デフォルトの名無しさん
2008/09/22(月) 20:17:56重ねたほうのウィンドウを透明にしてその上に絵を描きたい
NULLブラシを使ったところアニメーションが反映されません
レイヤードウィンドウを使うことによって解決できましたが
レイヤードウィンドウを使わない通常の描画処理で同じことをできないでしょうか?
0176デフォルトの名無しさん
2008/09/22(月) 21:04:31とても悔しかった。
0177デフォルトの名無しさん
2008/09/23(火) 01:16:432000やXPではできません。
というかできないからレイヤードウィンドウのAPIが追加されたのです。
VistaではAero有効ならできたような
0178デフォルトの名無しさん
2008/09/23(火) 10:21:16スレッドの優先度下げてもメインスレッドに影響するからもしかしてGDI系の関数って競合を防ぐために内部的にクリティカルセクション使ってたりするのかな。
自前で補間拡大実装しますかね。
0179デフォルトの名無しさん
2008/09/23(火) 10:34:160180デフォルトの名無しさん
2008/09/23(火) 11:42:08今度1から書き直すからそのときはD3Dも検討してみるよ。
0181デフォルトの名無しさん
2008/09/23(火) 11:49:16結局DIBに直接描画するだけだから、競合とかは関係無い筈。
0182デフォルトの名無しさん
2008/09/23(火) 14:35:52お前の勘違い
0183デフォルトの名無しさん
2008/09/23(火) 20:18:43お前が勘違い
0184デフォルトの名無しさん
2008/09/23(火) 20:49:26お前も勘違い
0185デフォルトの名無しさん
2008/09/23(火) 21:23:44お前と勘違い
0186デフォルトの名無しさん
2008/09/23(火) 21:26:19だめっ、ああっ、かんじちゃう〜〜〜
ボケェ平仮名や言うとるやろが!
0187デフォルトの名無しさん
2008/09/24(水) 00:14:210188デフォルトの名無しさん
2008/09/24(水) 01:00:320189デフォルトの名無しさん
2008/09/24(水) 01:24:00欠点しか思い浮かばない
・サロゲートペアは?
・カーニングは?
0190デフォルトの名無しさん
2008/09/24(水) 02:12:39サロゲートペアの時のみGetTextExtentPoint32()を使うのはどうでしょうか?
0191デフォルトの名無しさん
2008/09/24(水) 07:45:43サロゲートペアっつーか合成文字?
0192デフォルトの名無しさん
2008/09/24(水) 11:46:170193デフォルトの名無しさん
2008/09/24(水) 12:37:46幅が全く違ってくるな。
単独
ي
語頭
يط
語尾
طي
語中
طيط
0194デフォルトの名無しさん
2008/09/24(水) 15:30:530195デフォルトの名無しさん
2008/09/24(水) 15:37:230196デフォルトの名無しさん
2008/09/24(水) 15:51:53そう…ですか。ありがとうございます。
0197デフォルトの名無しさん
2008/09/24(水) 16:29:45COLORREFでα値設定できたらなあ
0198デフォルトの名無しさん
2008/09/24(水) 16:32:260199デフォルトの名無しさん
2008/09/24(水) 20:25:19別のソースファイルにpaint用の関数を書いて
hdcを渡したのですがうまくいきません
なぜでしょうか?
↓のようにしたいのですが・・・
hdc = BeginPaint(hWnd, &ps);
PaintFunc(hdc);
EndPaint(hWnd, &ps);
0200デフォルトの名無しさん
2008/09/24(水) 20:26:55うまくいってないのは WM_PAINT で再描画する領域外だったりしないか?
0201デフォルトの名無しさん
2008/09/24(水) 21:18:450202デフォルトの名無しさん
2008/09/24(水) 22:31:07buf[0] = 0xD844;
buf[1] = 0xDE3D;
TextOutW(hdc,0,0,buf,2);
■■こんな感じに表示されてしまうのですが、正しく表示させるにはどうすればよいでしょうか
0203デフォルトの名無しさん
2008/09/24(水) 22:37:510204デフォルトの名無しさん
2008/09/24(水) 22:59:520205デフォルトの名無しさん
2008/09/24(水) 23:02:30それはL"TEST"とかだと問題ないって前提なんだよな?
それなら選択されているフォントに対応する文字がないだけじゃね?
0206デフォルトの名無しさん
2008/09/24(水) 23:34:55選択して描画してみたらきちんと表示されたぞ。>>205の言うとおりだとおも。
適当にやって表示されなかったのは、サロゲート文字だからだろうな。
0207デフォルトの名無しさん
2008/09/25(木) 00:04:06PBT_APMSUSPENDのところの処理がvistaだとうまくいかないんだが、
どうすりゃいいでしょうか?
0208デフォルトの名無しさん
2008/09/25(木) 00:12:47どなたかご存じないでしょうか?
OpenProcess等で別プロセスを立ち上げて、その標準出力の結果を本アプリへ戻す、
という方法はパイプを使って紹介されているのですが、
今回のような逆のパターンって見かけないですね。
0209デフォルトの名無しさん
2008/09/25(木) 00:16:200212デフォルトの名無しさん
2008/09/25(木) 00:56:17XPじゃ表示されませんか?
0213デフォルトの名無しさん
2008/09/25(木) 01:29:30ネットワーク探索が有効かどうか知る方法ってあるんかな?
レジストリを探るしかないんだろうか。
0214デフォルトの名無しさん
2008/09/25(木) 02:11:03AllocConsoleとかAttachConsoleでは駄目?
っていうか、ちょっとググっただけで、いっぱい例が出てきたが。
0215デフォルトの名無しさん
2008/09/25(木) 02:49:11GetStdHandle
0216デフォルトの名無しさん
2008/09/25(木) 04:25:41DDBのサイズってどういう計算になるんでしょうか。
デバイス依存なので、デバイスによって異なるから、ピクセル数からサイズを求めることは不可能だったりしますか。
0217デフォルトの名無しさん
2008/09/25(木) 06:54:22色数は32bitが最大だから横×縦×8だと思う
0218デフォルトの名無しさん
2008/09/25(木) 06:59:41power of 2でなければならないとか、
縦横が同じでなければならないだとか、
貧弱なのもあるらしいぜ。
0219デフォルトの名無しさん
2008/09/25(木) 07:10:12あっても、水平方向のアラインが16bytesとかそれ位じゃね?
0220デフォルトの名無しさん
2008/09/25(木) 07:46:57さすがにもう修正されてるとは思うが
0221sage
2008/09/25(木) 08:23:05>>211
これも起動した相手プロセスの標準出力を起動要求した側へ戻すためのパイプ例ですよね。
>>214
こちらの方法も試したのですが、コンソールウィンドウを×で閉じると、
GUIのウィンドウの方も強制的に終了されてしまうので、見送っています。
ハンドラを設定して、CTRL_CLOSE_EVENT が送られてきたときに、TRUEを返却するようにしたのですが、
OSから、このプログラムを強制終了するか否かのダイアログが出てしまうので、見送ったのです。
(なにも言わず無視するようならば良かったのですが)
今テスト中ですがやりたいのは、
・メインのアプリAから cmd.exe を別プロセス実行
・そのcmd.exeに割り当てられた標準出力にAの標準出力を表示。
乗っ取ると言うよりは、寄生みたいな感じで。2つのプログラムの標準出力結果がミックスされるような。
相手がcmd.exeである点だけがくせ者だったりします。
もし自前プログラムだったら、割り当てられている標準出力のハンドルを呼び出し元に通知したり、
それこそパイプでつないで、自分の標準出力に改めて出すようなコードを書くのですが。
>>214
>>215
XPからはAttachConsoleというものもあるんですね。
こちらちょっと調べてみようと思います。
0222デフォルトの名無しさん
2008/09/25(木) 08:27:56横×縦×4だろ
0223デフォルトの名無しさん
2008/09/25(木) 08:48:030224デフォルトの名無しさん
2008/09/25(木) 09:46:100225デフォルトの名無しさん
2008/09/25(木) 10:09:060226デフォルトの名無しさん
2008/09/25(木) 10:21:52長くなるから、年寄りの話に相槌打つときは「ふーん」だけにしときなさい。
0227デフォルトの名無しさん
2008/09/25(木) 10:53:06単純に>>223のようにはいかないという話がわからないバカ
0228デフォルトの名無しさん
2008/09/25(木) 10:55:13わからないなら、「教えてくださいお願いします」だろ
0229デフォルトの名無しさん
2008/09/25(木) 10:57:27WndProc内のcase WM_SETFOCUS:が機能しなくなりました。
カーソルでウィンドウの大きさを変えてcase WM_PAINT:を機能させた後なら
機能するようになります。
一体何が問題だと考えられますか?
0230デフォルトの名無しさん
2008/09/25(木) 12:34:32年寄り乙
0231デフォルトの名無しさん
2008/09/25(木) 15:20:47どこかのcaseにbreak書き忘れたとか、そういうショボいミスだろう。
Mutexは関係ないかと。
0232デフォルトの名無しさん
2008/09/25(木) 15:57:14いえ、Mutex以外書き換えてない状態で起きるんですよ…
0233デフォルトの名無しさん
2008/09/25(木) 17:41:31>一体何が問題だと考えられますか?
↓
>WinMain内でMutexを使って
0234デフォルトの名無しさん
2008/09/25(木) 17:48:160235デフォルトの名無しさん
2008/09/25(木) 18:48:28>一体何が問題だと考えられますか?
君の書いたコード。
0236デフォルトの名無しさん
2008/09/25(木) 18:49:560237デフォルトの名無しさん
2008/09/25(木) 19:10:58坊やエスパー解答は?
0238178
2008/09/25(木) 19:35:55やっぱGDI関数はマルチスレッド非対応か。
でも拡大にStretchDIBitsの2倍時間が掛かるという…
0239デフォルトの名無しさん
2008/09/25(木) 20:41:27teeみたいな感じのプロセスを挟んで、
そいつには別口のパイプでデータをやりとりするとか。
0240デフォルトの名無しさん
2008/09/25(木) 22:35:31>>211
改めて確認してみました。
こちらは、cmd.exeを起動し、それに対してパイプを作っているようです。
そして、この標準出力からの結果を、TCPで接続してきたクライアントに返すもののようでした。
これを利用して、ログ出力みたいなことを実現するのは可能、だと思いました。
この方法で済ませてしまうのもありと思います。
>>214
>>215
AllocConsoleやAttachConsoleも調べてみました。
やはり別プロセスでcmdを作り、それをAttachしてみても変化はなく、
そのコンソールを閉じると、本体までもが終了してしまいました。
一応、ハンドラを次のように設定してみて、即終了は無くなるのですが、
OSから警告を言われてしまいます。これを封じることが出来ればよいのですが。
BOOL WINAPI handler( DWORD ctrlChar ) // ハンドラ例
{
if( CTRL_CLOSE_EVENT == ctrlChar )
{ // X押された
return TRUE; // 次のハンドラへ処理渡さない
}
return FALSE;
}
0241デフォルトの名無しさん
2008/09/26(金) 03:39:16バーをクリックしたまま移動させてもSCROLLINFOの値が変化しません。
case WM_LBUTTONDOWN:
PostMessage(hwnd, WM_VSCROLL, wp, lp);
return 0;
これではだめでした。
どうすれば良いのでしょうか。
0242デフォルトの名無しさん
2008/09/26(金) 06:08:04メッセージ送らなくても、バー操作したらWM_VSCROLLにメッセージ飛んでる
WM_VSCROLLで何にもしてないんじゃない?
0243241
2008/09/26(金) 15:36:03SB_THUMBPOSITION と SB_THUMBTRACK を勘違いしていました。
ごめんなさい。
0244デフォルトの名無しさん
2008/09/27(土) 15:45:06親ウィンドウの真ん中に子供ウィンドウを作っています。
親ウィンドウに描画しようとすると、何故か描画できない部分がありました。
おかしいなと思い、PatBltで親ウィンドウのサイズを黒色で塗りつぶそうとすると、
http://www.dotup.org/uploda/www.dotup.org4944.jpg
この画像のようになりました。
赤で囲っている部分だけが子ウィンドウの領域のはずなのですが、何故こうなるのでしょうか?
親ウィンドウのウィンドウスタイルにはWS_CLIPCHILDRENを入れていません。
0245デフォルトの名無しさん
2008/09/27(土) 16:04:392.塗りつぶす時の範囲がクライアント領域全体になっているか確認
0246デフォルトの名無しさん
2008/09/27(土) 16:20:36どちらも原因ではありませんでした。
どうデバッグしていいかが分からない;
0247デフォルトの名無しさん
2008/09/27(土) 16:23:190248デフォルトの名無しさん
2008/09/27(土) 16:32:34バックバッファを作る関数の中身に子ウィンドウのサイズの定数を使っていました。
考えてくれた方ごめんなさい。
0249デフォルトの名無しさん
2008/09/27(土) 16:43:200250デフォルトの名無しさん
2008/09/28(日) 02:45:35鼻くそほじりながら「そんなわけねーだろ」とかいいながらレスしたのか
0251デフォルトの名無しさん
2008/09/28(日) 03:08:400252デフォルトの名無しさん
2008/09/28(日) 08:34:030253デフォルトの名無しさん
2008/09/28(日) 09:43:50きっといつまでたってもデバッグ出来ないダメな子に育つんだろうな
0255デフォルトの名無しさん
2008/09/28(日) 18:22:01ロングポインタって何?ポインタは普通4バイトだけど8バイトあるとか、そういうこと?
0256デフォルトの名無しさん
2008/09/28(日) 18:30:520257デフォルトの名無しさん
2008/09/28(日) 18:34:080259デフォルトの名無しさん
2008/09/28(日) 19:35:410260デフォルトの名無しさん
2008/09/28(日) 20:13:17LPTSTR lp;
PTSTR p;
lp = p; // OK
p = lp; // Error
なの?
int i;
&i; <- これはnear/far/hugeどれになるの?
FARPROCのFARって、もしかしてこのfarなの?
0261デフォルトの名無しさん
2008/09/28(日) 20:49:59FARPROCのFARの由来はそのfarだけど今となっては意味なし
0262デフォルトの名無しさん
2008/09/28(日) 20:56:06のLPはLong Pointer
STRはSTRing
でTは一体何の略なの?
0263デフォルトの名無しさん
2008/09/28(日) 20:57:05TCHAR
0264デフォルトの名無しさん
2008/09/28(日) 21:28:070265デフォルトの名無しさん
2008/09/28(日) 21:28:490266デフォルトの名無しさん
2008/09/28(日) 23:36:050267デフォルトの名無しさん
2008/09/29(月) 01:58:510268デフォルトの名無しさん
2008/09/29(月) 11:11:39LLPSTR
になるのか?
0269デフォルトの名無しさん
2008/09/29(月) 13:00:15Love was not wide spread among the people and
it was magic or might that ruled the lands.
There were men that set out on precarions adventures
in order to test their strength and courage.
People called these men........__int64.
0270デフォルトの名無しさん
2008/09/29(月) 13:02:20現在のプログラムは32ビットと64ビットのアドレスが混在出来ないから、
そんな表記の必要性は無い。
0271デフォルトの名無しさん
2008/09/29(月) 17:13:300272デフォルトの名無しさん
2008/09/29(月) 17:21:370273デフォルトの名無しさん
2008/09/29(月) 17:30:390274デフォルトの名無しさん
2008/09/29(月) 17:53:14くそ。何でいちいち解放せにゃならんのだ
0275デフォルトの名無しさん
2008/09/29(月) 18:03:050276デフォルトの名無しさん
2008/09/29(月) 18:17:40解放せずに確保ばっかりしていては、そのうち使い切ってしまう
0277デフォルトの名無しさん
2008/09/29(月) 18:31:23そう思っていた時期(ry
0278デフォルトの名無しさん
2008/09/29(月) 19:04:29と言いたいんだ。
0279デフォルトの名無しさん
2008/09/29(月) 19:20:24たくさんのウィンドウがあって、それぞれに専用のDCを常時確保しておくというやり方は、
今ならともかく、16ビット時代のWindowsには厳しかったんだ
0280デフォルトの名無しさん
2008/09/29(月) 20:17:260281デフォルトの名無しさん
2008/09/29(月) 20:42:330282デフォルトの名無しさん
2008/09/29(月) 22:27:12どうすりゃいいんだ・・・orz
0283デフォルトの名無しさん
2008/09/29(月) 23:09:470284デフォルトの名無しさん
2008/09/29(月) 23:19:560285デフォルトの名無しさん
2008/09/29(月) 23:58:230286デフォルトの名無しさん
2008/09/30(火) 02:53:30エディットコントロールスタイルにそれらしいものが見つからなかったので、
case WM_INITDIALOG:
SendDlgItemMessage(hdlg, IDC_EDIT1, EN_SETFOCUS, wp, lp);
こうしてみたのですが、上手くいきませんでした。
どうすれば良いのでしょうか?
0287デフォルトの名無しさん
2008/09/30(火) 03:10:360288デフォルトの名無しさん
2008/09/30(火) 03:30:280289デフォルトの名無しさん
2008/09/30(火) 03:43:09すごい
上手くいきました
ありがとうございました
0290デフォルトの名無しさん
2008/09/30(火) 09:37:130291デフォルトの名無しさん
2008/09/30(火) 10:11:450292デフォルトの名無しさん
2008/09/30(火) 10:57:43そういうメッセージをエディットコントロールに送るということがおかしいということに気づけ。
0293デフォルトの名無しさん
2008/09/30(火) 10:59:220294デフォルトの名無しさん
2008/09/30(火) 22:00:37どのパラメータがどう間違ってるのか教えてくれ。。
0295デフォルトの名無しさん
2008/09/30(火) 22:17:310296デフォルトの名無しさん
2008/09/30(火) 22:49:28それにはRegReplaceKeyとかを組み合わせてやるんでしょうかね?
どなたかご教授願います
0297デフォルトの名無しさん
2008/09/30(火) 23:40:30削除する、という方法しかないようです。
0298デフォルトの名無しさん
2008/10/01(水) 00:00:0687か? それ以上はわからんよ。
0299デフォルトの名無しさん
2008/10/01(水) 00:55:36タブ幅は64、8文字分で、
今はsi.nPage=文字列幅/(TEXTMETRIC tm.tmAveCharWidthの)一文字の平均幅
にしているのですが
0300デフォルトの名無しさん
2008/10/01(水) 01:57:17ごめんなさい
描画に問題がある事がわかり、解決しました。
0301デフォルトの名無しさん
2008/10/01(水) 02:09:09スクロールバーをCreateWindowから作ってるんだけど
nMax, nMin, nPageとかの処理を既定のスクロールバー(WM_VSCROLL)
とまったく同じ挙動にしたいんだけど
どういう処理してるんでしょうか
0302301
2008/10/01(水) 02:15:42既定のスクロールバーっていうのは
リストボックスとかのLBS_VERTで付くスクロールバー等のことです
0303デフォルトの名無しさん
2008/10/01(水) 09:18:14はぁ何言ってんだお前頭大丈夫か?
0304デフォルトの名無しさん
2008/10/01(水) 09:32:44大丈夫じゃないだろ
LBS_VERTなんて存在しないフラグを指定してるぐらいだからな
0305デフォルトの名無しさん
2008/10/01(水) 09:43:290306デフォルトの名無しさん
2008/10/01(水) 11:03:01RECTを戻り値として直接返すようになっていないのは
なにか理由があるのでしょうか?
構造体やクラスを返す関数はあまりよろしくないのでしょうか?
0307デフォルトの名無しさん
2008/10/01(水) 11:10:36昔のマシンだとRECT程度のコピーでも馬鹿にならなかったとか
他言語との兼ね合いとか
そんなとこじゃないの
0308デフォルトの名無しさん
2008/10/01(水) 11:34:04エラーなどの情報まで返す必要がなければ、わざわざポインタを経由しなくても、
自作の構造体やクラスを直接返して特に問題無いですよね。
推奨されていないような情報があれば指摘してもらえると嬉しいです。
0309デフォルトの名無しさん
2008/10/01(水) 11:39:330310デフォルトの名無しさん
2008/10/01(水) 11:45:140311デフォルトの名無しさん
2008/10/01(水) 11:55:350312デフォルトの名無しさん
2008/10/01(水) 13:07:530313デフォルトの名無しさん
2008/10/01(水) 13:12:550314デフォルトの名無しさん
2008/10/01(水) 13:58:22Windows XPです。
0315デフォルトの名無しさん
2008/10/01(水) 15:38:040316デフォルトの名無しさん
2008/10/01(水) 15:51:59そういう用途ならIsUserAnAdminで事足りるけど。
0317デフォルトの名無しさん
2008/10/01(水) 16:10:440318デフォルトの名無しさん
2008/10/01(水) 17:03:300319301
2008/10/01(水) 18:06:25LBS_VERTとか変なことを・・・WS_VSCROLLの間違いです
標準スクロールバー付きリストボックスのとなりにおいて比べてみたけど
サム?(つまみ)の大きさが違うんですよ
リストボックスの場合、nPage = (nMax+1)/リストボックス表示可能行数
かなと思ったんだけど間違ってますかね?
0320デフォルトの名無しさん
2008/10/01(水) 18:07:51マシン語がどうなるか知れば答えがわかるよ
0321デフォルトの名無しさん
2008/10/01(水) 18:32:330322デフォルトの名無しさん
2008/10/01(水) 22:27:24その計算式だとページサイズじゃなくてページ数が出てこないか?
あと、最後までスクロールしきった時に
最終行は一番上にくるべきだ派と一番下だよ派があるが君はどっちだ?
それによって最大値の計算が変わる。
0323デフォルトの名無しさん
2008/10/01(水) 22:44:59マシン語というか、アセンブリで書くならxmmレジスタ1個でRECTが返せる
0324デフォルトの名無しさん
2008/10/01(水) 22:47:29アフォ?呼び出し規約無視すんなよ
0326デフォルトの名無しさん
2008/10/01(水) 23:50:06アフォはお前
0327デフォルトの名無しさん
2008/10/02(木) 00:32:580328デフォルトの名無しさん
2008/10/02(木) 00:47:31nPage=表示可能行数でnMax=全行数-nPage
>>327
お前またフォント選択するの忘れただろ
0330デフォルトの名無しさん
2008/10/02(木) 02:47:37wineのソース読むといいかも
0331デフォルトの名無しさん
2008/10/02(木) 02:56:27よくないです
0332デフォルトの名無しさん
2008/10/02(木) 03:44:06あぶなかったよ
0333デフォルトの名無しさん
2008/10/02(木) 03:48:190334デフォルトの名無しさん
2008/10/02(木) 04:21:14権利は前の会社のものだよな。
0335デフォルトの名無しさん
2008/10/02(木) 06:56:540336デフォルトの名無しさん
2008/10/02(木) 07:10:50著作権とライセンスの話がごっちゃになってないか?
0337デフォルトの名無しさん
2008/10/02(木) 07:46:15いかにGPLとて、たとえば合衆国内では、フェアユーズの範囲内で自由に使えるわけだ。
あるいはソフトウェアには権利を認めていない法律の国では役に立たん。
0338デフォルトの名無しさん
2008/10/02(木) 09:59:200339デフォルトの名無しさん
2008/10/02(木) 13:33:37HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, TRUE, dwProcessId );
でプロセスのハンドルを得ようとするのですが、
エラーコード6: アクセスが拒否されました
とでるんですが何が原因でしょうか?
0340デフォルトの名無しさん
2008/10/02(木) 13:34:180341デフォルトの名無しさん
2008/10/02(木) 14:03:070342デフォルトの名無しさん
2008/10/02(木) 14:15:070343デフォルトの名無しさん
2008/10/02(木) 14:27:350344デフォルトの名無しさん
2008/10/02(木) 14:31:580345デフォルトの名無しさん
2008/10/02(木) 14:50:08自動でプロセスを殺すやつを作っているんですよ
GoogleUpdate.exeは殺せたんですけど
iexplore.exeってやつだけはハンドルが取得できないんですよ
0346デフォルトの名無しさん
2008/10/02(木) 14:51:130347デフォルトの名無しさん
2008/10/02(木) 15:03:54勝手に起動するユーザー名がSYSTEMだと殺せませんね
0348デフォルトの名無しさん
2008/10/02(木) 15:10:290349デフォルトの名無しさん
2008/10/02(木) 15:14:54どうやったら特権で取得できるんですかね?
パソコン一人しか使っていないもんで特に不都合はないのです
0350デフォルトの名無しさん
2008/10/02(木) 15:19:08OpenProcessToken()
LookupPrivilegeValue()
AdjustTokenPrivileges()
この辺で。時刻かえるときなんかも使う。
0351デフォルトの名無しさん
2008/10/02(木) 15:25:35ありがたやありがたや
0352デフォルトの名無しさん
2008/10/02(木) 15:54:03SYSTEMユーザーで勝手に起動するって、ウイルスとかに感染してないか?
0353デフォルトの名無しさん
2008/10/02(木) 16:07:18プロセスが勝手に動くだけのようでして、自動で閉じるツールを
つくろうかなと思った次第ですよ
ファイルが消えたりとかはないみたいなんですよ
0354デフォルトの名無しさん
2008/10/02(木) 16:23:20Windows板にでも行けよ。
と言いたいところだが、ここはム板なので、それに準じた回答でもしてやるか。
WindowsプログラマならSysinternalsのツールぐらい知っておくべき。
ttp://technet.microsoft.com/en-us/sysinternals/bb963902.aspx
0355デフォルトの名無しさん
2008/10/02(木) 16:42:160356デフォルトの名無しさん
2008/10/02(木) 17:07:02そもそもiexplore.exeでググればウイルスに関連した情報も見つかるだろ
お前が呑気にプログラム書いたり2ちゃんに投稿してる間にもウイルスが人様のPCに迷惑かけてるかも知れんのだ
0357デフォルトの名無しさん
2008/10/02(木) 19:01:35な〜んの役にもたちませんね
>>355 >>356
消えてください
そもそも他人に迷惑をかけているとか
勝手に捏造しないでください
しね
0358デフォルトの名無しさん
2008/10/02(木) 19:17:17まったくもう…
0359デフォルトの名無しさん
2008/10/02(木) 19:26:37速やかに死んでください
0360デフォルトの名無しさん
2008/10/02(木) 19:30:340361デフォルトの名無しさん
2008/10/02(木) 19:35:08なぜ1個人が政府機関などにアタックかけるんですか?
ゾンビPCとは何ですか?
マスコミの影響受けすぎじゃないんですか?
精神病院行った方がいいですよ?
0362デフォルトの名無しさん
2008/10/02(木) 19:39:440363デフォルトの名無しさん
2008/10/02(木) 19:41:03ttp://e-words.jp/w/E382BEE383B3E38393PC.html
0364デフォルトの名無しさん
2008/10/02(木) 19:44:33まったく同感だ
病院で診てもらったほうがいい
0365デフォルトの名無しさん
2008/10/02(木) 19:45:190366デフォルトの名無しさん
2008/10/02(木) 19:47:08まぁそれもわからないのでしょう
リンクを貼ることからしてまぁ、現場で突然質問されても
な〜んにも答えられないのでしょうね
そのようなあなたからレッテルを貼られたくありませんね
ちゃんちゃん
0367デフォルトの名無しさん
2008/10/02(木) 19:49:410368デフォルトの名無しさん
2008/10/02(木) 19:55:45質問する人はトリップ付けた方がいいぞ
0369デフォルトの名無しさん
2008/10/02(木) 20:03:540370デフォルトの名無しさん
2008/10/02(木) 20:12:15政府とかのね
サーバーにね
攻撃とかをね
しているとね
マイクげふげふ
('∀`)<あなたを、犯人ですとかね
勝手にシャうぉっほん
まぁね
あんまりよい子はね
マネしちゃね
ダメだね
え?私の方が精神病院に行った方がいい?
まぁ、どうなんでしょうかね
よく分かりません
0371デフォルトの名無しさん
2008/10/02(木) 20:13:170372デフォルトの名無しさん
2008/10/02(木) 20:13:29そのくらいのね
技術がね
あればね
こんなところでね
質問してねーぞバカヤローってことですよ
0373デフォルトの名無しさん
2008/10/02(木) 20:14:400374デフォルトの名無しさん
2008/10/03(金) 02:13:31軍事用に開発されたらしいので 開発費がたくさんかかったらしい。
plaoaluta
begin
alutabocx
code2 end_roop_END_roop\roop_pasemode2_pasemode2_pasemode_pasemode_2_pasemode2
if then else####KINOKO?NOKIA####endrollPLUUBACKtome####TOME
digital####digital####endrollws
cant_pupupuuupupuuupupuuupupuuupupuuupupuuupupuuupupuuupupuuupupuuu
wao
0375デフォルトの名無しさん
2008/10/03(金) 07:56:26使用しているのですが、
自作アプリケーションから、それがUSBに接続された、抜き取られたという
判断をしたいのですが、そのようなことを実現するAPIはありますでしょうか?
0376デフォルトの名無しさん
2008/10/03(金) 08:06:14WM_DEVICECHANGE とか飛んでこない?
0377デフォルトの名無しさん
2008/10/03(金) 08:10:43ただ、渡すパラメータ等はWindowsDriverKitを参照しないと判らないかも。
0378デフォルトの名無しさん
2008/10/03(金) 08:39:10ゲームに未既読をスキップという機能がなかったので、ツール作って自動化させようと思っているのですが、
そういう場合はウィンドウ見つけてSendMessageでボタンを押すでよろしいのでしょうか?
一応コードさらします。ちなみにうまくいきません。@Delphi
var
hcal :HWND;
h5 :HWND;
begin
hcal :=FindWindow(nil, 'Aster Version 1.05');
if hcal =0 then
begin
ShowMessage('Error');
exit;
end;
SetForegroundWindow(hcal);
h5 := 984180;
if h5 <>0 then
begin
SendMessage(h5, WM_LBUTTONDOWN, 0, 0);
Sleep(100);
SendMessage(h5, WM_LBUTTONUP, 0, 0);
end
else
begin
ShowMessage('Error');
exit;
end;
end;
0379デフォルトの名無しさん
2008/10/03(金) 08:42:060380デフォルトの名無しさん
2008/10/03(金) 08:49:450381デフォルトの名無しさん
2008/10/03(金) 09:04:48送り先があっているかとかあるが
まず、そのメッセージのwparamやlparamはだめだろう
SendInputでいいと思うけどね
0382デフォルトの名無しさん
2008/10/03(金) 09:32:02さっそく帰宅次第やってみようと思います。SendInputというのをはじめて聞いた私は勉強不足なんでしょうね。
携帯から失礼しました。
0383デフォルトの名無しさん
2008/10/03(金) 12:09:47と思ったのは俺だけですか?
0384デフォルトの名無しさん
2008/10/03(金) 12:18:57QWERTY配列のUSBキーボードを利用していないと、どうして断定できようか。
0385デフォルトの名無しさん
2008/10/03(金) 12:25:530386デフォルトの名無しさん
2008/10/03(金) 12:43:590387デフォルトの名無しさん
2008/10/03(金) 12:50:06CreateCompatibleDCで互換のある複製をとってこいつに元のHDCのフォントを設定しても
同じ値は取れますか
0388デフォルトの名無しさん
2008/10/03(金) 13:14:15MM_TEXTならどれも変わらんのでは
0389デフォルトの名無しさん
2008/10/03(金) 15:11:430390デフォルトの名無しさん
2008/10/03(金) 15:41:070391デフォルトの名無しさん
2008/10/03(金) 15:51:560392デフォルトの名無しさん
2008/10/03(金) 16:07:510393デフォルトの名無しさん
2008/10/03(金) 16:09:44正直でよろしい
0394デフォルトの名無しさん
2008/10/03(金) 16:10:440395デフォルトの名無しさん
2008/10/03(金) 16:15:350396デフォルトの名無しさん
2008/10/03(金) 16:24:240397デフォルトの名無しさん
2008/10/03(金) 16:30:000398デフォルトの名無しさん
2008/10/03(金) 16:35:460399デフォルトの名無しさん
2008/10/03(金) 17:20:240400382
2008/10/03(金) 19:01:39帰宅して見てみましたが、
ttp://orangeknowledge.jpn.org/tips/sdk002.html
を見る限り、SendInputで押せるみたいですがどこのウィンドウで押すのかが指定できないので無理ではないのでしょうか?
SendMessageは実現不可なのでしょうか?
0401デフォルトの名無しさん
2008/10/03(金) 19:07:55いくらメッセージ送っても無駄だし・・・
0402デフォルトの名無しさん
2008/10/03(金) 19:11:34まあどのゲームかわかったから、体験版で試してもいいが・・・
0403デフォルトの名無しさん
2008/10/03(金) 19:20:42そういうのってどうやって調べるんでしょう?
ネットゲームとかはそんな感じですが、私のやろうとしているものは・・・。
>>402
大きいおにいちゃん向けのゲームです・・・
ttp://www.rusk.tv/aster_index.htm
18歳未満はいっちゃだめです><
0404デフォルトの名無しさん
2008/10/03(金) 19:28:27FindWindow(nil, 'Aster Version 1.05');
でググってわかったんだけどなw
0405デフォルトの名無しさん
2008/10/03(金) 19:34:350406デフォルトの名無しさん
2008/10/03(金) 19:50:56Cって?
0407デフォルトの名無しさん
2008/10/03(金) 19:52:300408406
2008/10/03(金) 20:00:42前からずっと疑問だったんで。。
多謝っす。
0409デフォルトの名無しさん
2008/10/03(金) 20:29:29とそのウィンドウにWM_PAINTって発行される?
WM_PAINTのときに描くと重くなってウィンドウの別の処理できないから、
WM_PAINTきたら、SetEventしてとりあえず描画は別スレッドでまわしてたら、
CPUほぼ独占状態になって結局重いんだが・・・
今はとりあえずsleep入れて落ち着かせてるorz
0410デフォルトの名無しさん
2008/10/03(金) 20:31:420412デフォルトの名無しさん
2008/10/03(金) 20:39:260413デフォルトの名無しさん
2008/10/03(金) 20:44:22無効化領域の有効化だけしておけばいい。
後で描画するつもりなら、その瞬間はグチャグチャのまま放置でも全然問題無いし。
0414409
2008/10/03(金) 20:55:43>>413 BeginPaintとEndPaintをWM_PAITで呼び出すでおk?
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
SetEvent(hoge);
EndPaint(hWnd, &ps);
break;
みたいな?
0415409
2008/10/03(金) 21:20:50CreateCompatibleDCで確保したデバイスコンテキストハンドルは解放するべき?
解放するときってReleaseDC使えばおk?
0416デフォルトの名無しさん
2008/10/03(金) 21:21:37はい
0418デフォルトの名無しさん
2008/10/03(金) 21:25:050419デフォルトの名無しさん
2008/10/03(金) 21:36:51ずっとCharだと思ってた。サンクス。
>>418
あぶねえw416見て今まで書いたソース全部書き直そうかと一瞬思ったw
0420デフォルトの名無しさん
2008/10/03(金) 21:38:19り、りれぇぁす(巻き舌で)
0421デフォルトの名無しさん
2008/10/03(金) 22:22:130422409
2008/10/03(金) 22:46:23とりあえず>>413の方法を採らせてもらった
>>412 >>413 >>416どもでしたー
0423409
2008/10/03(金) 22:52:35CDC::CreateCompatibleDCしかなかったからとりあえずこっちで聞きました
0424デフォルトの名無しさん
2008/10/03(金) 23:54:220425デフォルトの名無しさん
2008/10/03(金) 23:57:170426デフォルトの名無しさん
2008/10/04(土) 06:23:300427デフォルトの名無しさん
2008/10/04(土) 15:34:56menu.res作って
winc.lpszMenuName = "menu";
って書くだけじゃ駄目なんですか?
0428デフォルトの名無しさん
2008/10/04(土) 15:45:54メニュー付きのウィンドウが作られるからそのソース参考にするといい
伝わるか分からんが一応書いとく
#define IDC_MENU 100
wc.lpszMenuName = MAKEINTRESOURCE(IDC_MENU);
0429デフォルトの名無しさん
2008/10/04(土) 18:49:46そのソースってw アホかww
0430デフォルトの名無しさん
2008/10/04(土) 19:20:140431デフォルトの名無しさん
2008/10/04(土) 21:02:550432デフォルトの名無しさん
2008/10/04(土) 22:55:470433デフォルトの名無しさん
2008/10/04(土) 23:08:290434デフォルトの名無しさん
2008/10/04(土) 23:41:37,,r''"´ `"''-,,
/ ノ ヽ、 \
/ ( ● ) ( ● ) ヽ ヽ
i゛ :::⌒(__人__)⌒::: ヽ ゛i
l |r┬-| l ノ そーなんすかwww
! | | | レ'
l l | | | l , l
| l `ー'´ | l l
! l ,! | l
l ゛i / l i゛
゛i ヽ / / /
ヽ,__,,,ゝ く ノ /
ヽ ゛" / __
_ ) 、(二"'''ー'"ー'__゛゛ヽ
r'  ̄  ̄ヽ,)‐-,,_ ´┴'ノ
ヽ__,,-──-、__,ノ
0435デフォルトの名無しさん
2008/10/04(土) 23:45:180436デフォルトの名無しさん
2008/10/05(日) 11:01:44数字で指定したのなら>>428
リソースファイルで""でくくってあれば文字列。
0437デフォルトの名無しさん
2008/10/05(日) 11:10:18>>428、>>436
ありがとうございます。
0438デフォルトの名無しさん
2008/10/05(日) 15:48:53ライブラリ何も使わずに、Win32APIだけで本格的なゲーム作った事ある人っている?
本格的の定義は、3万ステップ以上で、ちゃんと遊べるようなゲームとしとく。
0439デフォルトの名無しさん
2008/10/05(日) 15:52:370440デフォルトの名無しさん
2008/10/05(日) 16:06:480441デフォルトの名無しさん
2008/10/05(日) 16:08:17学校では本格的なゲームを作らしてる訳ではないと思うので
聞くだけ不毛じゃないかと
0442デフォルトの名無しさん
2008/10/05(日) 16:55:17あれはミニゲームだと思う
>>441
学校じゃなく、趣味でも本格的なの作る人は、いないのかなーって
0443デフォルトの名無しさん
2008/10/05(日) 17:12:080444デフォルトの名無しさん
2008/10/05(日) 17:12:070445デフォルトの名無しさん
2008/10/05(日) 17:39:12ゲームの最中に気晴らしにやるのがミニゲームだ
0446デフォルトの名無しさん
2008/10/05(日) 18:10:400447デフォルトの名無しさん
2008/10/05(日) 23:16:500448デフォルトの名無しさん
2008/10/05(日) 23:20:170449デフォルトの名無しさん
2008/10/06(月) 00:27:120450デフォルトの名無しさん
2008/10/06(月) 00:30:470451デフォルトの名無しさん
2008/10/06(月) 00:36:460452デフォルトの名無しさん
2008/10/06(月) 00:58:340453デフォルトの名無しさん
2008/10/06(月) 10:22:22今は200切るのもやっとだ。寝ながらトラックボールじゃ限界かな。
0454デフォルトの名無しさん
2008/10/07(火) 13:32:580455デフォルトの名無しさん
2008/10/07(火) 17:13:46今は画像処理にAPI使わずにアセンブラ+MMXで高速化してしのいでる。
0456デフォルトの名無しさん
2008/10/07(火) 17:17:560457デフォルトの名無しさん
2008/10/07(火) 17:20:00アルファブレンディング多用してるの?
0458デフォルトの名無しさん
2008/10/07(火) 17:29:310459デフォルトの名無しさん
2008/10/07(火) 18:53:21使うならSSE以降にしておいた方が良い。
0460デフォルトの名無しさん
2008/10/07(火) 20:06:450461デフォルトの名無しさん
2008/10/07(火) 20:16:06単に128bit幅のXMMレジスタが効率的に処理されるってだけで、
64bit幅だから二つ同時って訳にもいかないから、相対的に遅いだけか。
0463デフォルトの名無しさん
2008/10/07(火) 21:42:34それがねぇ、CPUによっては分割して実行してんじゃねーのかってぐらいSSEが遅いってことがあるらしいんだよね。
まあスレ違いだ。
0464デフォルトの名無しさん
2008/10/07(火) 22:24:140465デフォルトの名無しさん
2008/10/08(水) 04:31:42インテルならCoraMA、AMDならphenomになるまではSSEは分割。
Pen4以外だとMMXがSSE2より速かったりもした。
API使う場合対応してる最新の拡張が使われるだろうけどあんま気にする必要はないかな。
0466デフォルトの名無しさん
2008/10/08(水) 09:49:38これはどのような目的で関連付ける必要があるのでしょうか。
MSDNには「NULLを指定すると現在のタスクがクリップボードを開きます」
と書かれているのですが、明示的にウィンドウハンドルを渡すのとNULLを渡すので
なにか挙動が変わってくるものなのでしょうか。
0467デフォルトの名無しさん
2008/10/08(水) 09:57:430468デフォルトの名無しさん
2008/10/08(水) 11:08:230469デフォルトの名無しさん
2008/10/08(水) 14:54:460470デフォルトの名無しさん
2008/10/08(水) 14:58:070471デフォルトの名無しさん
2008/10/08(水) 16:06:100472デフォルトの名無しさん
2008/10/08(水) 16:07:070473デフォルトの名無しさん
2008/10/08(水) 16:12:380474デフォルトの名無しさん
2008/10/08(水) 17:11:370475デフォルトの名無しさん
2008/10/08(水) 17:13:190476デフォルトの名無しさん
2008/10/08(水) 18:16:510477デフォルトの名無しさん
2008/10/08(水) 21:10:05現在、カナ入力かアルファベット入力かを調べるにはどうすれば良いですか?
0478デフォルトの名無しさん
2008/10/08(水) 21:18:430479デフォルトの名無しさん
2008/10/08(水) 21:21:360480デフォルトの名無しさん
2008/10/08(水) 21:31:320481デフォルトの名無しさん
2008/10/08(水) 21:37:450482デフォルトの名無しさん
2008/10/09(木) 07:12:13キャラのBMPをドラックアンドドロップさせて移動させてみたいんですが
検索してもファイルを開く処理しかヒットしません
どうやればいいんでしょうか
0483デフォルトの名無しさん
2008/10/09(木) 07:33:34マウスの処理とか画像の表示とか
0484デフォルトの名無しさん
2008/10/09(木) 13:32:14呼び出し形式と戻り値を得ることが出来ました。
これからどうすればこのDLLを使えるでしょうか?
ちなみにその会社はもう潰れて解散しています。
0485デフォルトの名無しさん
2008/10/09(木) 13:45:52インポートライブラリ作ってリンクする。
インポートライブラリは環境によってやり方が違う。
0486デフォルトの名無しさん
2008/10/09(木) 14:49:24そんな得体の知れないAPIなんて使うなというのが正解だと思う。
引き数にワケワカメな構造体とか使われたり、
複数のAPIに呼び出し手順とかあったらまずまともに使えないだろw
0487デフォルトの名無しさん
2008/10/09(木) 14:55:44ブラックボックスじゃ品質保証出来ないぜ
0488デフォルトの名無しさん
2008/10/09(木) 15:10:110489デフォルトの名無しさん
2008/10/09(木) 18:18:58リソーススクリプトで定義してあるダイアログを
CreateWindow[Ex]で作成したいのですが、可能なのでしょうか?
よろしくお願いします。
0490デフォルトの名無しさん
2008/10/09(木) 18:33:180491489
2008/10/09(木) 18:43:01お答えありがとうございます。
上位クラスの実装が WNDPROC での実装のため、
CreateDialog[Indirect][Param] では問題があるのです。
WNDPROC を DLGPROC へ強引にキャストしても
問題ないのでしょうか?
0492デフォルトの名無しさん
2008/10/09(木) 19:27:51んー、、、
0493489
2008/10/09(木) 19:33:34static LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp );
というメソッドが上位クラスにあるのですが、
それをプロシージャとして使いたいのです。
ただ、すべてのコントロールを CreateWindow() で作るのは
望ましくないため、リソースエディタでコントロールを配置し、
それを使用したいのです。
0494デフォルトの名無しさん
2008/10/09(木) 20:08:150495デフォルトの名無しさん
2008/10/09(木) 20:09:59組むものによもるが3DNow!で十分だと思う
αブレンディング多用するようなコードはクリティカルな部分がメモリ転送になりがちで
一例になるがP3 1GHzでrep movsdで8msec程かかる800x600x24bitの単純転送が
MMX&SSEの場合(プリフェッチ命令だけ使用、この場合3DNow!と命令セットの互換性がある、使用可不可のチェックだけ別)
5.4msec程になる、うまくすれば全連続メモリ転送について大体3割程の高速化が可能
さらにP4とかだとプリフェッチをきちんと使うと確かに倍速にはなるんだが
元々FSB400で2.7msecだったのが1.4msecになっても効果のほどは?
遅い機種のためのチューニングにはそれなりの意味があるんだがなぁ
一番意味がないのはP4のSSE2、一度にSSEの倍のデータを扱える代わりに2倍の時間がかかる
ちなみに最近のcoreduoとかだと巨大な2次キャッシュに入りきってしまう場合はrep movsdの方が連続処理において速いが
キャッシュに入らないようだとプリフェッチ命令を使う方がP3世代と同じように大体30〜40%程速くなる
例えばキャッシュに入らないと仮定された800x600x24bit転送がcore2duo FSB1333で0.7msecが0.5msecになる
αブレンドの多用はFSBにかなり支配的になるのでエロゲとかがFSBに支配されてるのとおなじだな
この場合3DNow!以降で実装されたプリフェッチ命令を使用してメモリ転送部分を書くだけで3割ほどの高速化が可能
0496489
2008/10/09(木) 20:29:59リソーススクリプトのダイアログの記述部に
以下の一行を加えてみました。
CLASS "IDD_FILES"
その後、上記の文字列を
WNDCLASSEX::lpszClassName に設定したり、
CreateWindow[Ex]() の (LPSTR)ATOM の変わりに
設定したりしてみましたが変化がないようです。
そもそも VC2003 のリソースエディタ上の
ダイアログプロパティ内 ClassName には
反映されていないようです。
やり方が間違えているのでしょうか?
0497デフォルトの名無しさん
2008/10/09(木) 20:46:171) 自分のウィンドウプロシージャを適当なウィンドウクラス名で登録する
2) そのウィンドウクラス名をダイアログリソースにも書いておく
3) CreateDialogなんちゃらでダイアログを作成すると、リソースで指定したウィンドウクラスが使われる
4) 結果、その名前で登録しておいた自分のウィンドウプロシージャが呼ばれる
5) ウィンドウハンドルからクラスを検索するなりなんなりして、その自分のウィンドウプロシージャから上位クラスの実装とやらを呼ぶ
0499デフォルトの名無しさん
2008/10/10(金) 00:34:50どうすればいいですか?
Bitmapで読み込んで、Graphics->DrawString で画像の上に文字列は出せますが
bitmap->Save しても画像自体にはかかれてないので。
0500デフォルトの名無しさん
2008/10/10(金) 00:39:400501デフォルトの名無しさん
2008/10/10(金) 01:06:52GraphicsとBitmapオブジェクトを生成してる部分のコード書いてみ
>>500
漠然としてるな
APIの利用方法、性能諸元
0502デフォルトの名無しさん
2008/10/10(金) 02:11:320503デフォルトの名無しさん
2008/10/10(金) 02:37:370504デフォルトの名無しさん
2008/10/10(金) 04:25:440505デフォルトの名無しさん
2008/10/10(金) 05:31:220506デフォルトの名無しさん
2008/10/10(金) 12:17:20中の処理のせいかと思って
switch (((NMHDR *)lp)->code) {
case TCN_SELCHANGE:
int TabNumber=TabCtrl_GetCurSel(hTab);
}
return TRUE;
だけにしてもやっぱりエラーでてしまう。なんで?
0507デフォルトの名無しさん
2008/10/10(金) 12:20:320508デフォルトの名無しさん
2008/10/10(金) 12:23:36そこへ分岐する条件を疑うべきじゃないか
0509デフォルトの名無しさん
2008/10/10(金) 12:52:42エラーの内容まで詳しく書ける人は、こんなショボい質問しないけどなw
デバッガ使えば一発で分かりそうなもんだが。
0510デフォルトの名無しさん
2008/10/10(金) 15:29:41switch (LOWORD(wp)){
メニューバー関係
switch (LOWORD(wp)){
ボタン関係
と書いたら問題あります?
0511デフォルトの名無しさん
2008/10/10(金) 16:03:420512デフォルトの名無しさん
2008/10/10(金) 16:06:350513デフォルトの名無しさん
2008/10/10(金) 16:18:000514デフォルトの名無しさん
2008/10/10(金) 16:43:55Aでabを参照するときに、スレッドCまで処理を中断するのは無駄だと思うんですが
0515デフォルトの名無しさん
2008/10/10(金) 16:48:59バカ?
0516デフォルトの名無しさん
2008/10/10(金) 16:55:130517デフォルトの名無しさん
2008/10/10(金) 16:59:580518デフォルトの名無しさん
2008/10/10(金) 17:02:23ありがとうございます。これで安心して使えます。
0519デフォルトの名無しさん
2008/10/10(金) 17:46:56それは注意して実装しないとデッドロックを引き起こすから、
Cまでブロックした方が安全ではある。
0520デフォルトの名無しさん
2008/10/10(金) 18:13:38↑話を理解してない馬鹿
0521デフォルトの名無しさん
2008/10/10(金) 21:19:19ん、俺も同様の意見なんだけどな。
abはAとBでだけ、bcはBとCでだけ同期処理を行ってるってことだろ?
だったらAでbにアクセス中にCからもbにアクセスしたらデッドロックが起きても文句言えん。
A動作中にCを中断するだけでなく、C動作中にAを中断することも行うべき。
0523デフォルトの名無しさん
2008/10/10(金) 21:55:28CreateWindow関数でウィンドウを最初に作るときに、7番目の引数に親ウィンドウのハンドル
を書くと書いてありますが、たとえば、子ウィンドウの汎用クラスというかオブジェクトを作成して、
それを色々なプログラムの親ウィンドウから使用するということはできるんですか?
要するにこの7番目の引数さえ変えれば、色々なプロジェクトから子ウィンドウを共有できますか?
よろしくお願いします。
0524デフォルトの名無しさん
2008/10/10(金) 22:12:290525デフォルトの名無しさん
2008/10/10(金) 22:18:48514ですが変数はab、bcの二つという意味でした。
AとBで共有だからabって書いたんですけど、わかりにくくてすいません。
0526523
2008/10/10(金) 22:20:04どうもありがとうございます。調べてみます。私の言っている共有とは
いくつも起動している自作プログラムから子ウィンドウを共有するという意味ではなく
いくつもプロジェクトを作成するとして、そのソースをそのまま親のハンドルを変えれば
そのソースが使えるかという意味で各プロジェクトで共有という言葉をつかったんですが、
よくかんがえれば、使えるに決まってた。。
お世話になりました。使えないわけがない。。どうにかしてました。ありがとうございました。
0527デフォルトの名無しさん
2008/10/10(金) 23:38:35シミュレートしようと思っています。
その場合、可能であればですが、エクスプローラが使っているDLLか何かの
ファイルを横から使うことでも実現できるものでしょうか?その場合、DLL内の
APIを使うために必要な知識としてはどんなものがあるでしょうか?
また、もし自分で全部作るとすると レジストリーから行うことになりそうですが、
例えばXpだと、
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew
という、途中の Discardable なるやっかいな代物を扱う必要がありそうでした。
このキーはときどき何かの事情で削除されてしまう場合があるもののようで、
無いときは自分で作成しなければならないようでした!この場合、そうしたこと
を実際にしないといけないでしょうか?もし何かうまい別法があるようでしたら
教えて戴けないでしょうか、よろしくお願いします!
0528デフォルトの名無しさん
2008/10/11(土) 01:14:25原因はどういったことがあるでしょうか?
ハンドル等のクローズ失敗とか
タスクマネージャーのプロセスには残ってません
0529デフォルトの名無しさん
2008/10/11(土) 03:19:05まず質問の仕方を勉強しなさい。
0530デフォルトの名無しさん
2008/10/11(土) 03:21:380531デフォルトの名無しさん
2008/10/11(土) 03:29:19難しく考えないことだ。そしてそのファイルを開くプロセスがどんなものがあるか考えれば答えは見つかるだろう。
0532デフォルトの名無しさん
2008/10/11(土) 08:26:57その実行ファイルを使っているプロセスがどこかで走ってるんだよ
見に覚えがないならOSの内部のほうか
完全に終了までに少しラグがあるのかもしれない
場合によってはアレの可能性があるから
ちょっとネットワーク遮断してから削除試してみ・・・
0533デフォルトの名無しさん
2008/10/11(土) 08:33:07まぁ>>531で十分だわな。
0534デフォルトの名無しさん
2008/10/11(土) 09:28:210535デフォルトの名無しさん
2008/10/11(土) 09:37:15>>511 ありがとうございました。
0536デフォルトの名無しさん
2008/10/11(土) 11:17:360537デフォルトの名無しさん
2008/10/11(土) 13:03:25のリンク先で.chm形式のMSDN Libraryってありますか?
最新の形式だとエディタから参照できないのであれば教えてください。
0538デフォルトの名無しさん
2008/10/11(土) 13:07:24POPUP "A"{
MENUITEM "B",IDM_b
…
と書いてメニューバー作りました。
"A"にカーソル持ってきてもクリックするまで開きませんが
開いて出てくる"B"にカーソル持ってくるとすぐ動作してしまいます。Bも
クリックするまで動作しないようにするにはどうすればいいでしょうか?
0539デフォルトの名無しさん
2008/10/11(土) 14:04:540540デフォルトの名無しさん
2008/10/11(土) 14:26:10ダウンロードの詳細 : MSDN Library for Visual Studio 2008 SP1
http://www.microsoft.com/downloads/details.aspx?FamilyId=7BBE5EDA-5062-4EBB-83C7-D3C5FF92A373&displaylang=ja
0541デフォルトの名無しさん
2008/10/11(土) 14:31:29Unlocker入れてみた所ロックしてるハンドルは見つかりませんと出るのですが
削除はできませんでした
最近ノートン2009いれたのでもしかしてと思いアンインストールしてみた所
削除できるようになりました、色々お騒がせしました
0542デフォルトの名無しさん
2008/10/11(土) 14:38:09です。
case IDM_b:
MessageBox(…
試しにこうしています。そしたらカーソル持ってきたらすぐメッセージボックスが…
0543デフォルトの名無しさん
2008/10/11(土) 14:40:46そのcase文のswitchは、case WM_COMMAND内?
そしてswitch文はLOWORD(wParam)をチェックしてる?
その辺がわかるところ全部書けよ。
0544デフォルトの名無しさん
2008/10/11(土) 14:48:50switch (msg){
case WM_MENUSELECT:
switch (LOWORD(wp)){
case IDM_b:
MessageBox(…
です。
0545デフォルトの名無しさん
2008/10/11(土) 14:53:29クリックやリターンで確定したらWM_COMMANDがくるよ。
0546デフォルトの名無しさん
2008/10/11(土) 14:58:41ああそうなんですか。すみません、単純なことに気づいていなくて。
ありがとうございました。
0547デフォルトの名無しさん
2008/10/11(土) 15:11:36ウィンドウハンドルを元に、ウィンドウの描画領域の
(タイトルバーとかフチを除いた)サイズを求めたいと思っています。
だいたい AdjustWindowRect 関数の逆みたいな感じになると思うのですが、
こういうWin32関数はありますでしょうか?
0548デフォルトの名無しさん
2008/10/11(土) 15:16:080549デフォルトの名無しさん
2008/10/11(土) 15:22:260550デフォルトの名無しさん
2008/10/11(土) 15:27:110551デフォルトの名無しさん
2008/10/11(土) 17:57:22wParamはUINT型なのに2つも引数が入ってるのかな?配列じゃないのに。
0552デフォルトの名無しさん
2008/10/11(土) 18:00:31上位ワードと下位ワードで意味の異なる値が入ってる
0553デフォルトの名無しさん
2008/10/11(土) 18:03:46それをWPARAMとLPARAMの2つに押し込めなきゃならんので、あまり美しくはないけれど、やむをえない
0554デフォルトの名無しさん
2008/10/11(土) 18:05:00の半分の数の大体の21000000000までは下位ワードでそれから4294967295までが上位ワードってことなのか
4バイトを半分に分けて最初の2バイトを下位ワードにして、あとの2バイトを上位ワードにするとか
どっちなんだろうね。
0555デフォルトの名無しさん
2008/10/11(土) 18:08:130557デフォルトの名無しさん
2008/10/11(土) 20:52:10※ すべて同じ人です
0558デフォルトの名無しさん
2008/10/11(土) 21:39:26ま、理解出来たみたいなんで別にいいけど。
ガンバレ〜
0559デフォルトの名無しさん
2008/10/11(土) 21:40:250560デフォルトの名無しさん
2008/10/11(土) 22:26:51CloseHandleする前にCancelIoするとフリーズするんだけど、
いきなりCloseHandleしていいのだろうか。
0561560
2008/10/11(土) 22:32:39転送エラー⇒MessageBoxでエラー表示⇒CancelIO⇒CloseHandle
の順だとフリーズするのに、
転送エラー⇒CancelIO⇒MessageBoxでエラー表示⇒CancelIO⇒CloseHandle
だとフリーズせずにクローズできるようだ
0562デフォルトの名無しさん
2008/10/11(土) 22:35:000563デフォルトの名無しさん
2008/10/11(土) 22:48:190564デフォルトの名無しさん
2008/10/11(土) 23:23:35CancelIO呼ぶまでもなくキャンセルされると思うのは素人考え?
CancelIOと言えば、下のページの内容が参考に……はならないかなあ。
http://msdn.microsoft.com/ja-jp/library/aa480216.aspx
0565463
2008/10/11(土) 23:37:150566デフォルトの名無しさん
2008/10/11(土) 23:43:040567デフォルトの名無しさん
2008/10/11(土) 23:45:56SetClassLongのGCL_CBCLSEXTRA参考
0568565
2008/10/11(土) 23:54:16ありがとうございます。Classの略なんですね。
>>567さんの教えてくれた、SetClassLongもこれからググってみます。
どうもありがとう。WindowsAPIは省略が多くて困る(><)
0569デフォルトの名無しさん
2008/10/12(日) 00:49:16ありがとう。switch (((NMHDR *)lp)->code)の前でwParam調べて分けてなくて
WM_NOTIFYにきたの全部処理してたからだった
0570デフォルトの名無しさん
2008/10/12(日) 03:10:01WM_NOTIFYのlParamに渡す構造体は必ずNMHDRを継承しているから
wParamなんて見なくても((NMHDR *)lp)->codeで落ちるはず無いと思うが・・・
0571デフォルトの名無しさん
2008/10/12(日) 03:33:360572560
2008/10/12(日) 08:12:40デバイスを閉じる自作関数の中でCancelIo→CloseHandleという動作をしているので後の方のCancelIoはは外せない。
>>564
明確な資料がないから念のためCancelIoするようにしてるんだが…
あと、後出しになって申し訳ないんだけど非同期重複IOを使ったときはエラー後すぐにCancelIoしないとフリーズするけど、非同期かつ単発のIOならMassageBox後のCancelIoでフリーズしなかった。
0573デフォルトの名無しさん
2008/10/12(日) 11:39:41GetOverlappedResult等でCancelIOの処理が終わった事を確認した後で
CloseHandleを呼び出す、とか?
0574デフォルトの名無しさん
2008/10/12(日) 12:44:360575560
2008/10/12(日) 20:19:59「デバイスの取り外し」アイコンが出るのはマスストレージデバイスくらいじゃね?
俺の中では、転送中だったIOは自動的にキャンセルされて、転送開始待ちのIOの分は転送開始待ちのままだから自分でキャンセルしないといけないんじゃないかと思ってる。
でもそのキャンセルがMessageBox後だとうまくいかないのはよくわからない。
転送失敗したら遅延無くCancelIOしないといけないという条件が書いてあるわけでもないし。
そもそもCancelIOって非同期なのかな?フリーズする時はCancelIOから制御が戻って来ないんだが。
0576デフォルトの名無しさん
2008/10/12(日) 20:29:370577デフォルトの名無しさん
2008/10/12(日) 23:15:37一体何のUSB機器でCancelIOを使ってるの?
0578デフォルトの名無しさん
2008/10/13(月) 01:37:07win32→win32プロジェクト→Windowsアプリケーション+空のプロジェクト
で猫でもわかるというサイトで紹介されていた
Windowを表示させるだけのプログラムが
ttp://homepage2.nifty.com/c_lang/sdk/sdk_00.htm
コンパイルできません。
'HGDIOBJ' から 'HBRUSH' に変換できません。
'char [25]' から 'LPCWSTR' に変換できません。
CreateWindowExW' : 2 番目の引数を 'char [25]' から 'LPCWSTR' に変換できません。
などとエラーが出ます。
0579デフォルトの名無しさん
2008/10/13(月) 01:46:28上のやつはHBRUSHにキャストしていい。
下のほうは、
メニューの表示 -> プロパティページ -> 全般 の "文字セット"の項目で
Unicode 文字セットを使用する から、マルチ バイト文字セットを使用する に変更。
多分これが一番楽。
0580578
2008/10/13(月) 01:57:340581デフォルトの名無しさん
2008/10/13(月) 02:08:080582デフォルトの名無しさん
2008/10/13(月) 02:27:23いい加減あのサイト閉鎖しないかな。
初心者の道を誤らせるだけだ。
この2008年にマルチバイトとかアホかと。
0583デフォルトの名無しさん
2008/10/13(月) 02:45:24かなり参考になるし
書いてるコードはほんとどうしようもないほど糞だけど
0584デフォルトの名無しさん
2008/10/13(月) 03:21:36サイトの方はわかりづらいから毎回ググって他のサイト見た方が分かりやすい
0585デフォルトの名無しさん
2008/10/13(月) 10:31:160586デフォルトの名無しさん
2008/10/13(月) 10:41:27"文字列”をL"文字列"にすべき
0587デフォルトの名無しさん
2008/10/13(月) 13:32:23PeekNamedPipeとReadFileで出力を取得すると
普通にDOSで実行した場合と比べて何故か改行が一行に一つ余計に取得してしまいます。
こういう現象に遭遇して解決された方がいらっしゃれば解決方法を教えていただけないでしょうか?
単純に改行を取り除くだけでいいのかどうかも不安で……
↓DOSで実行した場合の出力がこれの場合
AAA
BBB
CCC
↓こうなります
AAA
BBB
CCC
0588デフォルトの名無しさん
2008/10/13(月) 13:38:59よくわからんけど
・コンソールアプリケーションのソースコードでは\n
・出力時に\nが\r\nに変換されて、それをパイプ経由で取得
・取得した\r\nをコンソール出力したら再度変換が発生して\r\r\nになった
とかじゃないの?
あとWindows用語ではDOS窓とコマンドプロンプトは別物なので
「DOSで実行した」という表現には気をつけた方がいい。
0589デフォルトの名無しさん
2008/10/13(月) 13:55:01だとそうはならん。
ほげ\r\nはげ\r\n
を
ほげ\r
\nはげ\r
\n
に区切って
ほげ
\nはげ
\n
と行出力してるんじゃねーの?
0590デフォルトの名無しさん
2008/10/13(月) 14:00:010591デフォルトの名無しさん
2008/10/13(月) 14:00:31\r\r\nでも混乱するケースがあり得るかも
0592デフォルトの名無しさん
2008/10/13(月) 14:19:520593デフォルトの名無しさん
2008/10/13(月) 14:32:23おっしゃるとおり出力時に\nが\r\nに変換されているのだと思います。
その為\r\nの場合も\nだけに反応して\r\r\nになるようです。
プロンプトで再度表示する分には見た目上改行は増えないのですが、
MessageBoxで表示すると行が開きます。
必ず\nが\r\nに変換されるなら処理前に\r\nを\nに置換するだけでいい気がしてきました。
ありがとうございます。
0594デフォルトの名無しさん
2008/10/13(月) 14:51:42>必ず\nが\r\nに変換されるなら処理前に\r\nを\nに置換するだけでいい気がしてきました。
思いつきで対処するのもいいけどそのコードを引き継ぐ人が困るから正攻法も調べてね。
古典的で有名な話だし。
「テキストモード バイナリモード」でぐぐる。
0595デフォルトの名無しさん
2008/10/13(月) 15:08:35CreateProcessでバイナリモードが指定できるという意味でしょうか?
調べてみます……
0596デフォルトの名無しさん
2008/10/13(月) 16:07:550597デフォルトの名無しさん
2008/10/13(月) 16:31:320598デフォルトの名無しさん
2008/10/13(月) 16:33:230599デフォルトの名無しさん
2008/10/13(月) 17:54:58一からGUI付きのアプリも書けなくは無いけど、いい加減飽きた。
0600デフォルトの名無しさん
2008/10/13(月) 18:08:33直書きする機会はとんと無くなったな。
0601デフォルトの名無しさん
2008/10/13(月) 18:18:16ハードウェア アクセラレータのレベルも
0602デフォルトの名無しさん
2008/10/13(月) 18:18:460603デフォルトの名無しさん
2008/10/13(月) 18:19:18また、変換ライブラリはどこで入手できますか?
0604デフォルトの名無しさん
2008/10/13(月) 18:23:01アイテム毎に背景色を変えるにはどうすればいいですか?
TVM_SETBKCOLORだと丸ごと変わってマズーなんですが。
0605デフォルトの名無しさん
2008/10/13(月) 18:25:46ログオフ&ログオン
0606デフォルトの名無しさん
2008/10/13(月) 18:42:29解凍しないといけないという意味で、ある意味BMPへの変換が必要(構造的にはDIB≒BMPだし)。
何でするかは好きにしてくれ。
GDI+、IE、Susieプラグイン、自前処理、etc……。
0607デフォルトの名無しさん
2008/10/13(月) 18:47:54早速ありがとう。
その辺り調べてみます。
0608デフォルトの名無しさん
2008/10/13(月) 19:25:27カスタムドローで少し手を加えればいい。
CDDS_PREPAINTでCDRF_NOTIFYITEMDRAW返して、
CDDS_ITEMPREPAINTでNMTVCUSTOMDRAW.clrTextBkに背景色を設定して、
CDRF_DODEFAULTを返せば完了。
選択状態とかは考慮しないといけないが、そう難しくは無い。
0609デフォルトの名無しさん
2008/10/13(月) 20:52:50情報ありがとです。
WM_NOTIFY捕まえてCDDS_PREPAINTとCDDS_ITEMPREPAINT捕まえるまでは行ったんですが
CDRF_NOTIFYITEMDRAWとCDRF_DODEFAULTを返すってのが良く分かりません。
返す相手はドコですか?
後だしで申し訳ないんですが、HSPからAPI弄ってるんでクラスが使えないんです。
HSPのリストビューのサンプルを見つけたんですが
そのまま移植しても反応ないんです。
0610デフォルトの名無しさん
2008/10/13(月) 21:00:57return CDRF_DODEFAULT;
するだけでそ
0611デフォルトの名無しさん
2008/10/13(月) 21:08:31出来ました。
ありがとうございます。
関係ないですが、この場合のreturn先はドコなんでしょう?
0612デフォルトの名無しさん
2008/10/13(月) 21:14:20ウィンドウを最前面に表示して、かつ、
マウスなどの入力を無視して、
下のウィンドウを操作できるようにしたいのですが(システム情報などを表示する類)、
そのようなAPIはあるのでしょうか?
検索したら、Ghost-It ttp://www.google.co.jp/search?&q=Ghost-It
というツールソフトがあったので、何か方法があると思うのですがwかりませんでした。
よろしくおねがいしまう。
0613610
2008/10/13(月) 21:15:38WM_NOTIFY投げてきてるの誰よ
コントロールに決まってるだろ?
0614デフォルトの名無しさん
2008/10/13(月) 21:18:11おぉ!なるほど。言われてみればその通りっすね。
スッキリしました。ありがとう。
0615デフォルトの名無しさん
2008/10/13(月) 21:18:24最前面属性を持たせて半透明にしてるだけ
そのまんまだよ
試しに最前面に出てくるようなアプリを起動してフォーカス外してみ
その状態で最前面に出てるウィンドウが半透明になれば目的は達成されると思わないか?
0616デフォルトの名無しさん
2008/10/13(月) 21:18:43メッセージでスルーできた希ガス
0617デフォルトの名無しさん
2008/10/13(月) 21:21:08それだとマウスでクリックしたらフォーカス奪っちまうだろ?
入力も握りつぶさないと駄目だ罠。
0618612
2008/10/13(月) 21:31:55最前面属性は、 SetWindowPos HWND_TOPMOST でOKなのですが、
半透明(<100%)にしても入力を受け付けてしまいます(完全透過(透過率100%)だと入力を透過するけど、何もみえない)
LayeredWindow でも同じく、透過率100%以外は、反応してしまいます。
>>617
Hook で せき止めることはできても、下のWindowを操作できるようにする方法がわかりませんでした
>>616
>>メッセージでスルー
これかな?
参考ページなどがあれば、教えてください。
0619デフォルトの名無しさん
2008/10/13(月) 21:45:580620612
2008/10/13(月) 21:57:08WS_EX_LAYERED or WS_EX_TRANSPARENT で、できました!
SetWindowLong(FormMain.Handle, GWL_EXSTYLE, GetWindowLong(FormMain.Handle, GWL_EXSTYLE) or WS_EX_LAYERED or WS_EX_TRANSPARENT);
ttp://web.archive.org/web/20061222092243rn_1/www.microsoft.com/japan/msdn/windows/windows2000/layerwin.aspx
ありがとうございました。
0621デフォルトの名無しさん
2008/10/13(月) 23:14:50ttp://www.microsoft.com/japan/msdn/windows/windows2000/layerwin.aspx
0622デフォルトの名無しさん
2008/10/14(火) 00:09:33http://www.amazon.co.jp/dp/4891005920/
0623デフォルトの名無しさん
2008/10/14(火) 00:58:25Windows Internals 5th よりも先に発売になってしまったな
0624デフォルトの名無しさん
2008/10/14(火) 01:09:020625デフォルトの名無しさん
2008/10/14(火) 01:14:50まあ、売り切れても定期的に増刷かかるとは思うが
0626デフォルトの名無しさん
2008/10/14(火) 01:27:130627デフォルトの名無しさん
2008/10/14(火) 12:00:49まずはジュンク堂で5時間椅子に座って読んでみよう
0628デフォルトの名無しさん
2008/10/14(火) 14:32:50xpとvista対応の第5版の存在は大きそうだ。
テンプレのリンクも第5版に変えておく必要があるな。
0629デフォルトの名無しさん
2008/10/14(火) 16:03:433版上下と4版上もってるけどそろそろ処分しとくべきかね
0630デフォルトの名無しさん
2008/10/14(火) 16:11:40インサイドWindowsと勘違いしてないか?w
0631デフォルトの名無しさん
2008/10/14(火) 16:15:070632デフォルトの名無しさん
2008/10/14(火) 16:17:49それを右クリックしてメニューを表示したら
タスクトレイ自身のメニューも出るのはどうにかならないの?
0633デフォルトの名無しさん
2008/10/14(火) 16:19:29他のプログラムはうまくやってるんじゃない?
SetForegroundWindow呼べば出なくなるかもよ。
0634デフォルトの名無しさん
2008/10/14(火) 16:48:280635デフォルトの名無しさん
2008/10/14(火) 17:52:22NOTIFY_TRAYICONに対して
WM_RBUTTONDOWNじゃなくてWM_RBUTTONUPに反応するようにコードを書けばよい
古いプログラムはDOWNで処理してるものが多く両方のメニューが表示される理由はまずコレ
実際タスクトレイを右クリックしてみればわかるけど
押した瞬間にメニューが出るのではなく離した瞬間にメニューが出る
だからDOWNに反応するコードを書くとそのあとUPが流れてプログラム上で処理されず
マウス入力がタスクトレイへ流れてしまい
DOWN→プログラムのメニュー、UP→タスクトレイのメニューと両方が表示されてしまう
TrackPopupMenuの第一引数にTPM_RIGHTBUTTONが必須なのと直後のお約束PostMessage(WM_NULL);もお忘れなく
0636デフォルトの名無しさん
2008/10/14(火) 18:29:480637デフォルトの名無しさん
2008/10/14(火) 20:34:080638デフォルトの名無しさん
2008/10/14(火) 20:40:20MFCを用いずにリストコントロールを作成しています。
現在の階層のフォルダとかファイルをリストアップしてるのですが、
どのようにすればアイコンが表示できるようになりますか?
SHGetFileInfoでアイコン情報を取得したりはしてるのですが、
そこで渡すパスも実際のファイルかディレクトリパスなのか分からず。
ImageListをattachするタイミングが悪いのか、
CreateExの段階のフラグが間違っているのか、
一向に表示される気配がありません。
多くのサイトを調べたのですが、上手くいかなかったもので
質問させていただきました。
よろしくお願いします。
0639デフォルトの名無しさん
2008/10/14(火) 20:52:220640デフォルトの名無しさん
2008/10/14(火) 22:32:16HWND top_hWnd
top_hWnd = GetForegroundWindow();
ShowWindow(top_hWnd, SW_HIDE);
このとき、ウィンドウはどんな種類のものでも隠れるのですが、タスクバーには残るものと残らないものがあります。
例) FireFox はタスクバーの表示も消えるが、Jane Doe Style はタスクバーだけ残ってしまう
どうしてこのような違いが出るのでしょうか?
やりたいことはどんな種類のウィンドウでも、ウィンドウを隠すと同時にタスクバーからも消したいのですが、どうすればできるのでしょうか?
0641デフォルトの名無しさん
2008/10/14(火) 22:48:350642デフォルトの名無しさん
2008/10/14(火) 23:03:46ttp://www.asahi-net.or.jp/~HA3T-NKMR/tips003.htm
0643デフォルトの名無しさん
2008/10/14(火) 23:27:50ウィンドウのスタイルが違うとタスクバーから消えないことがあるのかな?
もしかすると、見えていない親(または子?)ウィンドウがいるかもしれないのかな?
ヒントをいただいたので、明日からまたしばらく楽しく試行錯誤ができそうです。
ありがとうございました。
0644デフォルトの名無しさん
2008/10/14(火) 23:30:480645デフォルトの名無しさん
2008/10/14(火) 23:32:03文字列へのポインタの中に何が書いてあるか分かりますか?
0646デフォルトの名無しさん
2008/10/14(火) 23:32:570647デフォルトの名無しさん
2008/10/14(火) 23:33:41wParam? lParam じゃなくて?
WM_COPYDATA とかなら、普通にとれるでしょ。
0648デフォルトの名無しさん
2008/10/14(火) 23:41:06WM_COMMANDで捕らえたメッセージがある場合はTRUEを返します。それ以外はFALSE
を返すみたいなんですが、普通のWindowのプロシージャみたいにDefWindowProcで処理しなくていいみたいなんですが、
これはなぜなんですか?DialogBoxの場合、自分以外のメッセージは自動的にDefWindowProcに流れるようになっているんですか?そのコードを書かなくても。
もう一点質問があります。これはCの文法に関することなんですが、Cのスレが1000まで行ってしまって新スレがたっていないので・・
int WINAPI WinMain(HINSTANCE hinstCurrent, HINSTANCE, LPSTR, int)
とWinMainが僕の本に書かれています。第2,3,4引数が型しかかかれていなく
変数名が書かれていないんですが、関数内で使用しないときはこの様な書き方もCの文法的にOKなんですか?
コンパイル・実行はうまくいったので、OKだということだとおもうんですが。
よろしくお願いします。
0649デフォルトの名無しさん
2008/10/14(火) 23:42:56ダイアログプロシージャは、ウィンドウプロシージャではないから
ダイアログボックスのウィンドウプロシージャは別にあって、そいつがちゃんと処理してる
Cの文法的には良くないが、C++の文法的にはok
たぶんC++モードでコンパイルされている
0650デフォルトの名無しさん
2008/10/14(火) 23:44:20ヘルプみれ
|| ダイアログボックスプロシージャはウィンドウプロシージャに似ていますが、
|| ダイアログボックスプロシージャは不要なメッセージを処理させるために
|| DefWindowProc 関数を呼び出してはなりません。
後者は OK
0651648
2008/10/14(火) 23:58:28どうもありがとうございます。ダイアログプロシージャはウィンドウプロシージャとは
異なるものなんですね。で、別のウィンドウプロシージャが処理してくれていると。よくわかりました。
ありがとうございました。あと、C++の文法的にOKなんですね。これもはっきり良く分かりました。
本当にどうもありがとうございました。胸のつかえがとれました。
>>650
ヘルプにあるんですね。。すみませんでした。見てませんでした。
MSDNにちょっと抵抗もある段階というか難しく感じてます。
引用していただきありがとうございました。よく分かりました。
どうも本当にありがとうございました。
0652デフォルトの名無しさん
2008/10/15(水) 01:02:56ここのサンプルで
lResult = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0L,
(LPARAM)(LPCTSTR)"windows", SMTO_NORMAL, 1000, NULL);
こんな事してるけど、(LPARAM)(LPCTSTR)"windows"
これって他のプロセス空間から読めるの?
0653デフォルトの名無しさん
2008/10/15(水) 01:09:330654デフォルトの名無しさん
2008/10/15(水) 01:29:32知らないならレスするなクズ
0655デフォルトの名無しさん
2008/10/15(水) 01:41:24>The system only does marshalling for system messages (those in the range 0 to (WM_USER-1)).
>To send other messages (those >= WM_USER) to another process, you must do custom marshalling.
WM_SETTINGCHANGE は WM_USER-1 以下だから、いけるんじゃね?
0656デフォルトの名無しさん
2008/10/15(水) 01:46:24一部のシステムメッセージ(>>655)は、NULL終端の文字列を別プロセスのウインドウに送ることがあることをOSが知っているので、
OSが面倒を見てくれる。
そのため、別プロセスでも問題ない。
0657デフォルトの名無しさん
2008/10/15(水) 02:09:22つまり、MFCとかそういうのがある中、OSの原理を理解するにはいいかも
知れないけど、アプリを作るという目的において、Win32はどうなのかと。
といいつつ、猫でもわかるWindowsプログラミング読み始めているけど…
0658デフォルトの名無しさん
2008/10/15(水) 02:28:17人それぞれ
0659デフォルトの名無しさん
2008/10/15(水) 02:29:06C言語の標準ライブラリの多くはposix由来のものなわけだが。
むしろWin32だってライブラリのひとつじゃないかと見ることもできるわけだが。
あと、猫本は今すぐ窓から投げ捨てろ。
0660デフォルトの名無しさん
2008/10/15(水) 02:38:41ほう、そうなんですか、初耳です
0661デフォルトの名無しさん
2008/10/15(水) 02:42:02MFCやWTLを使う場合でも、当たり前のように必要な知識だし。
C#やVB.NETしか使う気がないならスルーでもいいが。
0662657
2008/10/15(水) 03:10:53しかし猫はだめですか。じゃあいきなりAdvanced Windowsみたいなのを
読み始めても大丈夫なのかな。
0663デフォルトの名無しさん
2008/10/15(水) 06:03:24必要のないくらいローレベルな内容の本だぞw
OSの内部動作がどうなっているのかを解説しているような本。
学習目的なら「プログラミングWindows」あたりだが、これも内容が
もう古いかねぇ。
0664デフォルトの名無しさん
2008/10/15(水) 06:51:52あの程度をローレベルとは言わん。Windows Internalsに対して使う言葉だ。
まあ、スレッドも同期オブジェクトもヒープもウインドウメッセージもetcetcも使わないというのなら読まなくてもいいだろうが。
0665デフォルトの名無しさん
2008/10/15(水) 10:28:380666デフォルトの名無しさん
2008/10/15(水) 11:56:13最適な本が皆無ということになるのか。
これでいいのかMicrosoft!!
0667デフォルトの名無しさん
2008/10/15(水) 11:58:40>There are no plans at this time for a 6th edition of Programming Windows.
0668デフォルトの名無しさん
2008/10/15(水) 12:29:430669デフォルトの名無しさん
2008/10/15(水) 12:34:120670デフォルトの名無しさん
2008/10/15(水) 12:47:070671デフォルトの名無しさん
2008/10/15(水) 12:51:17たぶん
個人的には第5版でいい
0672デフォルトの名無しさん
2008/10/15(水) 21:34:00いいですか?
Hscroll0=GetDlgItem(hDlg,IDC_SCROLLBAR0); の様にID?を取得
するところはわかるんですが、
case SB_LINELEFT: がきたときにどう処理すればいいんでしょうか?
0673デフォルトの名無しさん
2008/10/15(水) 21:42:08lParam
0674デフォルトの名無しさん
2008/10/15(水) 21:50:22僕もずっとJavaやってて、今VCやってるけど、JavaよりWinAPIのほうが面白いよ。
やってよかったと思ってる。OSとかの仕組みも学べるし・・なんていうか根源的な面白さはあるよね。
もっと高次元言語ならC#できるし。
やっぱ個人的にはSunよりもMicroSoftのほうが言語とかの設計がしっかりしてるよ。
WinAPI、MFC最高だよ。就職とかの面では価値が無いかもしれないけど
プログラマとしては勉強する価値有だよ。
ちなみに7年前に買って冬眠してたVC++6でやってるよ。ブックオフとかオークションで105円で
本買えるし。VC6ならStandard版が安くオークションで変えるんじゃないかな?
0675674
2008/10/15(水) 21:52:54はがき作成ソフトはだいぶ振興してるよ。OSはとりあえず、OS自作入門やWindowsのOSの設計の本を読んで勉強したいとおもってる。
コンパイラやエディタもつくりたい。あと80歳まで50年あるから・・
0676デフォルトの名無しさん
2008/10/15(水) 22:03:340677デフォルトの名無しさん
2008/10/15(水) 22:05:100678デフォルトの名無しさん
2008/10/15(水) 22:13:28ありがとうございました。
無事解決できました。
0679デフォルトの名無しさん
2008/10/15(水) 23:01:43>>676
俺も向上心を忘れないようにしたい。
0680デフォルトの名無しさん
2008/10/16(木) 00:11:54コンソールで使っていたプログラムをAPIに流用させたいと考えています。(printf()とかで表示していた)
WINAPIでウィンドウを作ったりするソースを書いて今までのint main()から始まるプログラムを動かせますか?
いままでprintfでコンソールで出力していた結果をGUIでだしたり、ファイルの読み込みをクリックで行えたりするようにしたいだけなんですが・・・
うまく説明できなくてすいません
0681デフォルトの名無しさん
2008/10/16(木) 00:15:06GUIを表示するのは単純なprintfに比べて大幅な変更が必要かと・・・
0682デフォルトの名無しさん
2008/10/16(木) 00:16:420683デフォルトの名無しさん
2008/10/16(木) 00:20:52mainの方でprintfしてる文字列をbuffにいれて、WinMainの方に渡せばいいんですかね?
0684デフォルトの名無しさん
2008/10/16(木) 00:24:10普通に間違えましたw
0685デフォルトの名無しさん
2008/10/16(木) 01:34:54>>3のリンクで勉強するヨロシ
0686デフォルトの名無しさん
2008/10/16(木) 06:31:04ソフト本体のウィンドウとは別に、プラグイン内でウィンドウを生成したら、
プラグインウィンドウのメッセージループで止まり、本体ウィンドウが出ませんでした(当然ですが)。
この解決策としては、
新しいスレッドを作ってその中でウィンドウ生成した後、本体からプラグインに渡されたデータをウィンドウ用スレッドに渡す
という方向性でいいのでしょうか?
つっこみ所や一般的な解決策などありましたら、よろしくお願いします。
0687デフォルトの名無しさん
2008/10/16(木) 06:35:170688デフォルトの名無しさん
2008/10/16(木) 07:19:15なんか元気がでてきたよ。ありがとう。
0689デフォルトの名無しさん
2008/10/16(木) 10:43:31つらいよな?手書きでリソース書いてる人いる?
0690デフォルトの名無しさん
2008/10/16(木) 10:59:24プラグイン内で独自のメッセージループを動かす必要はないかと
本体側のメッセージループでプラグイン内のウィンドウも動くと思う
上手くいかなかったら別スレッドで回すしかないけど
0691デフォルトの名無しさん
2008/10/16(木) 11:12:36フリーであるじゃん
0692デフォルトの名無しさん
2008/10/16(木) 11:34:070693デフォルトの名無しさん
2008/10/16(木) 11:46:42XNResourceEditor
0694デフォルトの名無しさん
2008/10/16(木) 12:06:430695デフォルトの名無しさん
2008/10/16(木) 12:09:510696デフォルトの名無しさん
2008/10/16(木) 15:37:170697デフォルトの名無しさん
2008/10/16(木) 17:46:51ResEDitって最終的には何吐き出すの?
リソーススクリプト(〜.rc)? それともリソースそのもの?
あ、自分でやってみればいいんだね^^ さんきゅー
0698デフォルトの名無しさん
2008/10/16(木) 18:11:27Cソースかリソーススクリプト
0700デフォルトの名無しさん
2008/10/16(木) 18:33:29書かれたソースが出てきた。
0701デフォルトの名無しさん
2008/10/16(木) 18:41:49http://www.forest.impress.co.jp/article/2008/03/12/resedit.html
>なお本ソフトで“Win32API”のシンボリック定数を含むRCファイルを
>開く際には、“Win32API”のC言語ヘッダーファイルが必要。
>このヘッダーファイルは一部のWindows向けC/C++コンパイラーに
>付属しているほか、「Windows Server 2003 SP1 Platform SDK」
>「Windows SDK for Windows Vista」などのSDKをインストールする
>ことで入手できる。
これによると、すんなりrcファイル使えるわけじゃないのかな。
0702デフォルトの名無しさん
2008/10/16(木) 18:46:06昔からWindowsのリソースエディタはそんなもんだったよ。
rcに書く定数がwindows.hに書いてあったりするからね。
0703ののし
2008/10/16(木) 21:25:47このポインタについて、少し不安なのですが、これって良い使い方ですか?
WIN APIですが、VC++(NO MFC) ↓
----一部関数----------------
void bit2(HWND hWnd)////裏画面から表画面
{
HDC hdc;HDC *hd;////ポインタ
hdc=GetDC(hWnd);
hd=&hdc;
BitBlt(*hd,0,0,599,479,bhDC,0,0,SRCCOPY);
ReleaseDC(hWnd,hdc);
}
別スレで特に叩かれていなかったのでこっちきました。
ポインタ使う理由は、少しでも早くなるのかな?と、
MFCや入門本だとポインタ使うよね。
0704デフォルトの名無しさん
2008/10/16(木) 21:31:19だってBitBlt(hdc,0,0,599,479,bhDC,0,0,SRCCOPY);と書けば変数hdは要らないじゃないか。
0705デフォルトの名無しさん
2008/10/16(木) 21:34:11VCのデバッガに出力されるやつで
printfみたいにフォーマットされる代物は無いの?
0706デフォルトの名無しさん
2008/10/16(木) 21:39:030707デフォルトの名無しさん
2008/10/16(木) 21:42:43こんな感じで自分で作ったらどうよ
void OutputDebugStringF(const char *format, ...) {
char buffer[1000];
va_list ap;
va_start(ap, format);
vsprintf(buffer, format, ap);
va_end(ap);
OutputDebugStringA(buffer);
}
0708デフォルトの名無しさん
2008/10/16(木) 22:08:170709デフォルトの名無しさん
2008/10/16(木) 22:24:290710デフォルトの名無しさん
2008/10/16(木) 22:35:03Run-Time Check Failure #3 - The variable 'm_hHeap' is being used without being initialized.
とエラーが出ます。どうやって初期化すればいいでしょうか
HANDLE m_hHeap;
LPBYTE m_pFormat;
m_pFormat = (LPBYTE)HeapAlloc(m_hHeap,HEAP_ZERO_MEMORY, 16);
0711デフォルトの名無しさん
2008/10/16(木) 22:38:14>hHeap [in]
>A handle to the heap from which the memory will be allocated.
>This handle is returned by the HeapCreate or GetProcessHeap function.
0712デフォルトの名無しさん
2008/10/16(木) 22:55:530713デフォルトの名無しさん
2008/10/16(木) 22:59:56全然解釈が違いますか?
0714デフォルトの名無しさん
2008/10/16(木) 23:18:50GetDriveType() だと USB経由で接続したような取り外し可能なHDDも Fixed として返ってきてしまいます。
0715デフォルトの名無しさん
2008/10/16(木) 23:20:530716デフォルトの名無しさん
2008/10/16(木) 23:23:20Windows自体がプロセスごとに1個CreateHeapしてある。
GetProcessHeap()すると、そのヒープハンドルをユーザが入手できるという考え方でどうだろう。
0717デフォルトの名無しさん
2008/10/16(木) 23:38:20プロセス内で使う変数はこのプロセスで最初に作られた拡張可能ヒープ領域を使っていて、
変数を増やし続けると肥大化してしまうので、大量のデータを格納する場合は、HeapFreeできないプロセス用ヒープではなくて、HeapCreateを使った方が
メモリ管理がうまくいくということですね
0718デフォルトの名無しさん
2008/10/16(木) 23:41:28プロセスヒープでもHeapFreeはできるし、malloc/freeみたいに必須。
0719デフォルトの名無しさん
2008/10/16(木) 23:49:09どーも
0720デフォルトの名無しさん
2008/10/17(金) 01:16:38ありがとうございます。流れがわかってきました。メモリ関連徹底的に勉強してきます。
0721デフォルトの名無しさん
2008/10/17(金) 01:18:43たとえばIMAPフォルダを作るとして、接続は1つだけに制限したい、
でもフォルダ階層は深くなる場合なんですが。
http://www.codeproject.com/KB/shell/namespcextguide1.aspx
この記事を読むと、IPersistFolder::Initializeを実装すれば初期化ができる
というようなことが書かれているのですが、では、初期化時に接続したコネクションを、
不要になった(フォルダを閉じた)時に閉じるには、何を実装すればいいのでしょうか。
0722デフォルトの名無しさん
2008/10/17(金) 20:16:41非MFC環境で使用したいのですが、
解説のあるサイトをご存知の方はいらっしゃいませんか?
0723デフォルトの名無しさん
2008/10/17(金) 21:19:14一応昨日、急いで町の中心部の書店にいって買ってきたよ。
VisualStudio2008とWindowsVistaBuisinessだけど、使えるのかな(;´д`)
0724723
2008/10/17(金) 21:25:29http://www.charlespetzold.com/faq.html
>There are no plans at this time for a 6th edition of Programming Windows.
668 :デフォルトの名無しさん:2008/10/15(水) 12:29:43
あの範囲で改版すべき内容はないと思う
669 :デフォルトの名無しさん:2008/10/15(水) 12:34:12
じゃあペゾルド5版は十分現役でいけると?
670 :デフォルトの名無しさん:2008/10/15(水) 12:47:07
というかペゾルド5版(上)ってもう売ってないね。
俺が昨日買ってきたやつ、第4版って帯にでかでかと書いてあるよ。
0725デフォルトの名無しさん
2008/10/17(金) 22:04:19それなりの値段するから買おうかどうか迷ってるんだが…
0726デフォルトの名無しさん
2008/10/17(金) 22:20:020727デフォルトの名無しさん
2008/10/17(金) 22:58:33正直いらん
0728デフォルトの名無しさん
2008/10/17(金) 23:09:300729デフォルトの名無しさん
2008/10/18(土) 00:00:19CreateProcessAで起動する時とダブルクリックで起動する時って何か違いはありますか?
0730デフォルトの名無しさん
2008/10/18(土) 00:07:080731デフォルトの名無しさん
2008/10/18(土) 00:11:170732デフォルトの名無しさん
2008/10/18(土) 00:11:470733デフォルトの名無しさん
2008/10/18(土) 00:17:01何も関連付けされてないんです。
>>731
それはまぁ…
>>732
い〜
某ソフトを晒せって言われそうなんで、もう少し色々変えてみます。
ありがとうございました。
0734デフォルトの名無しさん
2008/10/18(土) 00:23:18>>731さんが正解でした。
スレ汚し、本当にすみませんでした。
0735デフォルトの名無しさん
2008/10/18(土) 07:07:220736デフォルトの名無しさん
2008/10/18(土) 11:06:180737デフォルトの名無しさん
2008/10/18(土) 13:22:01こんなOSができたら、Win32APIは不必要になるのか?
0738デフォルトの名無しさん
2008/10/18(土) 13:48:43過去の資産の絡みで移行できない人が多いから
互換モードを用意するに100ジンバブエドル
0739デフォルトの名無しさん
2008/10/18(土) 14:02:290740デフォルトの名無しさん
2008/10/18(土) 14:03:31Windows7なるものも決まったし。
0741デフォルトの名無しさん
2008/10/18(土) 16:07:030742デフォルトの名無しさん
2008/10/18(土) 16:11:05SetMenuItemInfo で、アクセラレータキーつきのキャプションを設定すればいいんでね?
0743デフォルトの名無しさん
2008/10/18(土) 17:41:14midori自体はそうかもね。
過去の資産関係は、VirtualPCで対応かな?
0744デフォルトの名無しさん
2008/10/18(土) 17:58:370745デフォルトの名無しさん
2008/10/18(土) 18:11:59あ。ごめん。ニーモニック文字と勘違いしてたみたい。
Keyboard Accelerators を見てみたんだけど、ウィンドウプロシージャ側の
処理も必要みたいなんで、すでに作られたメニューに対してやるのは無理っぽいね。
0746デフォルトの名無しさん
2008/10/18(土) 18:18:180747デフォルトの名無しさん
2008/10/18(土) 18:53:04いやいや今のDOS VMやWineみたいに直接動かせるようになると思うよ。
0748デフォルトの名無しさん
2008/10/18(土) 19:03:150749デフォルトの名無しさん
2008/10/18(土) 19:18:29で、結局VMwareやVirtualPC上のXP/Vistaで動かした方が軽いってオチ
0750デフォルトの名無しさん
2008/10/18(土) 21:35:500751デフォルトの名無しさん
2008/10/18(土) 21:39:010752デフォルトの名無しさん
2008/10/18(土) 22:06:15ActiveAccessibilityは?
どっかにAccExplorerのソース無いかな・・
0753デフォルトの名無しさん
2008/10/18(土) 23:11:290754デフォルトの名無しさん
2008/10/19(日) 18:16:230755デフォルトの名無しさん
2008/10/19(日) 18:27:090756デフォルトの名無しさん
2008/10/19(日) 18:28:030757デフォルトの名無しさん
2008/10/19(日) 18:35:52そういうようにWindowsが作られているから。
0758デフォルトの名無しさん
2008/10/19(日) 18:45:14事足りるなんてこと、可能なのか?
0759デフォルトの名無しさん
2008/10/19(日) 18:53:49でも、ReleaseDCをサボりたいためだけにCS_OWNDCはちょっと高価な気もするぞ。
0760デフォルトの名無しさん
2008/10/19(日) 18:59:40プリンタなんかだとそのアプリを終了するまで他のアプリが印刷できないと困るから、とかじゃないの?
0761デフォルトの名無しさん
2008/10/19(日) 20:23:02間違っています。
以上。
↓次の方どうぞ
0762デフォルトの名無しさん
2008/10/19(日) 20:31:140763デフォルトの名無しさん
2008/10/19(日) 21:09:190764デフォルトの名無しさん
2008/10/19(日) 21:27:12INTなどはintの別名として定義されていますが、BOOL≠boolなんで気になります。
0765デフォルトの名無しさん
2008/10/19(日) 21:29:05当時は bool がなかったから。
0766デフォルトの名無しさん
2008/10/19(日) 21:29:250767デフォルトの名無しさん
2008/10/19(日) 21:31:500768デフォルトの名無しさん
2008/10/19(日) 21:52:18stdbool.h を include すると bool も定義されるようになってる。
C++ では bool はプリミティブな型。
C と C++ で非互換なところのひとつなので覚えておくように。 テストに出るぞー。
0769デフォルトの名無しさん
2008/10/19(日) 21:57:320770デフォルトの名無しさん
2008/10/19(日) 22:10:42Cでboolって使いたいとも思わなくね?
0771デフォルトの名無しさん
2008/10/19(日) 22:37:180772デフォルトの名無しさん
2008/10/19(日) 22:43:140773デフォルトの名無しさん
2008/10/19(日) 22:48:450774デフォルトの名無しさん
2008/10/20(月) 00:30:140775デフォルトの名無しさん
2008/10/20(月) 02:31:120776デフォルトの名無しさん
2008/10/20(月) 02:54:15#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
char buf[256];
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int cmdShow){
int s, r;
s = waveOutGetNumDevs();/*再生デバイスの数*/
r = waveInGetNumDevs(); /*録音デバイスの数*/
sprintf(buf,"録音ポート=%d 再生ポート=%d",r,s);
MessageBox(NULL, buf, "サウンド機能", MB_OK);
return 0;
}
をコンパイルすると
Main.obj : error LNK2019: 未解決の外部シンボル __imp__waveInGetNumDevs@0 が関数 _WinMain@16 で参照されました。
1>Main.obj : error LNK2019: 未解決の外部シンボル __imp__waveOutGetNumDevs@0 が関数 _WinMain@16 で参照されました。
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。
1>C:\Documents and Settings\・・\My Documents\Visual Studio 2008\Projects\Win32\Debug\Win32.exe : fatal error LNK1120: 外部参照 3 が未解決です。
とエラーが出てコンパイルが通りません。
何か設定などを変えないとダメなのでしょうか?
0777デフォルトの名無しさん
2008/10/20(月) 03:06:41つーか、C/C++の基礎だ。
0778デフォルトの名無しさん
2008/10/20(月) 05:08:07知らないならレスしなくていい
0779デフォルトの名無しさん
2008/10/20(月) 05:15:450780デフォルトの名無しさん
2008/10/20(月) 06:49:16素直にDirectSoundを使っとけ。
あと、インポートライブラリの件はともかく、
何でコンソールアプリでWinMainやねん、と突っ込んでおく。
0781デフォルトの名無しさん
2008/10/20(月) 06:49:470782デフォルトの名無しさん
2008/10/20(月) 07:18:51stdio.hをincludeしたらコンソールアプリだと思ってる馬鹿ですか?
0783デフォルトの名無しさん
2008/10/20(月) 07:23:30>1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。
0784デフォルトの名無しさん
2008/10/20(月) 07:26:29デバッグビルドでCランタイムをリンクしなければコンソールアプリでなくても出る
0785デフォルトの名無しさん
2008/10/20(月) 07:26:57おいw
0786デフォルトの名無しさん
2008/10/20(月) 07:32:25と思ったらまた猫か
次はchar*からLPWSTRに変換できませんとか質問してきそうだなw
0787デフォルトの名無しさん
2008/10/20(月) 09:07:27あと、その変換は調べましたので大丈夫やです。
低レベルな質問で申し訳ありませんでした。
もう少し調べてみます
0788デフォルトの名無しさん
2008/10/20(月) 09:56:57おれ結構マジであれで勉強してるんだけど。。
0789デフォルトの名無しさん
2008/10/20(月) 09:58:12ttp://msdn.microsoft.com/ja-jp/library/cc428817.aspx
インポートライブラリ:winmm.lib を使用
winmm.libのリンク。この手のはソースに#pragma comment(lib, "winmm.lib")入れるのが楽。
0790デフォルトの名無しさん
2008/10/20(月) 10:01:210791デフォルトの名無しさん
2008/10/20(月) 10:08:41ちなみにあるウィンドウのキャプションとクラス名はわかっているので
そのウィンドウのハンドルはとれます。
0792デフォルトの名無しさん
2008/10/20(月) 10:12:43直接の子で無いと駄目だが
0793デフォルトの名無しさん
2008/10/20(月) 10:13:05まあID以外ならEnumChildWindowsで列挙して調べることになるかな。
0794デフォルトの名無しさん
2008/10/20(月) 11:32:00IEとか
0795デフォルトの名無しさん
2008/10/20(月) 11:32:56レスどうもです。
ボタンを特定する情報はボタンのキャプションになります。
EnumChildWindowsでハンドルをあれしてキャプションで比較すればおkでしょうか?
0796デフォルトの名無しさん
2008/10/20(月) 11:37:19794が言ってるようにハンドルがないのもあるから万能ではないけど
0797デフォルトの名無しさん
2008/10/20(月) 12:11:110798デフォルトの名無しさん
2008/10/20(月) 12:49:38WPFってなに? って訊かずにググってみました。
.NET Framework3.0っすね。ああ、また新しい概念がぁぁぁぁ!!
0799722
2008/10/20(月) 13:58:20VBやC#でのサンプルしかないのですが、
C++からは使えないのでしょうか?
また、VC++2003のリソースエディタ上の
ツール項目にPropertyGridを追加したのですが、
選択不可能になっており、配置することができません。
何か設定があるのでしょうか?
0800デフォルトの名無しさん
2008/10/20(月) 14:00:270801799
2008/10/20(月) 14:13:33すれ違いでしたか・・・すみません。
アドバイスありがとうございました。
0802791
2008/10/20(月) 14:22:56ありがとうございます。
ところでもう1つ質問なのですが
この列挙した子ウィンドウのハンドルから
これがボタンとかラベルとかを識別するAPIを教えてください><
0803デフォルトの名無しさん
2008/10/20(月) 14:27:030804791
2008/10/20(月) 14:27:35ところでこれの定数ってあるんですかね?
0805791
2008/10/20(月) 14:30:18GetClassNameでできました〜
ありがとうですー
0806デフォルトの名無しさん
2008/10/20(月) 15:46:570807デフォルトの名無しさん
2008/10/20(月) 15:51:10目的が違います。
そう言う目的には正直向いていません。
0808デフォルトの名無しさん
2008/10/20(月) 15:58:05Advanced WindowsはWin32APIを一通り使えるようになった人が読む本。
入門書ではない。
0809デフォルトの名無しさん
2008/10/20(月) 16:48:04目的が違いますし向いてないし入門書でもないです。
0810デフォルトの名無しさん
2008/10/20(月) 17:39:01>>807>>808で答え出てるのに何故わざわざ同じ事を言うの?
馬鹿?
0811デフォルトの名無しさん
2008/10/20(月) 17:44:51いちいち噛み付くなって
0812デフォルトの名無しさん
2008/10/20(月) 17:50:370813809
2008/10/20(月) 18:56:28いちいち噛み付かなくていいです。
0814デフォルトの名無しさん
2008/10/20(月) 20:40:14登大遊くんの7年前くらいの本はint Pascal WinMain表記だけど。
あの頃の本、中古でたくさんかって本棚に入れてある。
0815デフォルトの名無しさん
2008/10/20(月) 20:51:417年前だと別にWin32前提で良かったと思うけどねぇ
まあそれ以前に、今ならWinMainじゃなくて_tWinMainにすべきか
> WinMain に一致する日本語のページ 約 42,400 件
> _tWinMain に一致する日本語のページ 約 1,880 件
> wWinMain に一致する日本語のページ 約 952 件
……
0816デフォルトの名無しさん
2008/10/20(月) 21:00:25Unicodeのコマンドライン渡された所で、嬉しくもなんとも無い。
まあ__argcと__targvを無理やり引っ張り出すなら、多少利点はあるけど。
0817デフォルトの名無しさん
2008/10/20(月) 21:13:36WinMainは第2引数と第3引数が役に立たんのが気に食わん
#pragma comment(linker, "/entry:EntryPoint")
extern int Main(HINSTANCE, int, LPCTSTR const*, int);
void __cdecl EntryPoint()
{
STARTUPINFOA si = {0};
_startupinfo startinfo = {0};
int argc, ret;
TCHAR **argv, **envp;
GetStartupInfoA(&si);
#ifdef _UNICODE
__wgetmainargs(&argc, &argv, &envp, 0, &startinfo);
#else
__getmainargs(&argc, &argv, &envp, 0, &startinfo);
#endif
ret = Main(GetModuleHandleA(NULL), argc, argv,
si.dwFlags & STARTF_USESHOWWINDOW ? si.wShowWindow : SW_SHOWDEFAULT);
exit(ret);
}
0818デフォルトの名無しさん
2008/10/20(月) 21:43:04それやるくらいならmain系でいいじゃない。
インスタンスハンドルはGetModuleHandle、
nCmdShowはShowWindowの仕様に任せて手当てしないということで。
0819デフォルトの名無しさん
2008/10/20(月) 21:53:18_tWinMainとか_Tとか面倒すぎ。
0820デフォルトの名無しさん
2008/10/20(月) 22:11:110821デフォルトの名無しさん
2008/10/20(月) 22:13:510822デフォルトの名無しさん
2008/10/20(月) 22:18:150823デフォルトの名無しさん
2008/10/20(月) 22:22:27逆にwWinMainでW版オンリーで作ればいいよ。
0824デフォルトの名無しさん
2008/10/20(月) 22:22:570825デフォルトの名無しさん
2008/10/20(月) 22:26:490826デフォルトの名無しさん
2008/10/20(月) 22:30:400827デフォルトの名無しさん
2008/10/20(月) 22:41:040828デフォルトの名無しさん
2008/10/20(月) 22:54:03日本語使わなければおk
0829デフォルトの名無しさん
2008/10/20(月) 23:15:43Unicode対応、非対応とを、1つのソースコードで管理できるように
していますか?つまりTEXTやらTCHARをふんだんに使って。
何か面倒ですよね。
日本人向けソフトなら別にUnicode対応じゃなくてもいい気がす。
0830デフォルトの名無しさん
2008/10/20(月) 23:17:53日本人ならSJISしか使わんとでも思ってんの?
このインターネット時代に
0831デフォルトの名無しさん
2008/10/20(月) 23:18:37お前の小規模なオナニーコードにあわせてやる必要はない
後のことを考えれば面倒でもなんでもない
0832デフォルトの名無しさん
2008/10/20(月) 23:29:43言ってみたかっただけ
0833デフォルトの名無しさん
2008/10/20(月) 23:35:51いまどきわざわざWin9x対応する必要がなければUnicodeオンリーのほうが楽だろ
0834デフォルトの名無しさん
2008/10/20(月) 23:42:050835デフォルトの名無しさん
2008/10/21(火) 00:03:37Win32なんてUCS-2=Unicodeだった時代の物なんだから
本格的に対応するのは大変だしその労力に見合わない
0836デフォルトの名無しさん
2008/10/21(火) 00:03:450837デフォルトの名無しさん
2008/10/21(火) 00:07:18今時って・・・NT4ぐらいから使えただろ
0838デフォルトの名無しさん
2008/10/21(火) 00:17:180839デフォルトの名無しさん
2008/10/21(火) 00:52:400840デフォルトの名無しさん
2008/10/21(火) 01:00:52APIはW版決めうちでいいよ
テキスト処理でサロゲートだの正規化だのにマジメに対応するかどうかは
また別の問題
0841デフォルトの名無しさん
2008/10/21(火) 01:05:320842デフォルトの名無しさん
2008/10/21(火) 01:23:22> また別の問題
だったらANSIでいいだろ
無駄にUnicode化しても文字列でメモリ2倍食うだけだぞ?
0843デフォルトの名無しさん
2008/10/21(火) 01:27:230844デフォルトの名無しさん
2008/10/21(火) 01:28:570845デフォルトの名無しさん
2008/10/21(火) 01:31:350846デフォルトの名無しさん
2008/10/21(火) 01:40:300847デフォルトの名無しさん
2008/10/21(火) 01:42:54何だそれ……
2000年問題レベルの発想だな
メモリケチって仕様劣化か
CP932外の文字が入ってるとファイルすら開けない糞アプリの出来上がりね
0848デフォルトの名無しさん
2008/10/21(火) 02:06:52お前が韓国人か中国人かは知らんが、CP932外の文字なんて日本人ならそう使わない
0849デフォルトの名無しさん
2008/10/21(火) 02:16:51このネット時代に何言ってんだよ
それに、iTunesあたりでCDリップすると普通にUnicodeなファイル名が
使われるぞ
0850デフォルトの名無しさん
2008/10/21(火) 02:21:06韓国人「Unicodeに対応するニダ!」
ハングル文字は結構な領域占めてるからな・・・
0851デフォルトの名無しさん
2008/10/21(火) 02:22:27脳内が20年ぐらい前で止まってんじゃねえのか?
0852デフォルトの名無しさん
2008/10/21(火) 02:24:13なんだ、やっぱ韓国人だったのかw
図星突かれてそんなの持ち出さなくていいから。
0853デフォルトの名無しさん
2008/10/21(火) 02:24:560854デフォルトの名無しさん
2008/10/21(火) 02:27:15韓国から話題を逸らすためにわざわざググってきたんですね、分かります
0855デフォルトの名無しさん
2008/10/21(火) 02:28:12まあ頑張れ
0856デフォルトの名無しさん
2008/10/21(火) 02:31:43日本人ですから。
0857デフォルトの名無しさん
2008/10/21(火) 02:32:46記号もあるしな
0858デフォルトの名無しさん
2008/10/21(火) 02:43:01海の向こうじゃUnicodeどころかASCII以外の文字が混ざってるだけでバグるソフトがまだまだあるのにな
0859デフォルトの名無しさん
2008/10/21(火) 02:46:33まだいることに驚きだ
SJISの糞な仕様のおかげで散々痛い目見てきただろうに
0860デフォルトの名無しさん
2008/10/21(火) 02:48:460861デフォルトの名無しさん
2008/10/21(火) 02:49:53>>848>>850>>852>>854もう少し勉強して心を豊かにしようよ
0862デフォルトの名無しさん
2008/10/21(火) 02:52:010863デフォルトの名無しさん
2008/10/21(火) 02:57:49EUCもleadbyteとtailbyteの区別がつかないからダメ
0864デフォルトの名無しさん
2008/10/21(火) 03:03:270865デフォルトの名無しさん
2008/10/21(火) 03:13:24ハングル大移動みたいなのは勘弁な。
0866デフォルトの名無しさん
2008/10/21(火) 03:16:24問題はそのいきさつにある
奴らは割り当てられた分を超えて勝手にハングルを追加して
しかも委員会が後付でそれを承認しちまったのさ
そんなわけでUnicodeには法則発動
あぼーん
0867デフォルトの名無しさん
2008/10/21(火) 05:01:580868デフォルトの名無しさん
2008/10/21(火) 07:22:200869デフォルトの名無しさん
2008/10/21(火) 10:23:330870デフォルトの名無しさん
2008/10/21(火) 10:52:240871デフォルトの名無しさん
2008/10/21(火) 12:15:050872デフォルトの名無しさん
2008/10/21(火) 12:29:350873デフォルトの名無しさん
2008/10/21(火) 12:30:360874デフォルトの名無しさん
2008/10/21(火) 12:48:570875デフォルトの名無しさん
2008/10/21(火) 12:53:120876デフォルトの名無しさん
2008/10/21(火) 13:47:430877デフォルトの名無しさん
2008/10/21(火) 13:49:460878デフォルトの名無しさん
2008/10/21(火) 14:01:200879デフォルトの名無しさん
2008/10/21(火) 14:03:580880デフォルトの名無しさん
2008/10/21(火) 14:09:200881デフォルトの名無しさん
2008/10/21(火) 15:27:290882デフォルトの名無しさん
2008/10/21(火) 15:28:140883デフォルトの名無しさん
2008/10/21(火) 16:40:51ユニークなんだよね?じゃあいくつも同じプログラムを起動しても
インスタンスハンドルは同一になるの?
0884デフォルトの名無しさん
2008/10/21(火) 16:52:31ユニークだったのは16bitの頃の話。
32bitになってからは、hInstanceはどのプロセスでも同じ値。
なぜ同じ値なのか、hInstanceの正体は何なのか知りたくなったら
Advanced Windowsでも嫁。
0885デフォルトの名無しさん
2008/10/21(火) 17:25:350886デフォルトの名無しさん
2008/10/21(火) 18:16:050887デフォルトの名無しさん
2008/10/21(火) 18:32:080888デフォルトの名無しさん
2008/10/21(火) 19:13:560889デフォルトの名無しさん
2008/10/21(火) 19:43:15つまり、メモ帳のプロセスとペイントのプロセスが同じ値を持っているということ?
0890デフォルトの名無しさん
2008/10/21(火) 19:56:33dumpbin /headers %systemroot%\system32\notepad.exe | findstr /c:"image base"
dumpbin /headers %systemroot%\system32\mspaint.exe | findstr /c:"image base"
0891デフォルトの名無しさん
2008/10/21(火) 20:05:23Advanced Windowsを読むとこんな間違った知識が身につくの?
0892デフォルトの名無しさん
2008/10/21(火) 20:07:44競合したら再配置されるし
0893デフォルトの名無しさん
2008/10/21(火) 20:15:280894デフォルトの名無しさん
2008/10/21(火) 20:19:230895デフォルトの名無しさん
2008/10/21(火) 20:20:03http://blogs.msdn.com/oldnewthing/archive/2004/06/15/156022.aspx
0896デフォルトの名無しさん
2008/10/21(火) 20:22:12VisualStudioに付いてるだろ
0898デフォルトの名無しさん
2008/10/21(火) 20:29:42#include <stdio.h>
#include <windows.h>
int main()
{
printf("%p\n", (void*)GetModuleHandle(0));
}
0899デフォルトの名無しさん
2008/10/21(火) 20:34:23mainに返値が無い
void*へのキャストは不要
0900デフォルトの名無しさん
2008/10/21(火) 20:37:56これはC++プログラムだ!という弁解がくるに100ゲイツ
0901デフォルトの名無しさん
2008/10/21(火) 20:41:140902デフォルトの名無しさん
2008/10/21(火) 20:44:140903デフォルトの名無しさん
2008/10/21(火) 20:44:59Advanced Windows読むの?
0904デフォルトの名無しさん
2008/10/21(火) 20:45:36GetWindowRectでいい?
0905デフォルトの名無しさん
2008/10/21(火) 20:52:24ありがとうございました。
0906デフォルトの名無しさん
2008/10/21(火) 21:28:20EXEだと普通は再配置不可になるからそれはない。
http://msdn.microsoft.com/ja-jp/library/w368ysh2.aspx
0907デフォルトの名無しさん
2008/10/21(火) 22:01:21知らないのにレスしないでください
0908デフォルトの名無しさん
2008/10/21(火) 22:28:21それはVCの話だろ
Delphi製EXEなんかだと再配置可能になってるぞ
0909デフォルトの名無しさん
2008/10/21(火) 22:35:50てゆーかAdvanced WindowsにもhInstanceが固定なんて一言も書かれてない。
hPrevInstanceと勘違いしてねーか?
0910デフォルトの名無しさん
2008/10/21(火) 23:12:15とりあえず、トラフィック量のほうはnetstat -eで取得できそうなことはわかりましたが、プログラムで利用するAPIをどう探せばよいのかわからず悩んでいます
また、回線速度のほうは取得するコマンドすらわかりません
上記の解決方法についてアドバイスいただけないでしょうか?
また、Win32APIの検索のコツなども教えていただければ助かります
当方プログラム経験はそれなりですがWin32API初体験のものです
よろしくお願いいたします
0911デフォルトの名無しさん
2008/10/21(火) 23:15:180912デフォルトの名無しさん
2008/10/21(火) 23:19:58http://msdn.microsoft.com/ja-jp/library/cc429248.aspx
NICを通ったパケット数ならPSAPIのGetIfEntryとかで見れる気がする
0913デフォルトの名無しさん
2008/10/21(火) 23:24:53IPHLPだった
しかもGetIfTableじゃ駄目だな
0914デフォルトの名無しさん
2008/10/21(火) 23:28:56なんだっけ
PCap?
0915デフォルトの名無しさん
2008/10/21(火) 23:44:24回線速度に関してはダイヤルアップとかだとそもそもWindowsがまともな値認識してなかったりするがそれはそれ。
0916デフォルトの名無しさん
2008/10/21(火) 23:50:590917デフォルトの名無しさん
2008/10/21(火) 23:55:120918デフォルトの名無しさん
2008/10/21(火) 23:58:04別にただのコンソールアプリでもIDE使うし。
0919デフォルトの名無しさん
2008/10/21(火) 23:58:190920917
2008/10/22(水) 00:06:31ありがとうございました。
実はIDE(アカデミック)買おうかどうか迷ってるんですけど、たとえば、
Win32APIって、デファインで定義された定数がいっぱいありますけど、
ああいうのってインテリセンスとかで候補から選べたりできますか?
それだとすごくありがたいんですが。
0921デフォルトの名無しさん
2008/10/22(水) 00:11:33EEでも試せるからやってみては
0922デフォルトの名無しさん
2008/10/22(水) 00:31:060924デフォルトの名無しさん
2008/10/22(水) 00:36:310925デフォルトの名無しさん
2008/10/22(水) 00:39:390926デフォルトの名無しさん
2008/10/22(水) 00:50:58学生でVS欲しいだけなら、DreamSparkのほうが安いぞ。
0927デフォルトの名無しさん
2008/10/22(水) 07:42:30少し昔まではMSの技術情報なんて英語と日本語ぐらいだったのに今や日本語は機械翻訳だらけだし
もう日本なんてMSの眼中に無いのかな・・・
0928デフォルトの名無しさん
2008/10/22(水) 07:55:590929デフォルトの名無しさん
2008/10/22(水) 08:04:17SDKヘルプとか
0930デフォルトの名無しさん
2008/10/22(水) 08:59:30たいした差もなかったのに何言ってんだか
0931デフォルトの名無しさん
2008/10/22(水) 10:32:320932デフォルトの名無しさん
2008/10/22(水) 10:56:240933デフォルトの名無しさん
2008/10/22(水) 13:18:29Express Editionで事足りるんだよなw
どうせすぐに新しいバージョンのVC++出るし。
0934デフォルトの名無しさん
2008/10/22(水) 13:23:35今の世の中は幸せなことだ
0935デフォルトの名無しさん
2008/10/22(水) 14:07:31引数に指定するマスクのHBITMAPの作り方はどうやるんですか?
0936デフォルトの名無しさん
2008/10/22(水) 14:12:230937デフォルトの名無しさん
2008/10/22(水) 14:16:150938デフォルトの名無しさん
2008/10/22(水) 14:48:38CreateBitmapの戻り値を、受け取ればそれでもう作れてるんでしょうか?
いろいろ関数があって全然わからないんです
なるべく手作業で作りたいです。透過色の設定が楽そうなので
0939デフォルトの名無しさん
2008/10/22(水) 15:34:43高さと幅が一緒で数字2桁までしか入力できないようにした、
EDITコントロールがあります。
そのEDITコントロールの幅を変更した時、
一緒に、フォントサイズも自動で、
数字2桁を表示できる最大のものに設定されるようにしたいと思っています。
調べてみた限り、似たようなものが見付からなかったので質問させていただきました。
0940デフォルトの名無しさん
2008/10/22(水) 15:38:000941デフォルトの名無しさん
2008/10/22(水) 15:39:17手作業つーのはペイントツールで作るってことだよ。
自動でやるなら、BitBltのラスターオペレーションと前景色や背景色の設定で
数回コピーしてつくるんだけど、長くなるからググったりしてくれ。
0942デフォルトの名無しさん
2008/10/22(水) 15:48:51HBITMAPを作って、指定したら、
そのあとは
PlgBlt関数に当てはめるだけで透過はできるんですよね?
それともPlgBltのあとにさらにBltBltやったりしますか?
0943デフォルトの名無しさん
2008/10/22(水) 15:50:11ソースを書くほうかと。
0945デフォルトの名無しさん
2008/10/22(水) 16:21:43フォントを作る
↓
デバイスコンテキストに渡す
↓
GetTextExtentPoint32で幅を取る
↓
エディットボックスの幅(実際に描画される幅に調整しておく)と比較
とか?
0947デフォルトの名無しさん
2008/10/22(水) 17:07:380948デフォルトの名無しさん
2008/10/22(水) 17:13:51ありません!
0949947
2008/10/22(水) 17:40:22ありがとうございます。
0950947
2008/10/22(水) 17:45:20これから質問するのですが知らない人はレスしないで下さいね
0951947
2008/10/22(水) 17:46:590952947
2008/10/22(水) 18:02:560953デフォルトの名無しさん
2008/10/22(水) 20:40:36おくられてくるメッセージってなんだっけ?
0954デフォルトの名無しさん
2008/10/22(水) 20:42:35これだけ引っ張って質問はこれですか?
0955デフォルトの名無しさん
2008/10/22(水) 20:47:11この辺検索したらわかるだろ・・・。
0956デフォルトの名無しさん
2008/10/22(水) 20:48:09WM_RBUTTONCLICKED
0957デフォルトの名無しさん
2008/10/22(水) 23:25:59「もしかして: WM_LBUTTONDOWN」
て言われた。
0958デフォルトの名無しさん
2008/10/22(水) 23:31:030959デフォルトの名無しさん
2008/10/22(水) 23:39:390960デフォルトの名無しさん
2008/10/23(木) 00:14:520961デフォルトの名無しさん
2008/10/23(木) 00:44:01させて、クライアント領域を描画するとあるけど、この関数を呼ばずに
ShowWindow関数だけでやっても、ちゃんとクライアント領域に意図した
描画がなされるのだが、UpdateWindow関数って何の意味があるの?
0962デフォルトの名無しさん
2008/10/23(木) 00:47:21UpdateWindowするとその場でWM_PAINT送ってくれる。
0963デフォルトの名無しさん
2008/10/23(木) 00:50:17仕様なの?
0964デフォルトの名無しさん
2008/10/23(木) 00:52:19WM_PAINT自体は必要とあらば生成されるものなので、まあそんな感じ。
CreateWindowではなく、ShowWindowが引き金だろうけど。
0965デフォルトの名無しさん
2008/10/23(木) 00:53:26CreateWindow直後は全体が無効領域になってるから当然WM_PAINTは送られる。
InvalidateRect呼んだり、ウィンドウリサイズしたり、他のウインドウで隠した後、上に持ってきても発生するし。
0966デフォルトの名無しさん
2008/10/23(木) 01:45:04UpdateWindowの意味は薄いけど、念のためという感じみたいですね。
0967デフォルトの名無しさん
2008/10/23(木) 01:59:45うるおぼえだが
0968デフォルトの名無しさん
2008/10/23(木) 02:38:100969デフォルトの名無しさん
2008/10/23(木) 02:50:30そんなうるおぼえ
0970デフォルトの名無しさん
2008/10/23(木) 03:10:060971942
2008/10/23(木) 03:49:480972942
2008/10/23(木) 03:58:310973デフォルトの名無しさん
2008/10/23(木) 04:07:410974デフォルトの名無しさん
2008/10/23(木) 05:04:210975942
2008/10/23(木) 05:48:060976デフォルトの名無しさん
2008/10/23(木) 06:43:22やってみろよ
大きく間違ってたら指摘してるよ
つーかアクセス規制うぜえ・・・
0977942 ◆FjOpeTE2Ts
2008/10/23(木) 06:58:01BackDCは裏バッファです
PlgBltにmBmpを指定しなければ、透過なしで描画されるのですが
PlgBltにmBmpを指定すると何も表示されません
なので、PlgBltのあとに、何かやらなきゃいけない? とか思ったのですが、、
それともマスクの作り方が間違っているのでしょうか?
ご教示お願いします
///マスク作成
HDC mDC;
HBITMAP mBmp = CreateBitmap( 150, 150, 1, 1, NULL );
SelectObject( mDC, mBmp );
///描画
POINT point[3] = { { 0 , 0 } , { 150 , 0 } , { 0 , 150 } };
PlgBlt( BackDC , point , g , 0 ,0 , 150, 150 , mBmp , 0 , 0);
0978デフォルトの名無しさん
2008/10/23(木) 07:08:19http://oshiete1.goo.ne.jp/qa4420865.html
0979デフォルトの名無しさん
2008/10/23(木) 07:43:10携帯じゃこれが精一杯
0980942 ◆FjOpeTE2Ts
2008/10/23(木) 08:34:25最後にこれだけ教えてください
PlgBltの後ろに処理はいらないんですよね?
0981デフォルトの名無しさん
2008/10/23(木) 09:31:400982デフォルトの名無しさん
2008/10/23(木) 09:54:27何こいつ・・・
0983デフォルトの名無しさん
2008/10/23(木) 10:17:39ありがとうございます。
あとはぐぐってみます。
0984デフォルトの名無しさん
2008/10/23(木) 13:33:21本が出版されていません(とくにOLE)。お勧めの本を教えてください。
0985デフォルトの名無しさん
2008/10/23(木) 13:49:170986デフォルトの名無しさん
2008/10/23(木) 13:50:010987デフォルトの名無しさん
2008/10/23(木) 14:25:05でフルスクリーンのPOPUPウィンドウを作成します。
このとき言語バーが消えてしまいます。
言語バーを消さない方法を知っている人教えて
ちなみにWidthを1600から1599に変更すると消えません。
OSは、XPです。
0988デフォルトの名無しさん
2008/10/23(木) 14:48:55>ちなみにWidthを1600から1599に変更すると消えません。
じゃあそれでいいじゃん。
0989デフォルトの名無しさん
2008/10/23(木) 14:57:00だめだから質問している。
そんなもんアプリケーションとしておかしいだろ
0990デフォルトの名無しさん
2008/10/23(木) 15:01:21こんなソースじゃ1920×1200のモニタだったりマルチモニタだったりするとフルスクリーンにならないだろ
おかしいのはお前だ馬鹿
0991デフォルトの名無しさん
2008/10/23(木) 15:02:030992デフォルトの名無しさん
2008/10/23(木) 15:07:39役に立たない連中だな
0993デフォルトの名無しさん
2008/10/23(木) 15:13:301600×1200は、問題を単純化のためで
実際は、DirectDrawMultiMonitorInfoでスクリーンサイズを計算している。
0994デフォルトの名無しさん
2008/10/23(木) 15:14:260995デフォルトの名無しさん
2008/10/23(木) 15:26:11WS_MAXIMIZEは、使っていません。
SPY++で調べると、言語バーにShowWindowのSW_HIDEが発生しています。
0996デフォルトの名無しさん
2008/10/23(木) 15:28:56使わない理由は何?
マルチモニタだから?
0997デフォルトの名無しさん
2008/10/23(木) 15:38:01タスクバーは隠して、言語バーだけ表示したいのです。
0998デフォルトの名無しさん
2008/10/23(木) 15:49:270999デフォルトの名無しさん
2008/10/23(木) 15:59:28http://pc11.2ch.net/test/read.cgi/tech/1224745158/
1000デフォルトの名無しさん
2008/10/23(木) 16:03:0510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。