[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 06/01 23:03 / Filesize : 190 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build66



1 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:33:42 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build65
pc11.2ch.net/test/read.cgi/tech/1208847084/

116 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:59:33 ]
>>113
MSがだいぶ前にそれ作ってるよ

117 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:08:07 ]
>>113
ShowWindow(hwnd, SW_HIDE);

>>115
BlocInput(笑)

118 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:59:20 ]
BlocInputは引数に笑も取れるのか

119 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 00:04:33 ]
>>109-111
ワロスwwwwwwwwwwwwwwwwwwwwwwwww

120 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 00:10:44 ]
お前らそんなしょうもない事してる暇あるなら
社会に貢献するようなソース書けよ

121 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 00:30:18 ]
>>120
ExitWindowsEx(EWX_SHUTDOWN, 0);

実行すると自動でPCをシャットダウンしCO2削減に貢献
(SeShutdownPrivilegeの取得等は省略)

122 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 01:01:58 ]
指定されたフォルダ内のファイルが作成、削除、更新されたら
そのファイルの名称等を知りたい。
検索してみたところ、ReadDirectoryChangesW() や
SHChangeNotifyRegisterあたりを使えば良さそうな感じ。
winXP+vb6.0でもいけるだろうか?

123 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 01:38:25 ]
ためしてみればわかるだろうか?

124 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 01:58:06 ]
ためしていただけないだろうか?



125 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 02:41:22 ]
( ゚ω゚ ) お断りします

126 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 04:24:08 ]
>>120
TerminateThread( pc11.2ch.net/test/read.cgi/tech/1210775622/ );

127 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 04:40:24 ]
>>126
コンパイルエラー: 引数が足りません

128 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 11:34:43 ]
おまいら好きだwwwwwwwwwwwwwwwww

129 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 13:50:13 ]
VIP臭いんだけど

130 名前:デフォルトの名無しさん [2008/05/18(日) 13:53:22 ]
お前がな

131 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 14:50:29 ]
ふうん

132 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 17:24:37 ]
AbornThread( "pc11.2ch.net", "tech", "1210775622.dat" );

133 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:57:10 ]
タスクバーとスタートメニューのプロパティってどうやれば開ける?
コンパネからショートカット引っ張り出して.lnkアクセスするしかない?

134 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 19:05:51 ]
すみませんDCOMについて質問させてください。

リモートPCのCOMを呼び出す簡単なコードを作成したんですが、
思ったように動いてくれませんでした。

CoCreateInstanceEx()にリモートPCのIPを渡してやるんですが
この関数から戻ってくるのに時間がかかって失敗します。
ためしにローカルのIPを渡してやると成功するんですが。

以下にソースを記載します。
どこかおかしなところがないか教えていただけないでしょうか。

::CoInitialize(NULL);

COSERVERINFO serverInfo = { 0, "192.168.1.2", NULL, 0 };
MULTI_QI qi = { &__uuidof(ITest), NULL, S_OK };

HRESULT hr = CoCreateInstanceEx(
__uuidof(Test),
NULL,
CLSCTX_REMOTE_SERVER,
&serverInfo,
1,
&qi);

ITestPtr p;
p.Attach(reinterpret_cast<ITest*>(qi.pItf));

p->func();

p = NULL;
::CoUninitialize();



135 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 19:13:00 ]
>>133
Shell32.Shell.TrayProperties

136 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 19:34:42 ]
>>134
サーバ側の用意ができていないんじゃね?
時間がかかって失敗といえば、たいてい接続のタイムアウトだし。
サーバ側のDCOM関連の設定を見直しだな。

137 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 19:38:46 ]
それじゃ使い方わからんと思うけど

138 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 19:49:24 ]
DCOM関連の設定というのがあるんですか。

そのあたりの詳しいやり方が説明されてるサイトとか知りませんか?

139 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 20:12:11 ]
dcomcnfg

