09/02/05 16:57:05
2010年の春分の日が決まったばかりだというのに
151:129
09/02/05 16:59:24
せめてイスラム歴の正月かどうかを調べるAPIぐらいの事言えよw
152:デフォルトの名無しさん
09/02/05 17:08:32
EM_GETLINE
The copied line does not contain a terminating null character.
これ作ったやつマジで氏ね!!
153:デフォルトの名無しさん
09/02/05 17:31:32
>>129
荒らすの止めろクズが
154:デフォルトの名無しさん
09/02/05 18:45:30
129大杉ワロタ
155:デフォルトの名無しさん
09/02/05 18:48:40
>>129が悪い
156:デフォルトの名無しさん
09/02/05 19:19:32
>>129の人気に嫉妬
157:デフォルトの名無しさん
09/02/05 19:22:21
ここまでスベったネタを誤魔化すための自演
158:デフォルトの名無しさん
09/02/05 19:24:48
>>129-133
ここら辺が見所ですかね。
159:デフォルトの名無しさん
09/02/05 19:56:03
>>152
Win16時代のAPIに今更ケチ付けてもねえ
160:デフォルトの名無しさん
09/02/05 19:56:39
まあぶっちゃけると>>129-133は全て>>129の自演だけどな
161:デフォルトの名無しさん
09/02/05 19:58:25
その辺にしてくれねーかな
162:デフォルトの名無しさん
09/02/05 20:03:42
>>159
理由になってない。
163:129 ◆kwai5Y6kNk
09/02/05 20:04:37
あぁ
164:デフォルトの名無しさん
09/02/05 20:14:37
Win16時代は速度優先のため大多数のAPIは終端にNULLをつけなかった。
さすがにプログラマーからの苦情が多かったためWin32ではNULLをつけるよう仕様変更した。
しかしEM_GETLINEなど一部は後方互換性を重視して、敢えてNULLをつけていない。
少しはググレカス
165:デフォルトの名無しさん
09/02/05 22:46:07
最近始めましたが、サンプルを見ると以下のように先頭にスコープ解決演算子を
付けているのが多いのですが、付けると何か良いことがあるのでしょうか?
::MessageBox(~);
166:デフォルトの名無しさん
09/02/05 22:47:14
インテリセンスが効くとか。
167:デフォルトの名無しさん
09/02/05 22:47:55
MFCやATLのライブラリで同名を用いていることが多いので、それと区別したい場合に用いる。
または、インテリセンスを効かせようとした跡。
168:165
09/02/05 23:07:03
>>166, 167
どうもありがとうございました。
169:デフォルトの名無しさん
09/02/05 23:10:56
>>121やったつもりが1文字間違っててうまく潰せてなかったみたいでした。
すっごい綺麗にいけました!ありがとうございます。
170:デフォルトの名無しさん
09/02/05 23:31:07
PostMessageにてboost::shared_ptrの値を渡すのは危険でしょうか?
Post先で参照後に勝手に消えてくれるので便利な気がするのですが。
171:デフォルトの名無しさん
09/02/05 23:39:07
PostMessage は非同期だから
Post先にメッセージが届く前に shared_ptr が破棄されているかもしれないので危険
172:デフォルトの名無しさん
09/02/06 00:02:24
わかりました。やめときます。素直にSendMessageTimeout使います。
173:デフォルトの名無しさん
09/02/06 00:02:46
119だが,DIBSectionに変更して幸せになれました.
174:デフォルトの名無しさん
09/02/06 00:10:23
幸せになるくらいなら猿でもなれる
問題は幸せにしてやれるかどうかだ
175:デフォルトの名無しさん
09/02/06 00:28:01
深イイ話くらい中身のない言葉っすね
176:デフォルトの名無しさん
09/02/06 00:30:00
おっぱいがあれば幸せ
177:デフォルトの名無しさん
09/02/06 10:18:26
>>129だけど何か質問ある?
178:デフォルトの名無しさん
09/02/06 10:20:14
ない
179:86
09/02/06 10:57:15
またまたすみませんが・・・
数日前色々教えてもらって縮小はうまくいったのですが今度は拡大がうまくいきません><
1440x1080を1980x1080に拡大
dwBuffer = new DWORD[2048*2048];
dwBufferにデータをぶち込み
BITMAPINFO bi;
::ZeroMemory( &bi, sizeof( BITMAPINFO ) );
bi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bi.bmiHeader.biWidth = 1440;
bi.bmiHeader.biHeight = 1080;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
DWORD *buf;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateDIBSection( hdc, &bi, DIB_RGB_COLORS, (void**)&buf, NULL, 0 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1980, 1080, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
bi.bmiHeader.biWidth = 1980;
bi.bmiHeader.biHeight = 1080;
::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );
出力サイズの1280x720を1980x1080に変更しただけなんですが・・・
どうも出力先のサイズが1440で切られてるみたいです。。。
何処が間違ってますか?
180:デフォルトの名無しさん
09/02/06 11:00:35
ダメだこりゃ
次いってみよー
181:デフォルトの名無しさん
09/02/06 11:03:50
>>179
CreateDIBSectionを元画像と同じ大きさで呼んでるからだろ
てか、お前プログラムやめたら?
182:86
09/02/06 11:17:21
あ、ちなみに
::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );
1980じゃなくて1080ですね。
>>181
そう思って出力先と同じサイズにしたんですが画像がくずれてしまって・・・
183:86
09/02/06 11:21:32
あ、ごめんなさい。激しくわかりました。
僕が馬鹿でした。
言葉は悪いけど>>181が参考になりました。
184:デフォルトの名無しさん
09/02/06 11:43:14
どうでもいい茶々を入れる
1980×1080は1920×1080では?
185:86
09/02/06 12:03:21
>>184
いや1980なんですよねこれが。
おかげで拡大もばっちりいったのですが・・・
グラデーションがかかった画像を縮小すると汚さが目立ちます
オリジナルの1440x1080を1280x720にすると目立つとおもって
1440x1080→1980x1080→1280x720でやっても一緒だったのですが
同じ流れでC++BuilderのTBitmapで行うと綺麗に行くのですが
これなんかパラ指定があるんでしょうか?
ちなみにStretchDIBitsのHDCにTBitmapのハンドルを与えてから拡大縮小してます
186:デフォルトの名無しさん
09/02/06 12:05:51
大元が勘違いして変な数値になったのかなw
187:デフォルトの名無しさん
09/02/06 12:07:08
>>185
SetStretchBltModeじゃね?
188:86
09/02/06 12:56:26
>>187
ありがとうございます。
ちょっと試してみます!
189:86
09/02/06 13:37:18
くぁwせdrftgyふじこlp;
>>187
神様ありがとう!
すげえええええええええです!
一発で綺麗に縮小できました!!
ありがとうありがとう
190:デフォルトの名無しさん
09/02/06 13:54:30
NG推奨:86、129
191:デフォルトの名無しさん
09/02/06 15:29:07
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.AlphaFormat = true;
bf.SourceConstantAlpha = 255;
AlphaBlend関数でBLENDFUNCTIONを上記のように設定すると、画像の完全な透明以外の部分はちゃんと
半透明に表示されますが、完全に透明な部分は何故か白で塗りつぶされてしまいます。これはどう設定しても無理ですか?
192:デフォルトの名無しさん
09/02/06 15:45:06
AlphaBlendは糞
計算式がおかしいのは有名な話
193:デフォルトの名無しさん
09/02/06 15:48:33
AlphaBlendに関してはちょっと前にも同じ言い争いがあったので
反論したい人は穏便にお願いします
Win32API質問箱 Build73
スレリンク(tech板:23-76番)
参考
194:デフォルトの名無しさん
09/02/06 16:34:34
過去ログは見れない人も多いから、煽りじゃないなら参考としては不適切。
195:デフォルトの名無しさん
09/02/06 16:44:55
>>193見ました。
MSは糞。
196:デフォルトの名無しさん
09/02/06 18:41:13
>>174
自分が幸せになれんのに
他人が幸せになれるわけないじゃないか・・・・
チクショー
197:デフォルトの名無しさん
09/02/06 19:28:25
DDCAPS_ALPHAの対応マダァ-? (・∀・ )っ/凵⌒☆チンチン
198:デフォルトの名無しさん
09/02/06 20:27:36
他の人が作成したdllを呼び出すプログラムを作成したんですが
あるdllをLoadLibrary()したらエラーリターンしてエラーコードが998(ERROR_NOACCESS)でした。
なのでdll作成側にDllMainのDLL_PROCESS_ATTACHでメモリ破壊してると、このエラーコードになると報告したのですが
こっちでも呼び出し元に不備がないか調査して日々報告するように言われております。
呼び出し元の不備でこのエラーになるケースはどのようなものが考えらるでしょうか?
動作環境はXPのSP2です
エラーになるdllがなにしてるかは不明で、そのdllをもらうこともできません
199:デフォルトの名無しさん
09/02/06 20:28:30
WH_GETMESSAGEにてのメッセージフックでWM_MOVEを検知して移動先の座標を得ようと
しているんですが、pt.x,pt.yにでたらめな座標が入ってしまいます。何故でしょうか?
LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam){
CWPSTRUCT *cwps;
cwps=(CWPSTRUCT *)lParam;
if(nCode<0)
return CallNextHookEx(hMyHook,nCode,wParam,lParam);;
if( nCode == HC_ACTION ){
if(cwps->message==WM_MOVE){
POINT pt;
pt.x=LOWORD(cwps->lParam);
pt.y=HIWORD(cwps->lParam);
}
}
return CallNextHookEx(hMyHook,nCode,wParam,lParam);
}
あと同じようなので
if(cwps->message==WM_WINDOWPOSCHANGED)LPWINDOWPOS pos=(LPWINDOWPOS)cwps->lParam;
もpos->xとかにもでたらめな数字入ってしまう。
MSDNも何度も調べたし、色々な組み合わせを何時間もトライ&エラー繰り返してたんですが
やっぱり分かりません。教えてください
200:デフォルトの名無しさん
09/02/06 20:31:28
>>198
LoadLibraryするだけの単純なプログラムを書いて渡すっていうのじゃダメなの?
それともそれだけでは再現しないの?
201:デフォルトの名無しさん
09/02/06 20:35:32
>>199
マウス座標が cwps->hwnd が示す
ウィンドウ相対だからとか?
202:デフォルトの名無しさん
09/02/06 20:37:21
符号なしの値を符号付きの変数に代入してこけてるとか?
203:デフォルトの名無しさん
09/02/06 20:45:14
>>199
WH_GETMESSAGEでかけたフックのコールバックのlParamはMSG構造体なんだが
204:198
09/02/06 20:47:13
>>200
>>198です。
エラーが発生する条件が不明でエラーの発生頻度もあまり多くないんです
LoadLibrary()するだけのプログラムでも環境しだいでは再現するかもしれないんですが
再現するかもしれないから、ちょっと試してみてください、って言える関係じゃないんです
205:デフォルトの名無しさん
09/02/06 20:50:20
どっかに不定が紛れ込んでいるに1000ペリカ
206:デフォルトの名無しさん
09/02/06 21:45:10
>>202
ありがとうございます。まったくその通りでした。
MSDNに「1 個の 構造体へのポインタ」としか書いてなかったからCWPSTRUCTでいいと思ってた
今後のために教えてください。そういうのってどこに書いてます?
でも、これだとWM_MOVEが引っかからないから他のフックタイプ使うべきなのね
207:デフォルトの名無しさん
09/02/06 21:48:01
>>206
URLリンク(msdn.microsoft.com)(VS.85).aspx
確かに日本語ソースには「1 個の 構造体へのポインタを指定します。」とあるのなww
こやつめハハハ
208:デフォルトの名無しさん
09/02/06 22:05:21
英語の方には書いてあったのね。楽だからついつい日本語の方ばっかり見ちゃうけど
やっぱり英語の方も見たほうがいいですね
209:デフォルトの名無しさん
09/02/06 22:17:05
WH_CBTにしてHCBT_MOVESIZEを見るようにしたらいけました。
このまま教えてもらわなかったらまた何時間も悩み続けるところだったよ。ありがとう
210:デフォルトの名無しさん
09/02/07 01:18:37
なるほど
ありがとうございました
211:デフォルトの名無しさん
09/02/07 04:18:34
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
212:211
09/02/07 04:20:05
あ…スマン…Janeの裏技とか言うのみて試してたら書き込まれた(;´Д`)
213:デフォルトの名無しさん
09/02/07 07:18:02
ヾヽヽ
(´▽`) おっさんチュンチュン
ミ_ノ
″″
214:デフォルトの名無しさん
09/02/07 07:28:09
複雑だと思うならつかわなきゃいいんじゃねーの?
なんでアホはあるもの全部使わなきゃ気がすまねーの?
215:デフォルトの名無しさん
09/02/07 08:58:01
Before:
URLリンク(admins.fxdm.net)
After:
URLリンク(art3.photozou.jp)
216:デフォルトの名無しさん
09/02/07 09:27:24
質問です。
(A)
ツリービューで↓を書くと
TreeView_InsertItem(HWND hwndTV, LPTVINSERTSTRUCT lpis);
BorlandC++ が
”警告 W8019 : コードは効果を持たない”と
と吐くのですが、どういう意味なんでしょうか?
(B) また、
SendMessage(hwndPB, PBM_SETRANGE, 0, MAKELPARAM(0,files_read));
と書くと
”警告 W8084 : 優先順位を明確にするためにカッコの使用を推奨”
と吐きます。どう括弧をつければいいのでしょうか?
217:デフォルトの名無しさん
09/02/07 09:46:22
URLリンク(docs.codegear.com)
URLリンク(docs.codegear.com)
あとはbccスレで聞け
218:デフォルトの名無しさん
09/02/07 10:48:40
まさか
TreeView_InsertItem(HWND hwndTV, LPTVINSERTSTRUCT lpis);
↓
TreeView_InsertItem(hwndTV, lpis);
ってことじゃないよなw
219:デフォルトの名無しさん
09/02/07 11:27:08
GetDC BeginText
で得たhdcの値は変わることってありますか?
あるとするならどんな時に変わりますか?
220:デフォルトの名無しさん
09/02/07 11:31:57
確保しっぱなしにしようとしてるのかもしれんが
その使い方が間違い
221:デフォルトの名無しさん
09/02/07 12:37:17
普通のウィンドウだと、DCはGetDC等が呼ばれた時にシステムから提供される。
毎回設定がリセットされるのはそのため。
Windows9x系だと、スレッド辺り5つまでしか貰えないから持ちっぱなしはあり得ない。
だがNT系なら多少メモリ喰う程度だけで済むので、今の時代なら構わないのかも。
まあ、CS_OWNDC付けとけばReleaseDCしても設定内容は維持されるから、
そっちを検討した方が良いとは思う。
222:デフォルトの名無しさん
09/02/07 13:18:49
MSDNの日本語版は構造体のページが作成されてないからリンクも貼れない
記述文の中の構造体名ごと一斉に消しちゃってるというやっつけ仕事
文中に「構造体」とあればその前に構造体名が省略されてると見るのが吉
223:デフォルトの名無しさん
09/02/07 14:26:04
ひでーぶー
224:216
09/02/07 14:51:27
>>217 サンクスコ。
>>218 ? 返り値を受け取ってないってことですか? SORTの属性付けてるので返り血は捨ててます。
225:デフォルトの名無しさん
09/02/07 15:04:40
hwndTVとlpisが実引数なら型の記述は要らないってことだろ
226:デフォルトの名無しさん
09/02/07 15:05:11
関数の呼び出しと宣言がごっちゃになってるんじゃないかと言ってるんじゃ?
227:デフォルトの名無しさん
09/02/07 15:11:54
ありがとうございました
228:デフォルトの名無しさん
09/02/07 15:54:59
>>221
お!だからいちいち開放しなきゃいけなかったのか
今更だけど理解した
229:デフォルトの名無しさん
09/02/07 18:11:32
あるチェックボックスをチェックを入れたら
別のチェックボックスのチェックを外すにはどうしたらいいですか?
230:デフォルトの名無しさん
09/02/07 18:14:29
BN_CLICKEDでも見張っててうんちゃらかんちゃらする
231:デフォルトの名無しさん
09/02/07 18:17:47
すなおにラジオボタンを使う
232:デフォルトの名無しさん
09/02/07 19:09:57
全部のチェックが外れた状態も欲しいんです
(常に1個または0個選択)
233:デフォルトの名無しさん
09/02/07 19:14:41
ラジオボタンをチェックする関数の引数に、
チェックするボタンの ID として -1 を指定すれば
全部チェックが外れるよ。
234:デフォルトの名無しさん
09/02/07 19:34:45
ラジオボタンにしてdisable的な項目を増やせば解決するような単純なものではないって事かな
235:デフォルトの名無しさん
09/02/07 20:22:02
押してチェックを外したいのであれば、
ラジオボタンに期待されてるような処理ではないので
チェックボックスにした方がいいかもね。
チェックボックスにも CheckRadioButton 関数って使えるんだっけ?
236:デフォルトの名無しさん
09/02/07 20:47:33
リストボックスのアイテムをダブルクリックするには PostMessage を使うの?
237:デフォルトの名無しさん
09/02/07 21:39:59
いまさらだけどWindows7βで遊んだ。
Windows7のエクスプローラ、
とうとうSysListView32じゃなくなったな
238:デフォルトの名無しさん
09/02/08 00:34:39
アイコンセットは少し気を遣うな
匹数に幼虫異です
239:デフォルトの名無しさん
09/02/08 03:32:09
>>237
な、なんだってー
240:デフォルトの名無しさん
09/02/08 08:40:47
>>236
Mouseを使います。
241:デフォルトの名無しさん
09/02/08 10:35:06
ありがとうございました
242:デフォルトの名無しさん
09/02/08 14:04:06
>>237
タスクバーがTabやToolbarじゃなくなってたのは確認した
そろそろカスタマイズ系の常駐ソフトもお終いか?
243:デフォルトの名無しさん
09/02/08 14:30:08
char tt[256];
byteOutPut=(BYTE)GetPrivateProfileInt(_T("test"),_T("valuets"),1,_T("test.ini"));
wsprintf(tt,"%d",byteOutPut);
MessageBox(NULL,tt,"チェック",MB_RTLREADING);
test.ini
[test]
valuets = 7
としても、値が常に「1」がかえってしまいます。
test.iniに記載されている「7」を取得したいんですが・・。
244:デフォルトの名無しさん
09/02/08 14:33:19
文字コードは~?
245:デフォルトの名無しさん
09/02/08 14:34:14
>>243
説明は省くけどtest.iniをフルパス(C:\...\test.ini)で指定しても駄目かな?
246:デフォルトの名無しさん
09/02/08 14:36:14
>>243
URLリンク(msdn.microsoft.com)(VS.85).aspx
>If this parameter does not contain a full path to the file,
>the system searches for the file in the Windows directory.
247:デフォルトの名無しさん
09/02/08 15:36:42
>>243
こういう奴は大人しくレジストリ使っとけばいいのに……
248:デフォルトの名無しさん
09/02/08 19:50:43
文字コードは、マルチバイト文字セットを使用する にしています。
フルパスで指定してもダメです。
_Tをなくしてもダメです。。
249:デフォルトの名無しさん
09/02/08 20:09:46
>>246に答え書いてるのに……
>>245が解決法書いてるのに……
>>247が代替案まで出してるのに……
なにこの子?
250:デフォルトの名無しさん
09/02/08 20:11:54
もうだめだこのスレ
251:デフォルトの名無しさん
09/02/08 20:14:11
自己解決しますた。
252:デフォルトの名無しさん
09/02/08 20:37:04
どの辺りが自己解決なのか…?
事故解決の変換ミス?
253:デフォルトの名無しさん
09/02/08 21:37:27
あなた方では役に立たないので他のサイトで教えてもらいました。
254:デフォルトの名無しさん
09/02/08 21:41:03
どの辺りが自己解決なのか…?
255:デフォルトの名無しさん
09/02/08 21:54:20
×自己で解決
○自己を解決
256:デフォルトの名無しさん
09/02/08 22:19:40
つーか性格悪い奴が多すぎだろ、ここ
257:デフォルトの名無しさん
09/02/08 22:33:13
>>256
例えばどのレス?
多すぎってからには10レスくらいすぐに安価出せるな?
258:デフォルトの名無しさん
09/02/08 22:42:45
このスレ限定でIDが欲しくなるな
259:デフォルトの名無しさん
09/02/08 22:45:14
ネットワークの回線の速度って
どう検出するのでしょうか?
ラン内・ネットのロード量など。
また、よく、ダウンロードのインジケータなど
不思議に感じます。
APIで解決できるのでしょうか?
260:デフォルトの名無しさん
09/02/08 22:59:47
>>257
お前のような奴の事だよ。
261:デフォルトの名無しさん
09/02/08 23:03:01
>>259
速度=単位時間に流れるデータ量
262:デフォルトの名無しさん
09/02/08 23:05:10
>>259
パフォーマンスカウンタ
カテゴリ名:Network Interface
インスタンス名:有効なNIC
カウンタ名:Received Bytes/Sec
とか見れば
263:デフォルトの名無しさん
09/02/08 23:15:58
>>259
APIにこだわるなら
IP Helper Functions
あたり
264:デフォルトの名無しさん
09/02/08 23:17:17
>>260
予想の範疇のレスすんな。
そう突っ込まれるだろうから10レスくらい挙げてみろって加えたんだよ。
265:デフォルトの名無しさん
09/02/08 23:36:28
GetProcessHeap()で取得したヒープハンドルを利用していたら
いきなりハンドルの値が変わってHeapAllocで落ちました。
この現象に心当たりある方はいませんか?
266:265
09/02/08 23:41:06
値を初期化すべきところに初期化してませんでした。
にらんだとおりオーバーフローだったみたいです
267:デフォルトの名無しさん
09/02/08 23:45:34
>>261
>>262
>>263
ありがとうございます。
268:デフォルトの名無しさん
09/02/09 10:20:41
Windowsで一番簡単なディザ処理を行うにはどうすればいいですか?
269:デフォルトの名無しさん
09/02/09 11:03:21
何に対して?
270:デフォルトの名無しさん
09/02/09 11:23:02
向かいのタバコ屋の婆さんに対して
271:デフォルトの名無しさん
09/02/09 11:39:38
タバコ屋の婆ちゃん逃げて! ><;
272:デフォルトの名無しさん
09/02/09 11:46:03
32ビットビットマップに対して1ビット、4ビット、8ビットカラーへのディザ処理。
273:デフォルトの名無しさん
09/02/09 12:03:55
悪いけどそんなもんない
274:デフォルトの名無しさん
09/02/09 12:06:06
settimer が killtimer されたのってどーやって検知すればいいですか?
275:デフォルトの名無しさん
09/02/09 12:07:39
もう一個タイマー作ってイベントが発生し続けてるかどうか見てれば
276:デフォルトの名無しさん
09/02/09 12:54:49
>>275
ありがとうございました。
277:デフォルトの名無しさん
09/02/09 13:01:46
・・・KillTimer するのは自分じゃないのか?
278:デフォルトの名無しさん
09/02/09 13:05:49
そういう突っ込みは、野暮というものだよ
279:デフォルトの名無しさん
09/02/09 22:02:44
→ int i,j;
の様に「→」が表示されるようになってしまったんですが
これをなおすにはどうしたらいいですか?「→」は青っぽいやじるしです
280:デフォルトの名無しさん
09/02/09 22:05:35
>>279
そのコードを書いているソフトのスレで聞きなさい。
281:デフォルトの名無しさん
09/02/09 22:06:09
エスパーさん、出番ですよ
282:デフォルトの名無しさん
09/02/09 22:06:36
不定値のまま色使ってるとか。
283:デフォルトの名無しさん
09/02/09 22:12:06
>>279
→は改行文字が文字化けしてるんだろうね
だとしたら文字コードの問題
284:デフォルトの名無しさん
09/02/09 22:14:48
そのエディタではタブが矢印で表示されるんだろ
>>280だな
285:デフォルトの名無しさん
09/02/09 22:46:47
釣れた釣れた
286:デフォルトの名無しさん
09/02/09 23:31:53
どんなネタでも必ず釣れるスレですね
287:デフォルトの名無しさん
09/02/09 23:36:18
そ・・・壮大な釣りだった。。。
288:デフォルトの名無しさん
09/02/10 01:09:47
簡単に釣れるので、釣りの練習に使うといいよ
特に初心者の釣り師にオススメ
289:デフォルトの名無しさん
09/02/10 01:13:17
ここで釣り釣り言ってるのは小学生かなんか?
釣りの意味分かってないんだろうね
「ぷろぐらみんぐ」は小学生にはまだむずかしいから、おとなしくおうちでかめんらいだーごっこやってな?
290:デフォルトの名無しさん
09/02/10 01:41:24
ここまで俺の自演
291:デフォルトの名無しさん
09/02/10 02:52:50
すっかりキチガイ坊やになつかれたな
どんな糞にも丁寧に罵声を浴びせた結果がこれだ
292:デフォルトの名無しさん
09/02/10 03:42:52
宿題スレでもマルチしてた香具師だな
293:デフォルトの名無しさん
09/02/10 10:21:37
WM_CHAR他WM_IME_CHARから送られてきた文字をUTF-8に変換して保持し、ウィンドウ内に描画するには
WM_CHAR.WM_IME_CHAR
↓
文字コード変換
↓
☆配列等へ保持
↓
☆から文字コード変換
↓
ウィンドウ内に描画
しか方法はありませんか?
294:デフォルトの名無しさん
09/02/10 10:25:42
WM_CHAR時にはバッファに保存とInvalidateだけして後でまとめて描画だな
295:デフォルトの名無しさん
09/02/10 12:45:22
>>293
9xを捨ててUNICODEにしても良ければ、
WM_IMECHAR無視してWM_CHAR 1つでも困らないと思う。
もっと言えば、中でUTF-8にして保持するなら、WM_CHARよりも
UTF-32でやってくるWM_UNICHAR 1つのほうがやりやすいはず。ただしXPからだけど。
それとIMM API関数などを使って変換文字列を取得するのとどっちがいいかは微妙なとこだが。
296:デフォルトの名無しさん
09/02/10 14:17:39
MDIアプリで、フォーカスを持ってる子ウィンドウのハンドルを取得するにはどうすればよいでしょうか。
GetActiveWindow()、GetForegroundWindow()的なのがあるとありがたいのですが…
297:デフォルトの名無しさん
09/02/10 14:23:54
>>296
WM_MDIGETACTIVE
298:デフォルトの名無しさん
09/02/10 14:32:53
>>297
どうもです。
ついでにお願いします。そのメッセージの結果をAPIで取りたいのですがどう呼べばよいでしょうか。
プラグイン的なものからなのでAPIを呼ぶしかできないのです。
299:デフォルトの名無しさん
09/02/10 14:34:25
>>298
SendMessage
300:デフォルトの名無しさん
09/02/10 14:49:38
釣れた釣れた
301:デフォルトの名無しさん
09/02/10 14:54:00
___ ━┓
/ ― \ ┏┛
/ (●) \ヽ ・
/ (⌒ (●) /
/  ̄ヽ__) /
/´ ___/
| \
| |
302:デフォルトの名無しさん
09/02/10 18:38:01
>>296
HWND hActiveWnd;
// hClient を Client Window Handle として、
hActiveWnd = (HWND)SendMessage( hClient, WM_MDIGETACTIVE, 0, 0);
で、自分は使っている。hClient の意味が分からないなら、「猫でも
分かるプログラミング」を見るように。コードは古いが、意味合いは
分かるでしょう。
303:デフォルトの名無しさん
09/02/10 18:54:26
>送られてきた文字をUTF-8に変換して保持し
どーしても保持する必要があるなら仕方ないが、オレなら必要になった時にUTF-8に変換する
304:デフォルトの名無しさん
09/02/10 22:57:38
UpdateLayeredWindowでULW_ALPHAとULW_COLORKEYを同時に使うって出来ないんですか?
それがダメでも、ピクセル単位で完全透過部分と半透過部分を共存させた1つのウィンドウを作る方法ってありますか?
305:デフォルトの名無しさん
09/02/10 23:03:46
>>304
何のためにHDCとBLENDFUNCTIONが引数にあるのかを考えれば判るだろ
306:デフォルトの名無しさん
09/02/10 23:28:51
>>304
アルファ値が0のピクセルはリージョンのように完全に透過するが。
307:デフォルトの名無しさん
09/02/10 23:36:00
>>108が分る人いませんか?
308:デフォルトの名無しさん
09/02/11 00:06:04
いません
309:デフォルトの名無しさん
09/02/11 00:59:16
>>306例えば完全透過がそのあるビットマップがh_bmpに入ってるとして、どう呼び出したらうまく透過するのか
見せてもらえませんか?家のではどう見ても透過してないんですが・・・
ちなみにこうやってます。
WS_EX_LAYEREDスタイルを追加;
HDC hdc = ::GetDC(NULL);
my_hdc bmpdc = ビットマップのDC;
POINT zero = {0,0};
SIZE bsize = {画像の幅,高さ};
DWORD flags = ULW_COLORKEY|ULW_ALPHA;
COLORREF colkey = RGB(255,255,255);
BLENDFUNCTION bf;
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.AlphaFormat = AC_SRC_ALPHA;
bf.SourceConstantAlpha = 255;
::UpdateLayeredWindow(ウィンドウハンドル,hdc,ウィンドウの左上のPOINT*,&bsize,bmpdc,&zero,colkey,&bf,flags);
::ReleaseDC(NULL,hdc);
310:デフォルトの名無しさん
09/02/11 01:25:29
WS_EX_LAYERED | WS_EX_TRANSPARENT
311:デフォルトの名無しさん
09/02/11 01:28:28
>>309
UpdateLayeredWindow は obsolete
SetLayeredWindowAttributes を使おう
312:デフォルトの名無しさん
09/02/11 01:30:21
URLリンク(azumaya.s101.xrea.com)
URLリンク(msdn.microsoft.com)
313:デフォルトの名無しさん
09/02/11 01:45:21
> UpdateLayeredWindow は obsolete
(゚Д゚)ハァ?
314:デフォルトの名無しさん
09/02/11 01:58:38
>>108
それっぽい情報というとこれくらいかなあ
URLリンク(social.msdn.microsoft.com)
結局原因はよくわからないみたいだけど、
もし、同じ現象なら、文字セットをマルチバイト文字セットにするか、
targetver.h 内の _WIN32_WINNT の定義を
#define _WIN32_WINNT 0x0500
にしてやると回避できるみたいだけど
315:デフォルトの名無しさん
09/02/11 02:04:06
とある知らないEXEがUNICODEビルドなのかANSIビルドなのか区別する方法ってありますか?
316:デフォルトの名無しさん
09/02/11 02:13:49
インポートしてるAPIを見ればある程度推測できる
317:デフォルトの名無しさん
09/02/11 02:21:56
そんなもん区別して何がしたいんだ
318:デフォルトの名無しさん
09/02/11 02:33:22
あとはIsWindowUnicodeとか、EXE(モジュール)単位ではないけど。
319:デフォルトの名無しさん
09/02/11 02:54:12
APIにしまつ
320:デフォルトの名無しさん
09/02/11 08:55:22
>>315
メモ帳で開いて確認しる
終わったら上書き保存をお忘れなく\(^o^)/
321:デフォルトの名無しさん
09/02/11 10:17:23
>>315
最近、ANSIビルドのソフトをいじって、キー入力・表示・コピペはUnicodeに
対応させたものを作った。Unicodeなファイル名は扱えないが、これって
何ビルドだろうね。
322:デフォルトの名無しさん
09/02/11 10:29:00
>>321
ANSIビルドでかまわない。
__wargv
323:デフォルトの名無しさん
09/02/11 10:37:04
>>310それはマウスヒットテストに使うのでは?
>>311実際にどうなります?画像に合わせてウィンドウの形を変えたいんですが・・・?
>>312それらはもう見てその通りにやってるつもりだったんですが・・・うーん
324:デフォルトの名無しさん
09/02/11 10:52:54
>その通りにやってるつもりだったんですが
「プログラムは、間違いなく自分がコーディングした通りに動く。
しかし、それが自分が想定した通りであるとは限らない。」
325:デフォルトの名無しさん
09/02/11 10:54:00
>>322
それが判断基準?
あ、もちろんIsWindowUnicodeはTRUE返すから。じゃないとWM_CHARで
Unicodeが受け取れない。APIもA/W両方インポートしてる。(が、Win9xでも動く。)
326:デフォルトの名無しさん
09/02/11 11:11:56
>>324そんなこと言うくらいなら指摘して欲しいんですが?
327:デフォルトの名無しさん
09/02/11 11:23:27
うぜぇ
328:デフォルトの名無しさん
09/02/11 11:54:21
やってるつもりだったんならそれでいいじゃん。解決
329:デフォルトの名無しさん
09/02/11 13:37:29
どう考えてもここは324の方がウザイと思うが
お前それ言いたかっただけちゃうんかと
330:デフォルトの名無しさん
09/02/11 13:46:05
反応してる奴もうざい
331:デフォルトの名無しさん
09/02/11 14:32:40
>>329
例の基地害だろ、もう構うな
332:デフォルトの名無しさん
09/02/11 14:48:10
>>325
ハイブリッド、でいいんじゃね?まあ俺もそういうの作ったことあるけど。
例えばXPのEditコントロールはANSIでもUnicodeの動作をするバグがあるので
Win9xでも動くように作ろうとすると、全体的にはANSIだけど部分的にA/W切り替える必要性が出てくるんだよな。
というかこのバグを無視してANSIアプリのくせにVisualStyle対応してるソフトが多すぎ。
333:デフォルトの名無しさん
09/02/11 16:01:14
>>332
バグについて詳しく
334:デフォルトの名無しさん
09/02/11 16:14:02
ググレカス
335:カイロ
09/02/11 16:24:29
シリアル通信の受信プログラムがうまく出来ません。。
<やりたいこと>
COM3:送信側で、Tera Termで、文字を送信
COM4:受信側 コマンドプロンプトで、作ったプログラムを動かして受信し、受信した文字を表示する。
<受信プログラムの流れ>
①COM4をオープン
②通信設定
③受信するまで、待つ
④受信したら、文字を表示。
●受信するまで、待つことが出来ず、フフフ・・・といった文字列が
表示されてしまいます。
どうしたら、受信するまで待つように出来るのでしょうか?
336:デフォルトの名無しさん
09/02/11 16:57:44
>>335
フフフ・・・
337:デフォルトの名無しさん
09/02/11 17:00:41
これはウゼェwww
338:デフォルトの名無しさん
09/02/11 17:00:44
待つって日本語で書かれても。
コードさらせないのか、待ってるとこだけでも。
フフフ・・はデバッグ環境での未初期化のバッファ
339:カイロ
09/02/11 17:11:00
返事ありがとうございます。
以下コードの抜粋です。
ReadFileの第5引数(最後の引数)にNULLを入れると、受信するまで待つんだと思ったんですが、
送信していないのに、受信した文字列が表示されます。
☆ポートを開いているところ
int errorCode;
HANDLE handle;
handle = CreateFile("COM4", // ファイル名: COMポート名を指定
GENERIC_READ | GENERIC_WRITE, // アクセスモード: 読み書き
0, // 共有モード: 共有しない
NULL, // セキュリティ記述子: 取得したハンドルを子プロセスへ継承しない
OPEN_EXISTING, // 作成方法: ファイルを開いたときに指定したファイルが存在していなければエラーとする
FILE_FLAG_OVERLAPPED, // 非同期 I/O を許す//☆同期にしてみるFILE_ATTRIBUTE_NORMAL, // ファイル属性: 特に指定しない
NULL // テンプレートファイルのハンドル: 特に指定しない
);
☆通信設定するところ。(省略)
☆受信するところ。
char data[14];
DWORD dwRead;
DWORD dwErrors;
COMSTAT ComStat;
ClearCommError(handle, &dwErrors, &ComStat);
ReadFile(handle, data, sizeof(data), &dwRead, NULL);
printf("受信した文字列%s", &data);
340:デフォルトの名無しさん
09/02/11 17:12:28
IPアドレスコントロールから値を取得するには
どんな関数を使えばいいですか?IPは入力欄が4つあるので、どうやって
取得するんですか?
341:デフォルトの名無しさん
09/02/11 17:15:12
>>339
dwReadを確認してないみたいだけど?
342:デフォルトの名無しさん
09/02/11 17:15:33
>>339
エラーチェックぐらいしろよ
343:デフォルトの名無しさん
09/02/11 17:15:50
IPM_GETADDRESSとか無かったっけ?
344:デフォルトの名無しさん
09/02/11 17:16:14
343は>>340な
345:デフォルトの名無しさん
09/02/11 17:17:12
>>340
Win32 and COM Development - User Interface
- Windows Controls - Control Library
とりあえず、WindowsSDKのドキュメントの上記辺りを一通り目を通しておけ。
346:デフォルトの名無しさん
09/02/11 17:20:44
>>345
面倒だから教えてよ
347:デフォルトの名無しさん
09/02/11 17:22:54
やだよばか
348:デフォルトの名無しさん
09/02/11 17:26:28
>>339
待機とは関係ないんだが
FILE_FLAG_OVERLAPPEDを指定したら
ReadFileの最後はNULLじゃ駄目なんじゃないか
349:カイロ
09/02/11 17:28:52
>341
>dwReadを確認してないみたいだけど?
dwReadは、読み取ったバイト数が入るんですよね。
どうやって確認すればいいのでしょうか?
聞いてばかりで、すみません。
350:デフォルトの名無しさん
09/02/11 17:29:01
関係なくはないけどな
351:デフォルトの名無しさん
09/02/11 17:29:35
>>348が真理
つかGetLastErrorぐらいしろ
352:デフォルトの名無しさん
09/02/11 17:32:44
つーかウォッチ式に @err,hr を入れとけ
353:デフォルトの名無しさん
09/02/11 17:38:10
>>349
dwReadが0だったらどうなると思う?
354:カイロ
09/02/11 17:46:09
>>348
>待機とは関係ないんだが
>FILE_FLAG_OVERLAPPEDを指定したら
>ReadFileの最後はNULLじゃ駄目なんじゃないか
調べてみたら、通信プログラムでは、
FILE_FLAG_OVERLAPPEDではなく、
属性なしの FILE_ATTRIBUTE_NORMALを指定するのが正しいようですね。
>>353
>dwReadが0だったらどうなると思う?
0だったら、まだ、受信してない状態ってことですか?
355:デフォルトの名無しさん
09/02/11 18:01:04
FILE_FLAG_OVERLAPPEDはブロッキングしたくない時に使うんだよ。
356:デフォルトの名無しさん
09/02/11 18:08:16
>>354
dataを1バイトにして、dwReadが0以外のときに表示するようにしてみたら?
357:カイロ
09/02/11 18:49:06
>>356
>dataを1バイトにして、dwReadが0以外のときに表示するようにしてみたら?
やってみました。
以下、修正後のソースの一部です。
☆ポートを開いているところ
handle = CreateFile("COM4", // ファイル名: COMポート名を指定
GENERIC_READ | GENERIC_WRITE, // アクセスモード: 読み書き
0, // 共有モード: 共有しない
NULL, // セキュリティ記述子: 取得したハンドルを子プロセスへ継承しない
OPEN_EXISTING, // 作成方法: ファイルを開いたときに指定したファイルが存在していなければエラーとする
FILE_ATTRIBUTE_NORMAL, // ファイル属性: 特に指定しない
NULL // テンプレートファイルのハンドル: 特に指定しない
);
☆受信するところ。
char data[1];
DWORD dwRead;
DWORD dwErrors;
COMSTAT ComStat;
while(1) {
ClearCommError(handle, &dwErrors, &ComStat);
ReadFile(handle, data, sizeof(data), &dwRead, NULL);
if(dwRead != 0) {
printf("%c", data[0]);
}
}
358:カイロ
09/02/11 18:49:39
続き・・・
なんとか、待機するところまでは、うまくいきました。
Tera Termで入力した文字が、表示されました。
ありがとうございます。
ですが、表示された文字が文字化けしていて、以下のような感じで、表示されます。
解決方法をどなたか、教えてください。
Bャツ・・・・・
359:デフォルトの名無しさん
09/02/11 18:55:07
ClearCommErrorって毎回チェックしないといけないんだっけ?
360:デフォルトの名無しさん
09/02/11 18:57:56
マルチバイト文字を送信してるように見える
361:デフォルトの名無しさん
09/02/11 18:59:05
ヌルターミネートしてないからだろ
受信したバイトの最後にゼロ入れとけ
362:360
09/02/11 19:01:20
マルチバイト文字じゃなくて、シングルバイトじゃない文字
363:カイロ
09/02/11 19:15:15
自己解決いたしました!!
テラターム側のボーレートの値が受信プログラムで設定した値と違っていたので、
文字化けしていたようです。
同じ値にしたら、ちゃんとした文字が出るようになりました!!
これで、すべて解決しました!!
みなさま、どうもありがとうございました。
数ヶ月前から、出来ずに困っていたのですが、
なんとか、動くものが出来ました。
よかったです。(TーT)
364:デフォルトの名無しさん
09/02/11 19:16:25
まあオメデトウ
そして死ね
365:デフォルトの名無しさん
09/02/11 19:22:47
>>364
死ねは酷くね?
せめて成仏しろとか永眠しなさいと地獄に落ちろ、位にしといてやれよ。
366:デフォルトの名無しさん
09/02/11 19:34:18
フフフ…
367:デフォルトの名無しさん
09/02/11 19:34:44
ウッゼ
368:デフォルトの名無しさん
09/02/11 19:49:07
釣れた釣れた
369:デフォルトの名無しさん
09/02/11 19:56:01
>>314
ありがとうございます!、出来ました。
#define _WIN32_WINNT 0x0500に変更で解決しました。
本当にありがとうございました。
370:デフォルトの名無しさん
09/02/11 20:27:20
相手のボーレート自動で判断してあわせてくれるシリアル通信ソフトあるけど
合ってるかどうかってどうやって判断してるんだろう
371:デフォルトの名無しさん
09/02/11 20:31:04
IME の前後参照変換に対応するため、WM_IME_REQUEST の IMR_DOCUMENTFEED を
拾うルーチンを書きました。が、XP や Vista + ATOK なら期待通り動作するのですが、
Vista + MS-IME では全く機能しません。
TSF 絡みっぽいところまでは推測がつくのですが、その先がさっぱりです。
そのあたりの仕組みについて記述している資料があれば、教えてください。
372:デフォルトの名無しさん
09/02/11 21:11:37
>>370
分からんけど。
例えば、相手が送ってくるデータが分かっていれば、
ボーレートを色々変えてみて正しく読めるのを探すとか?
373:デフォルトの名無しさん
09/02/11 21:17:10
>>314>>369
それで解決したなら、後からメンバが増えたせいだな。
URLリンク(msdn.microsoft.com)
_WIN32_NTが0x501以上だとlpReservedメンバが追加されるが、
これはNULLじゃないといけないと書いてある。
ところが、108のコードではそれが欠けていたのでうまくいかなかった。
まあ、良くある話だ。_WIN32_NTほかバージョン定義をきちんと定義して自己防衛するしかない。
374:デフォルトの名無しさん
09/02/11 21:20:27
NULLじゃないといけないReservedなメンバをわざわざ追加して互換性無くすとか
MSが何をしたいのかさっぱり分からん
375:デフォルトの名無しさん
09/02/11 21:34:31
>>371
IMR_DOCUMENTFEED固有の話はないけれど。
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
376:デフォルトの名無しさん
09/02/11 21:53:34
>>373
そんな単純な話でもない
もともと>>314の参照先はちゃんと0初期化してて
マルチバイトでは動作するのに、Unicode では
動作しないって質問だし、自分でやってみても
うまくいかなかった
OSはVistaなのでOS側の問題とかはないはずなんだけど
377:デフォルトの名無しさん
09/02/11 22:03:12
>>375
ありがとうございます。なるほど、テキストストアっぽい単語が関係ありそうですね。
378:デフォルトの名無しさん
09/02/11 22:07:09
>>376
うおすまん、リンク先まで読んでいなかった。
379:デフォルトの名無しさん
09/02/11 22:13:08
>>376
manifestが無くてcomctl32.dll ver5系を使ってたってオチだろ
多分ver5系はcbSizeにTOOLINFO::lpReservedのサイズを含めてはいけない
380:デフォルトの名無しさん
09/02/11 22:30:45
>>379
まさにそのとおりでした
なんか昨日から気になってたんだけど、ようやくスッキリした
ありがとう
381:デフォルトの名無しさん
09/02/11 22:33:44
結局、TOOLINFO::lpReservedってそういう時わざと失敗させるために、構造体のサイズを変えるべく入れただけのような気がしてきた
NULL以外の適当な値を入れても動くみたいだし
382:デフォルトの名無しさん
09/02/11 22:37:47
D:→E:のようにドライブレターを変更するにはどうしたらいいんでしょうか?
383:デフォルトの名無しさん
09/02/11 22:41:18
コマンドプロンプトで
D:\> E:
と入力する。
384:デフォルトの名無しさん
09/02/11 22:42:30
つーか板違い
385:デフォルトの名無しさん
09/02/11 22:42:46
>>382
char path[MAX_PATH] = "D:\dokoka";
char drive[MAX_PATH];
char dir[MAX_PATH];
char name[MAX_PATH];
char exp[MAX_PATH];
_splitpath( path, drive, dir, name, exp);
drive[0] = 'E';
_makepath( path, drive, dir, name, exp);
ネタなので反論は許さない。
386:デフォルトの名無しさん
09/02/11 22:47:14
>>385
expって何だよw
エクスプローラの略か?
387:デフォルトの名無しさん
09/02/11 22:53:01
>>386
うっせw 突っ込むなって言ったろw pじゃなくてtだったよ、うろ覚えすぎたw
よく考えたら拡張子だからエクステンションの略なのか。
388:デフォルトの名無しさん
09/02/11 22:55:09
>>382
MSDN Library
↓
Win32 and COM Development
↓
System Services
↓
File Services
↓
File Systems
↓
Volume Management
↓
Volume Management Reference
↓
Volume Management Functions
にお探しのAPIがあると思うよ
389:デフォルトの名無しさん
09/02/11 22:59:42
たまに優しい人が居るスレだ
390:デフォルトの名無しさん
09/02/11 23:18:48
たまに知らないならレスしないでください。ウザイだけですな人がいるスレだ
391:デフォルトの名無しさん
09/02/11 23:20:41
>>385
_splitpath, _makepath
こんなのあったんか、知らんかったぽ
392:デフォルトの名無しさん
09/02/11 23:22:54
これでもイジワルしたつもりなんだ、優しい人なもんか
まず質問者が最低限自分で調べてから質問する人かどうかを見極めるために
>ドライブレターを変更するにはどうしたらいいんでしょうか?
という質問から「api ドライブレターを変更」でググったら上位3件(1件重複あり)全てにAPI名が出てきたんだぞ
ここでイジワル心が働いた
今度はそのAPI名でまたググって英語版MSDN Libraryに飛んで
ツリー形式になってる項目を一つ一つコピペしてrootへ向かってだなあ・・・
393:デフォルトの名無しさん
09/02/11 23:28:16
>>392
お前のツンデレっぷりに感動したので、付き合ってください
394:デフォルトの名無しさん
09/02/11 23:29:41
ハ,,ハ
( ゚ω゚ ) お断りします
/ \
((⊂ ) ノ\つ))
(_⌒ヽ
ヽ ヘ }
ε≡Ξ ノノ `J
395:デフォルトの名無しさん
09/02/11 23:35:54
Linuxユーザーがググった知識を披露するスレになり下がってる。
396:デフォルトの名無しさん
09/02/11 23:38:05
定型レスしかできないクソバカに比べれば100倍マシだからいいよ
397:デフォルトの名無しさん
09/02/11 23:38:09
まともな答えになっていれば別に何ユーザでも構わないでしょ。
ツンデレならWine使いかもしれないし。
398:デフォルトの名無しさん
09/02/11 23:40:35
>>397
>ツンデレならWine使いかもしれないし
詳しく
399:デフォルトの名無しさん
09/02/11 23:47:00
>>398
LinuxでWinAPIを実装してWindowsアプリケーションが動くというやつ。
使ったことないから出来は知らないけど。
400:デフォルトの名無しさん
09/02/11 23:54:22
>>397
使ったこともないのにググった知識で答えるのは無駄だろ。
質問者が一番知識があるという状態をよく目にする。
401:デフォルトの名無しさん
09/02/11 23:56:16
知識のある人が知らないフリして質問して、知ったかで回答する馬鹿を突付いて遊んでるんだよ
402:デフォルトの名無しさん
09/02/11 23:59:28
母無職、弟ニート、俺派遣
3人家族月10万(家賃含)でなんとかしてるけどなあウチは
残りは昔の生活費の借金返済に充てて
403:デフォルトの名無しさん
09/02/12 00:01:46
母無職、弟無職、俺無職
3人家族月0.1万(家賃含)でなんとかしてるけどなあウチは
残りは昔の生活費の借金返済に充てて
404:デフォルトの名無しさん
09/02/12 00:02:46
ここまで人工無能アイちゃんのレス
405:402
09/02/12 00:02:55
ごめんなさい
406:デフォルトの名無しさん
09/02/12 00:35:45
>>402
うわあ…
407:108
09/02/12 00:43:34
>>379
出力ウィンドウのデバック表示で
C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.6001.18000_none_886786f450a74a05\comctl32.dll' を読み込みました
C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\comctl32.dll' を読み込みました
と2種類のバージョンのcomctl32.dllを読み込んだように表示されているんですが、これは関係あるのでしょうか?
最近Win32APIプログラミング始めた素人なので変な質問だったらすいません。
408:デフォルトの名無しさん
09/02/12 01:03:24
>>407
Side-by-Sideでググっとけ
てか、内部or外部のXMLで、同名DLLのバージョンを切り替えるなんてアホだろ
誰が考えたんだよ全く・・・
409:デフォルトの名無しさん
09/02/12 01:26:10
>>407
CommonControl 6.0を使用するための具体的な対処ということなら、
以下をstdafx.hあたりに記載しとけばいけるばず
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
410:デフォルトの名無しさん
09/02/12 01:38:01
>>408
ちなみにお前だったらどういうのがいいと思うのか聞きたい。
411:デフォルトの名無しさん
09/02/12 02:05:23
directxみたいにファイル名を変えとけばいいんじゃねーの?
412:デフォルトの名無しさん
09/02/12 10:45:47
dll heaven状態ですね
413:デフォルトの名無しさん
09/02/12 13:07:34
Direct2DとかWriteってDirectXになるの?
それともWIn32API?
414:デフォルトの名無しさん
09/02/12 14:51:53
1GBくらいのメモリを確保する場合はnewとGlobalAllocどちらがいいですか?
またその他に適した関数はありますか?
415:デフォルトの名無しさん
09/02/12 14:57:59
VirtualAlloc
416:デフォルトの名無しさん
09/02/12 15:01:48
>>415
ありがとうございます~
さっそく調べてみます!
417:デフォルトの名無しさん
09/02/12 15:02:22
そんなに独り占めしてずるいわあ
418:デフォルトの名無しさん
09/02/12 15:24:14
1Gバイトのシリコンメモリ領域を明示的に確保し
それにスワップ無しでランダムアクセスするようなアプリを
動作させることが出来る商用パッケージOSは今のところ無い。
(近い将来出るかも知れないが)
Windowsの場合VirtualAllocとか使って、シリコンメモリに
領域を確保したつもりになってももどうせディスクにスワップ
されるので、1Gバイトのファイルを作成し、それにランダム
アクセスするコードと速度面では大差が無い。
419:デフォルトの名無しさん
09/02/12 15:37:20
>>418
使ったこと無いから詳しくは知らんがAWE APIは?
420:デフォルトの名無しさん
09/02/12 15:45:32
>>418
そうなんですか><
すみません。GlobalAllocもVirtualAllocも500Mくらいを超えたらエラーになってしまうんですが
一度に取ってもダメで500Mを2回に分けても2回目のVirtualAllocでエラーになります。
ちなみにVirtualAllocで1回で取れる最大サイズってなんぼなんですか?
421:デフォルトの名無しさん
09/02/12 15:54:29
>>418
本当に欲しければ、VirtualLockがあるよ。Unix系だってmlockがあるだろう。
果たして使いこなせるかどうかはともかく。
422:デフォルトの名無しさん
09/02/12 16:27:46
>>420
環境によるし、その時のアドレス空間の空き状況にもよる。
423:デフォルトの名無しさん
09/02/12 16:35:09
>>422
そうみたいですね・・・
いちおうメモリは4GBあるのですが、1MBづつ取ると970MBの所でエラーになりました
タスクマネージャの利用可能メモリは3.4GBあるのですが
2GBくらい取れないんですか?
424:デフォルトの名無しさん
09/02/12 16:37:58
なるべくプログラム開始直後にVirtualAllocで予約かけたら、
もうちょっと大きくとれないか?
425:デフォルトの名無しさん
09/02/12 16:38:48
>>423
環境によるし、その時のアドレス空間の空き状況にもよる。
426:デフォルトの名無しさん
09/02/12 17:03:25
特に設定しなければ、ユーザーエリアは最大2GB
そこをプログラムで使用中の上、連続したエリアを取りたいんだろうからそんなもんだな
427:デフォルトの名無しさん
09/02/12 18:40:03
PCに1GBのメモリを確保できるだけの余力がなかったりして。:-)
428:デフォルトの名無しさん
09/02/12 18:43:40
そんな大量に物理メモリを取りたければドライバ書けばいいだろ
429:デフォルトの名無しさん
09/02/12 18:45:44
つーか64bitに移行しろ
430:デフォルトの名無しさん
09/02/12 18:57:29
顧客にそんなこと言えますか? ねぇ、あなた
431:デフォルトの名無しさん
09/02/12 19:00:54
こんなとこでそんな質問すんなよ
432:デフォルトの名無しさん
09/02/12 19:02:39
メモリが少ない別PCの方が多く確保できた
これタスクマネージャのコミットチャージの最大値までしか取れないみたいですが
物理メモリが少ない方のPCはここの値がちょっと大きいのですが
これってどこで調整できますか?まあAPIとは関係ないっぽい話になっちゃいますが・・・
433:デフォルトの名無しさん
09/02/12 19:03:09
32APIスレなのに64ビットに移行しろとか言わなくても
434:デフォルトの名無しさん
09/02/12 19:06:56
>>429みたいな馬鹿はスルーしましょう。
435:デフォルトの名無しさん
09/02/12 19:12:15
>>432
強制的にramdiskとしてメインメモリより1GB搾取して
それをおれおれ専用メモリにしたら?
でも、どうやればよいのしらん
436:デフォルトの名無しさん
09/02/12 19:14:13
うんこしてきます。
しばらくお待ちください
437:デフォルトの名無しさん
09/02/12 19:15:02
>432
合計はスワップファイル+物理メモリでしょ。
438:デフォルトの名無しさん
09/02/12 19:21:46
>>413
そもそもDirectX自体、広義にはWin32 APIの一部分ということはともかく、
DirectXの一部みたいだけど、GDI/GDI+の置き換えとか言っているし、
どっちで質問するのがふさわしいかまだよく分かんないね。
439:デフォルトの名無しさん
09/02/12 19:31:47
ここ → DirectXスレへ行け
DirectXスレ → Win32APIスレへ行け
って言われるんですね、分かります
440:デフォルトの名無しさん
09/02/12 19:34:34
だったらDirect2Dのスレでも立てればいいだけだろうが
441:デフォルトの名無しさん
09/02/12 19:38:20
実装はCOMだろうしここになるとは思えない。
442:デフォルトの名無しさん
09/02/12 19:38:32
>>440
スレ立てできないくせにレスしないで下さい。ウザいだけです。
443:デフォルトの名無しさん
09/02/12 19:42:29
>>441
(´,_ゝ`)プッ
444:108
09/02/12 20:16:11
>>408
ありがとうございます、勉強になりました。
>>409
ありがとうございます。
CommonControl 6.0を使用出来るようになりました。
445:デフォルトの名無しさん
09/02/12 20:21:02
ま、Win7のリボンコントロールもCOMだからな
てかIUIFrameworkでググっても日本語のサイトが1件も出ねぇw
446:デフォルトの名無しさん
09/02/12 20:26:02
これをwin32の質問と見なして良いかどうか微妙ですが、
考えていると脳みそが沸騰して訳が分からなくなったので質問させていただきます。
質問
・VISTAのAero ON でウィンドウを作成する前にそのサイズを知る方法。
開発環境 SDK/VC++ 2005
問題の解決には、通常GetSystemMetrics()かAdjustWindowRectEx()を使うと思います。
ところが、VISTAのAeroが有効なときは奇妙な現象が起こります。
そこで実験してみました。
dwStyleA = (WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CLIPCHILDREN);
dwStyleB = dwStyleA | WS_THICKFRAME;
の設定で、100,100 (800x600)をAdjustWindowRectEx すると
dwStyleA: 97,76 806x627
border w,h: 3,3
dwStyleB: 92,71 816x637
border w,h: 8,8
という結果が返ります。各borderは、次の式で求めています。
横は(ウィンドウ幅-クライアント幅)/2
縦は(ウィンドウ高-クライアント高-::GetSystemMetrics(SM_CYSMCAPTION))/2
一見して当たり前で、作成されたウィンドウをキャプチャしてサイズを確認した
ところ、確かに2000/Xp/VISTA aero off の時は見た目もこの通りになります。
しかし、VISTAのaeroが有効な環境では、dwStyleAでもdwStyleBでも、
見た目はdwStyleBと同じ(!)になるのです。
しかも、GetSystemMetricsもAdjustWindowRectExもAero on/off で同じ値を返します。
もちろん作成後に GetWindowRect()した場合、AdjustWindowRectEx()と
整合性のある値(つまり見た目とは違った値)を返します。
これがAPIのバグでないとしたら、dwm.exeが独自にウィンドウを装飾している
ものと思われますが、その値を取得する方法がわかりません。
1.Aero on時に見た目通りのウィンドウサイズを取得する方法は?
2.Aero on時のウィンドウサイズは常に thickframeと同じと見なしていいの?
3.2が良いとした場合、Aero on を手軽に知る方法は?
447:デフォルトの名無しさん
09/02/12 20:54:38
Theme系のAPIを使えば、もう少しまともな値が得られそうな予感。
あまりに面倒臭そうで試す気にもならんが。
ちなみに、AdjustWindowRectExは
必要なクライアント領域を確保するのに指定すべきウィンドウサイズを求めるAPIだから、
その周りのフレームについては何の保証もしていないと思う。
448:デフォルトの名無しさん
09/02/12 20:57:20
そもそも2000/XPでもメニューが2段以上になる場合とかは想定してくれないからな
449:デフォルトの名無しさん
09/02/12 21:06:00
>>447
theme系APIというと、uxtheme.dll のあれですね?
チェックしてみます。ありがとうございました。
例えば>>446は、800x600のクライアント領域を指定して、AdjustWindowRect を呼び出すことで
作成されるはずのウィンドウの大きさを取得してチェックしたものですが、問題なのはそれが見た目の
サイズと異なってしまうことなのです。
見た目だけの問題なので、だれも気にしないのかな・・・
450:デフォルトの名無しさん
09/02/12 21:56:02
小学生の頃
必死で買ったエロ本を母親に捨てられた
恥ずかしいから怒る事もできず
できるだけゴミ箱から回収するように頑張っていた
しかし母親が何度も何度も捨てるもんだから
ついに親父がブチ切れた
切れた親父は母親に
「これは!この本は!」とエロ本をゴミ箱からすくい上げ
見せながら力説してくれた
「これはな!このくらいの年のガキにとっちゃ!
金払えば買えるもんじゃないんだ!お前はなぜこれを捨てるんだ!」
俺は感動した
親父はエロ本を俺に投げつけて
「もう絶対捨てさせないし隠す必要もないからな!」
と言ってくれた
俺は泣いた
でも次の日にエロ本は親父の部屋にあった
何か複雑な気持ちだった
451:デフォルトの名無しさん
09/02/12 22:13:29
>>445
COMだとネイティブだけでホストするのめっさめんどくせぇじゃねぇか・・・
452:デフォルトの名無しさん
09/02/12 22:29:42
んなこたーない
WindowProc書いてSendMessage連発する方が面倒
453:デフォルトの名無しさん
09/02/12 22:30:29
>>450
今日VIPでできたコピペじゃないか
454:デフォルトの名無しさん
09/02/12 22:33:19
>>450=>>453
はいはい良かったね
さっさとVIPへ帰れ
455:デフォルトの名無しさん
09/02/13 00:29:23
くけいと読むんだ、たんけいかと思ってた
456:デフォルトの名無しさん
09/02/13 00:37:53
あるある。
457:デフォルトの名無しさん
09/02/13 00:55:29
方形
458:デフォルトの名無しさん
09/02/13 17:59:29
くけいでよかったんだ、ホッとした
459:デフォルトの名無しさん
09/02/14 16:14:29
チョコ欲しくない?
460:デフォルトの名無しさん
09/02/14 16:19:57
くれ
461:デフォルトの名無しさん
09/02/14 16:42:54
チンコほしい
462:デフォルトの名無しさん
09/02/14 17:20:30
ひぃ
463:デフォルトの名無しさん
09/02/15 00:25:44
いま、注目されている劇団のHPの中身。
URLリンク(circus.main.jp)
2ちゃんにもスレがあるよ。
スレリンク(drama板:901-1000番)
464:デフォルトの名無しさん
09/02/15 01:47:50
お前ら出番だ
スレリンク(tech板)
465:デフォルトの名無しさん
09/02/15 05:07:59
マルチ乙
466:デフォルトの名無しさん
09/02/15 05:30:18
MAXIMIZEBOXを表示し、且つキャプションバーダブルクリックでの動作をすり替えるにはどうすればいいのでしょうか?
WM_SYSCOMMANDのように最大化動作の直前に知りたいのですが.
467:デフォルトの名無しさん
09/02/15 07:03:31
WM_SYSCOMMAND
468:デフォルトの名無しさん
09/02/15 09:28:32
独自のキャプションバーを作る
469:デフォルトの名無しさん
09/02/15 11:44:50
msg が WM_SYSCOMMAND かつ wParam が 0xf012 の時に摩り替える処理を行って
かつ DefWindowProc にデフォルト処理をさせなけりゃおk
470:デフォルトの名無しさん
09/02/15 11:47:26
間違えた
×0xF012
○0xF032
471:デフォルトの名無しさん
09/02/15 12:10:42
///<summary>
/// Sent when form maximizes because of doubcle click on caption
///</summary>
SC_MAXIMIZE2 = 0xF032,
これですね、ありがとうございます。
膨大で、やりたいことやろうと思うとすごく難しい
472:デフォルトの名無しさん
09/02/15 12:18:12
/// Sent when form maximizes because of doubcle click on caption
///</summary>
SC_RESTORE2 = 0xF122,
これも忘れずになー
473:デフォルトの名無しさん
09/02/15 12:20:52
ダブルクリックの時だけ動作を変えるってどういう状況?
ウィンドウシェードでも実装したいのか?
474:デフォルトの名無しさん
09/02/15 12:30:37
DirectXプログラムで最大化ボタンでフルスクリーンにしようかと.
475:デフォルトの名無しさん
09/02/15 12:35:30
昔の俺と同じ動機だ
当時最大化ボタンにマウスカーソルを合わせた時ツールチップで「フルスクリーン」と出るようにもしたかったけどそっちは挫折した
476:デフォルトの名無しさん
09/02/15 12:41:13
こうやって先人がレールを敷いてくれると助かりますよ、本当に。
477:デフォルトの名無しさん
09/02/15 13:32:27
>>474
普通にWM_SYSCOMMAND/SC_MAXIMIZEが飛んでくるのを処理すればいいし自ら答え出してるだろ
で、SC_MAXIMIZE2とか定義してる馬鹿がいるみたいだけどMSDNをしっかり読もうな
> In WM_SYSCOMMAND messages, the four low-order bits of the wParam parameter are used internally by the system.
> To obtain the correct result when testing the value of wParam, an application must combine the value 0xFFF0
> with the wParam value by using the bitwise AND operator.
478:デフォルトの名無しさん
09/02/15 13:54:51
>>477
最大化ボタンもタイトルバーダブルクリックもmsgはWM_SYSCOMMANDだが
前者のwParamはSC_MAXIMIZE(0xF030)で後者のwParamは0xF032なんだよ
479:478
09/02/15 13:57:20
MSDNも>>477のレスもしっかり読んでなくてごめんなさい