140 名前:デフォルトの名無しさん [2008/05/18(日) 20:59:40 ]
Vistaで追加されたBeginBufferedPaint等のAPIって何のために使うんでしょうか?
MSDNで探してもリファレンスは見つかるけど
これを使う目的やメリットがわからなくて・・・・


141 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 21:03:32 ]
>>133
START shell:::{0DF44EAA-FF21-4412-828E-260A8728E7F1}



142 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 22:32:40 ]
>>140
多分GDIがソフトウェアレンダラになったから、これまでみたいにGDIだけで同じ事をすると
XPより重くなるので専用のAPIを用意して誤魔化したのだと予想

143 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 22:50:05 ]
>>140
自動ダブルバッファリングみたいな感じ?
Vistaだとパフォーマンス上げるのに必須だから、楽に使えるAPIを用意した、ってところかな。
一通り目を通してみたが、Animation系は結構使えそうだ。

144 名前:140 mailto:sage [2008/05/18(日) 23:56:23 ]
>>142,143
一応使ってみた感じだと画像がちらつかないのでダブルバッファリング用のAPIだと思うのだけど、
今までのようなメモリDCを使わずに、専用のAPIを用意した、という認識でいいのかどうかちょっと不安。
メモリDC使うのと大して手間はかからないような気がしないでもない。
Alpha値セット用のBufferedPaintSetAlphaとかも用意されてるみたいだけど。
こういう時に使うと便利!っていう説明が欲しいなぁ。



145 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 00:01:15 ]
>>143>>144
従来の方法(CreateCompatibleBitmapで作ったDDBに描画してからBitBltする)だと
XP以前のDDBは大抵VRAM上に確保されてVGAの恩恵を得られたが、Vistaではそうは行かなくなったので
その辺を解決する専用APIを用意したのじゃないかと

146 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 13:35:23 ]
>>145
なるほどね。

Animation系のも使ってみた。
アニメーションの前後のDCを一度のAPI呼び出しで取得できるんだ。
実際に描画してみたら軽いフェードアウト効果?みたいなぼわっとした残像も描画された。
VistaっぽいちゃぁVistaっぽいな。

147 名前:デフォルトの名無しさん [2008/05/19(月) 23:22:49 ]
SetWindowsHookEx して注入したDLL内でCOMコンポーネントを使いたいのですが、
CoInitialize / CoUninitialize しても大丈夫なのでしょうか?
注入先のプロセス内ですでに呼ばれていたらまずそうな気がします。

148 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 23:31:09 ]
それらの関数は、上手くネストするように同じ回数だけ呼べば問題ない。

全く問題ないわけではないけど。

149 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 23:36:03 ]
ListViewで選択したリストが青くなってわかりやすくなるけどそのウィンドウがフォーカスを失うとき(Tab押下、windowsボタン押下など)灰色になるのですが、
これがフォーカスを失っても青のままにしたいのですがどのようにすればよいのでしょうか?
普通のWM_NOTIFYではフォーカスを失ったときブレークポイントにかからなくて、
WM_ACTIVATEではNMHDR構造体がなくてカスタムドローできません。
いい方法があったらご教授願います。

150 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 23:58:14 ]
別スレッドのキャレットを変更したいと思い

GetGUIThreadInfo(GetWindowThreadProcessId(NULL, &fwid), &gtinfo);
HideCaret(gtinfo.hwndCaret);
CreateCaret(gtinfo.hwndCaret, NULL, widht, height);
ShowCaret(gtinfo.hwndCaret);

とやってみましたが上手くいきません、
hwndCaretまでは取れいるようだし、
自プロセスであれば変更されます。

何が間違えているのか教えてください。
やはり、いくつかあるキャレット変更ソフトのように
DLLをフックさせなければ無利なのでしょうか?

151 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 00:28:13 ]
全然知らんから適当だが、
別スレッドのUIを操作するのは無理だと思う

152 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 00:32:57 ]
>>149
LVS_SHOWSELALWAYSスタイル付ければいいような気がする

153 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:22:59 ]
>>148
試したところ上手くいきました。ありがとうございます。

検証コード
#include <windows.h>
#include <msxml2.h>
#include <stdio.h>
#pragma comment(lib, "ole32")
#pragma comment(lib, "msxml2")
void examine() {
static int counter = 0;
IXMLDOMDocument* pv = NULL;
HRESULT hr = CoCreateInstance(CLSID_DOMDocument2, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&pv);
printf("%d : hr=%08lx\r\n", ++counter, hr);
if (SUCCEEDED(hr) && pv) { pv->Release(); }
}
void main () {
examine(); CoInitialize(NULL);
examine(); CoInitialize(NULL);
examine(); CoInitialize(NULL);
examine(); CoUninitialize();
examine(); CoUninitialize();
examine(); CoUninitialize();
examine();
}

154 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 04:48:05 ]
>>153
DllMainでCoInitializeを呼ばないように注意して書いた方がいいぞ



155 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:02:02 ]
>>152
それはすでにやっていて、フォーカスが外れても灰色にはなるのですが
その灰色になる時に青いままにしたいのですが無理でしょうか?

156 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:08:52 ]
できないことも無いけど、フォーカスが無いことをユーザーはどうやって知るの?

157 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:17:54 ]
教えてから訊いてやれよw

158 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:32:45 ]
>>151
そうなんですかね、
あきらめてフックしなきゃダメか。

159 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:40:29 ]
>153
それはアパートメントはどーなるんだ?
MTAとか混じってたら死亡でないのか?

160 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:48:05 ]
海外ドメイン規制で書き込めねー
>>51
やってみたんですがダメでした。成功したらまた来ます。

161 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:02:34 ]
>>159
エラーになってRPC_E_CHANGED_MODEが返ってくる。
msdn.microsoft.com/en-us/library/ms695279(VS.85).aspx

162 名前:デフォルトの名無しさん [2008/05/21(水) 09:34:44 ]
BMPの描画でダブルバッファリングを行いたいのですが、
〔背景BMP+新BMP〕HDC hdcBmp = 背景BMP
HDC hdcBmp3 = CreateCompatibleDC(hdcBmp);
HBITMAP hBMP3 = CreateCompatibleBitmap(hdcBmp,300,300);
SelectObject(hdcBmp3,hBMP3);
BitBlt(hdcBmp3背景BMPの上に新BMPを描画);

case WM_PAINT:
BitBlt(GetDC(hWnd),hdcBmp3を描画);
背景BMPに新BMPをくっつけたものを描画したいのですが
背景BMPが黒で塗り潰されてしまいます。
┏━━━━━━━━━┓
┃背景BMP     ┃
┃┏━━━━━━━┓┃
┃┃新BMP ┃

163 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 09:46:00 ]
それでどうしたいんだ?

164 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 09:48:55 ]
背景BMPが黒になるのを防ぎたいです。



165 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 09:53:39 ]
>>162,164
その疑似コードだけ見ると、hdcBmp3に背景BMPを描画していないように
思えるが。



166 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 09:58:47 ]
>>165
BltBlt(hdcBMP3,背景BMP);
BltBlt(hdcBMP3,新BMP);
これで大丈夫でしょうか?

167 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 10:50:26 ]
>>162
CreateCompatibleBitmapにメモリDCを指定しては駄目。

あと
>case WM_PAINT:
>BitBlt(GetDC(hWnd),hdcBmp3を描画);
これは駄目だろ

168 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 10:57:03 ]
>>167
CreateCompatibleBitmapには何を指定すればよいのでしょうか?

169 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:25:51 ]
GetDC()あるいはCreateDC("DISPLAY")の結果あたりを渡すのが吉

170 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:30:01 ]
描画用バッファは面倒だから全部DIBSectionでいいよもう

171 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:39:18 ]
>>162
突込みどころ満載のソースだな
まぁ頑張れw

172 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:43:18 ]
>>162
背景と前景を自前で合成して描画すればおk

173 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:50:05 ]
GDIはあと何年くらい使われるんだろう

174 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 13:05:19 ]
俺はwin32APIで作れなくなったら、ウィンドウズソフト開発から身を引く。引退。
MFCとかプログラミングじゃねーよ。あれ



175 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 13:44:17 ]
>>171
突っ込んで下さい。

176 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 14:33:55 ]
なんでやねん

177 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 15:00:09 ]
>>174
MFCなんて一皮剥けばバリバリWin32APIじゃないか

178 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 17:22:34 ]
>>177
プログラミングスタイルが受け付けない
TODO:ここにプログラム書いてね。みたいなのばかり。
しかも、いちいち用意されてる関数調べて、くっつけるだけ。
それで動かしてみて、動いてよかった。で終わり。
こんな状況でバグが出たら、生き地獄だ。

179 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 17:27:43 ]
はあ?

180 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 17:33:16 ]
用意されてる関数しらべてくっつけるだけってそれ以外のぷりぐらみんぐおれしらねー

181 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 17:39:51 ]
>>178
Win32APIの勉強始めた頃は俺もそう思ってた。
今じゃGUIライブラリ無しで作る気起きませんサーセン

182 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:01:25 ]
>>172
HDC hdc, hdcBmp[1], hBack[1];
HBITMAP hBmp[1];
BITMAP bm;
hdc = GetDC(hWnd);
hdcBmp[0] = CreateCompatibleDC(hdc); //背景BMP
hdcBmp[1] = CreateCompatibleDC(hdc); //新BMP
hBack[0] = CreateCompatibleDC(hdc); //合成BMP
hBmp[0] = (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP1),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
hBmp[1] = (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP2),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
SelectObject(hdcBmp[0],hBmp[0]);
SelectObject(hdcBmp[1],hBmp[1]);
// バックBMP
hBack[0] = hdcBmp[0];
BitBlt(hBack[0],0,20,bm.bmWidth,40,hdcBmp[1],0,20,SRCCOPY);
ReleaseDC(hWnd,hdc);
case WM_=PAINT:
BitBlt(hdc,0,100,bm.bmWidth,bm.bmHeight,hBack[0],0,0,SRCCOPY);
hdcBmp[0]とhdcBmp[1]に背景と新BMPを読み込み、背景と新BMPを合成したものをhBack[0]に読み込む。
そしてWM_PAINT時に合成した画像を描画する。という事ですか?

183 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:15:46 ]
標準関数も用意されてる関数だよなって突っ込みはなし

184 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 19:16:48 ]
 5月14日に民主党の円より子参議院議員から、ある嘆願が提出されました。内容は、「美少女
アダルトアニメやゲームを規制すべき」というものです。もしもこれらが規制されてしまうことに
なれば、全国のモテない童貞男子諸君にとって大打撃です。

 この嘆願が提出された理由ですが、ちょっとひどい。

  街中に氾濫(はんらん)している美少女アダルトアニメ雑誌やゲームは、小学生の少女を
  イメージしているものが多く、このようなゲームに誘われた青少年の多くは知らず知らず
  のうちに心を破壊され、人間性を失っており、既に幼い少女が連れ去られ殺害される事件
  が起きている。これらにより、幼い少女たちを危険に晒(さら)す社会をつくり出していること
  は明らかで、表現の自由以前の問題である。社会倫理を持ち合わせていない企業利潤追
  求のみのために、幼い少女を危険に晒している商品を規制するため、罰則を伴った法律
  の制定を急ぐ必要がある。

  ついては、美少女アダルトアニメ雑誌及び、美少女アダルトアニメシミュレーションゲーム
  製造及び販売規制の罰則を伴った法律を制定されたい。

 物凄く分かり易く要約すると、「エロゲーをする奴は心が壊れていて人間じゃないから幼女を
強姦する。だからエロゲーを規制しろ」ということになります。ええと、円議員あなたの血は何色
ですか?

 だいいち嘆願理由にしても私から言わせて貰えば、「ゲームをしているうちに心が破壊される」
のではなく、「現実世界で心が破壊されたからゲームに逃げた」のです。よくよく考えれば普通の
人は分かるはずです。あれはタダの絵だ、と。

 この「美少女アダルトアニメ雑誌及び美少女アダルトアニメシミュレーションゲームの製造・販
売を規制する法律の制定に関する請願」に賛同している議員は、円より子参議院議員のほかに
は、同じく民主党の下田敦子参議院議員がいます(5月21日現在)。増えないことを祈るばかりです。

digimaga.net/200805/adult-game-user-is-not-human.html




185 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:09:47 ]
>>182
まずは分かりやすい変数名を付ける事から学べ

186 名前:デフォルトの名無しさん [2008/05/21(水) 20:19:12 ]
>>185
すみませんでした。
背景用変数 = 背景BMP;
貼付けるBMP用変数 = 新BMP;
上部二つの合成用変数 = 合成したBMP(背景BMP+新BMP);
BitBlt(上部二つの合成用変数);

187 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:46:35 ]
>>186
まずは分かりやすい変数名を付ける事から学べ

188 名前:デフォルトの名無しさん [2008/05/21(水) 20:50:50 ]
>>187
>>186では不満ですか?

189 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:55:16 ]
>>188
お前はプログラマに向いていない
転職をおすすめする

190 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:03:26 ]
仕事でやってんならもう少しまともなコメントぐらいつけろよ
そのゴミソース引き継いだ奴はめちゃくちゃ苦労するんだよボケがw


191 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:05:56 ]
>>182
WM_PAINTがきたときに背景BMPと重ねるBMPを
自前で合成して一度のBiBlt呼び出しで描画するという意味。
それぞれのBMPはメモリ上にあるんでしょ?
とりあえずこれで動くものを作ってから原因とか考えながらゆっくりAPIの使いかた覚えればいいと思うよ。

192 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:36:47 ]
つい最近VC++2008ExpressEditionをいじり始めたものです。
テキストエディタまがいのものでもつくってみようと始めたはいいのですが、
GETOPENFILENAME 関数を使ってファイルを開くダイアログを作ろうとしたところ、
"OPENFILENAME構造体が定義されていない"
とエラーが出ます。
てっきり windows.h で定義されていると思っていたのですが、
これでないならなんのヘッダをインクルードすればいいのでしょうか?

193 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:48:53 ]
>>192
Declared in Commdlg.h, include Windows.h

てっか、WindowsSDK入れてる?

194 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:00:45 ]
>>192
WIN32_LEAN_AND_MEAN



195 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:02:04 ]
>>191
WM_CREATE等最初に合成したものを
WM_PAINT時に使うということですか?

196 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:14:25 ]
>>182
ソースが突込み所満載なんだがまさか釣りじゃないよな?
本気で書いたソースならC言語についてもやばいぞ

197 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:20:08 ]
>>196
早く突っ込んでくれ

198 名前:192 mailto:sage [2008/05/21(水) 22:22:28 ]
>>194
自動で定義されていたそれをコメントアウトしたら解決しました。
ありがとうございます。
>>193さんもありがとうございました。

199 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:27:37 ]
>>197
なんでやねん

200 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:39:34 ]
>>197
じゃあケツ出せよ

201 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:41:15 ]
>>156
WM_ACTIVATEでフォーカスを失った時にブレークにはかかったのですが、
カスタムドローするのに必要なパラメータがなかったのでできませんでした。
オーナードローで頑張ればできるのでしょうか?

202 名前:デフォルトの名無しさん [2008/05/21(水) 22:52:33 ]
聞きたいのですが、
BITMAPの合成はどうやればよいのですか?

203 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:33:54 ]
>>195
別にWM_CREATE時じゃなくていいよ。
ちらつきを抑えたいからダブルバッファしたいんだろうからBMPは常にメモリ上にあるという仮定で、
WM_CREATEがきたときに別途mallocでもnewでもいいからバッファを確保して
そのバッファに背景BMPと表示したいBMPを合成したものを作成。
それをBitBltやStretchDIBitsのような描画関数で表示。

204 名前:デフォルトの名無しさん [2008/05/22(木) 00:00:22 ]
WindowsX.h にある
HANDLE_MSG() マクロを WM_COMMAND に対して使うとき、なんで return 0; になるんだ?

HANDLE_MSG() に渡すfn は void func(HWND...) でvoid型だし、HANDLE_MSG() 自体も

#define HANDLE_MSG(hwnd, message, fn) ¥
case message):return ((fn)(hwnd,...),0L)

でマクロ展開で「return 0;」が出てくる理由がよく解らん。

case message: return func(hwnd,...); //func() はvoid型

になるんじゃないの?



205 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 00:10:42 ]
カンマ演算子
return a, b;
returnされるのはbの値。

206 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 06:15:18 ]
メッセージクラッカって定義おかしくね?

WM_DRAWITEMとか、
> If an application processes this message, it should return TRUE.
って書かれてるのにvoidでreturn 0;されてるし

207 名前:デフォルトの名無しさん [2008/05/22(木) 06:17:56 ]
さんくす>>205
カンマ演算子、か。K&Rの演算子の表の一番下に確かにそんなのあるな。いままで意識した事無かった

ありがと

208 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 08:01:40 ]
>>205
間違っています。
以上。
↓次の方どうぞ

209 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 08:58:29 ]
キモ

210 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:05:15 ]
キモ

211 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 10:19:57 ]
ゲーム作ってるんだけど、メモリ内のデータ書き換え防止する方法とかある?
外部アプリからメモリ内サーチして書き換えるやつ防止したい。助言よろ。

212 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 10:34:36 ]
PCの電源切れ

213 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 11:03:18 ]
>>211
オンラインゲームじゃないなら、改造対策は不要では?

俺もゲーム作ってるんだが、ブログで改造対策のこと書いたら、
「改造対策する時間があるなら、ゲームのボリュームを増やすこととか、
もっとまともなことに使って欲しい」ってコメントが多かったよ。
改造するかはユーザーの自由なんだし、ユーザーとしては当然のコメントだが。

あと、いまどきの改造は、プロセスメモリエディタ+ルートキットで
やるから、改造を防止するなら、ユーザーから非難されることを覚悟のうえで
ルートキットじみたことをするしかないでしょうね。

214 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 12:37:49 ]
VC++のリソースエディタでダイアログボックスが作れますが、
そのような外観の(ダイアログでない)ウィンドウを、
ウィンドウクラスで作ったウィンドウに、コントロールぺたぺた貼って作ろうと思ったら、
(CWndではなく、RegisterClassEx、CreateWindow使って)

・ウィンドウの背景色は何故かCOLOR_BTNSHADOWが(ダイアログと)等しい
・エディットボックスはCreateWindowExの第1引数にWS_EX_CLIENTEDGEにしないと立体の縁にならない
・フォントはWM_SETFONT使ってサイズを変更しないと文字がでかい
・そもそもデフォルトのフォントが当然MS shell dlgではないようで、よくわからない
 (ただ、画面のプロパティから、故意にダイアログとウィンドウのフォントを違うものにした覚えはない…)

実際CreateDialogマクロでダイアログが作られるとき、ここら辺の設定ってどうなっているのですか?
このマクロもCreateWindowExを使ってウィンドウを作ると書いてあるので、
同じようなことが再現できるのではと思ったのですが…

(CreateDialogがウィンドウの大きさを決めるとき、フォントを元に作ってあるのはわかったのですが…)



215 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 13:05:33 ]
Process Explorerで表示できるWindow Titleと同じものを取得したいと思っています。
どうもGetWindowTextで取得できるものとは別物らしく、
Process ExplorerでJuneブラウザのWindow Titleを見ると、
GetWindow〜で取得した名前とは違うものを表示しているのがわかります。

一体Process Explorerで表示できるWindow Titleとは何者か、
どうすれば取得できるのでしょうか?


216 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 13:19:39 ]
>>215
ttp://msdn.microsoft.com/en-us/library/ms633520.aspx
> GetWindowText cannot retrieve the text of a control in another application.






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<190KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef